|
Division Comment calculer le
quotient et le reste d'une division?
Comment utiliser ces instructions pour, par exemple,
extraire les chiffres d'un nombre? |
|
||
L'instruction iquo donne le quotient d'un nombre tandis que irem donne le reste de la division.
Pour illustrer le
fonctionnement, nous calculons le quotient et le reste de la division par 7 des
nombres de 100 à 110.
Notez que l'instruction
lprint permet d'éditer du texte: il suffit de l'écrire en remplaçant les
espaces par des "sous-tirets" (touche du 8). |
|
|
|
||
Quels sont les nombres
inférieurs à 1000 qui sont divisibles par 7 et aussi par 11.
Une boucle jusqu'à 1000.
Une condition logique testant
si le reste de la division par 7 est nul et, aussi, si le reste de la division
par 11 est nul.
Si c'est le cas, le nombre N
est imprimé. |
|
|
|
||
Nous nous proposons
d'extraire les chiffres d'un nombre. Comment faire pour lister les chiffres
les uns après les autres.
On range le quotient de la
division par 10 dans Q et le reste dans R.
Nous allons mettre en route
une boucle spéciale de dix itérations (dix bouclages) pour un nombre de dix
chiffres.
Le nombre A (on devrait dire la case mémoire nommée A)
qui vaut N au départ va prendre la valeur du quotient de la division par 10, au
fur et à mesure du déroulement de la boucle. |
|
|
Voir Extraction des
chiffres d'un nombre
|
||
Comment programmer la
recherche d'un PGCD en utilisant l'algorithme d'Euclide.
Rappel: la PGCD est dernier
reste de l'itération suivante: a = b . q1 + r1 b = r1 . q2 + r2 r1 = r2 . q3 + r3 r2 = r3
. q4 + r4 … jusqu'à r = 0 Le dernier reste est le PGCD
Les quatre premières lignes sont
consacrées à l'initialisation, y compris l'impression de la première ligne
(bleue).
Une boucle va tourner tant
que (while) r
est supérieur à 0. À chaque passage en boucle, les paramètres s'échangent
"en diagonale" comme le montre le rappel ci-dessus. le nombre en position a prend la valeur
précédente de b; le nombre en position b prend la valeur
précédente de r; et r est calculé comme le reste
de la division des nouvelles valeurs de a et b. |
> a:=
33495: b:= 1365: r:= irem(a,b): lprint(a,b,r):
while 0 < r do a:= b: b:= r: r:= irem(a,b): lprint(a,b,r): od: 33495, 1365, 735 1365, 735, 630 735, 630, 105 630, 105, 0 PGCD (33 495, 1
365) = 105 En effet: 33 495 = 105 x
319 1 365 = 105 x 13 |
|
Avec
les instructions iquo et irem, nous obtenons directement le quotient et le
reste de la division par un nombre donné. Nous
pouvons tester la divisibilité
d'un nombre par un autre. Nous
pouvons extraire les chiffres d'un nombre. |
Suite |
|
Voir |
Programmation – Index |
Aussi |
|
Cette page |