Correction des exercices
ANNEXE
320
Le même raisonnement s’applique à la valeur minimale des valeurs négatives.
entier n
// pour lire une valeur
entier maxPos
// pour le maximum des valeurs positives
entier minNeg
// pour le minimum des valeurs négatives
maxPos := 0
// maximum provisoire
minNeg := 0
// minimum provisoire
répéter
{ lire n
si n > maxPos alors maxPos := n
si n < minNeg alors minNeg := n
}
jusqu’à n = 0
si maxPos <> 0 alors écrire «maximum des valeurs positives : », maxPos
si minNeg <> 0 alors écrire «minimum des valeurs négatives : », minNeg
On notera qu’il n’est pas nécessaire de vérifier si une valeur est positive ou négative car si
elle est supérieure à maxPos, elle est obligatoirement positive ; si elle est inférieure à
minNeg, elle est obligatoirement négative.
Exercice 6.4
Notez bien qu’aucune erreur ne sera décelée par le traducteur. Néanmoins, vous n’obtiendrez
pas les résultats escomptés : en effet, vous aurez affaire à deux instructions pour consécutives et non plus à deux répétitions imbriquées. Vous obtiendrez tout d’abord les 10 titres de la
forme TABLE de x, puis une seule table : sa valeur sera probablement 10, puisque c’est
cette valeur qui aura déclenché l’arrêt de la première boucle (ce n’est toutefois pas une certitude car certains langages prévoient qu’à la sortie d’une répétition avec compteur, la valeur
du compteur n’est pas définie). Notez que les choses sont plus compréhensibles si l’on présente le programme d’une manière plus appropriée à la réalité :
répéter pour i := 1 à 9
écrire «TABLE de », i
répéter pour j := 1 à 10
{ prod := i * j
écrire i, « x », j, « = », prod
}
Les résultats obtenus ressembleront donc à ceci (on peut obtenir une table autre que celle
des 10)
TABLE de 1
TABLE de 2
TABLE de 3
TABLE de 4
TABLE de 5
TABLE de 6
TABLE de 7
TABLE de 8
TABLE de 9
10 x 1 = 10
10 x 2 = 20
10 x 3 = 30
Précédent

- 343/370

Suivant