Quelques techniques usuelles
CHAPITRE 6
100
Remarques
1 Nous avons beaucoup insisté sur la représentation approchée des nombres rééls, de sorte
qu’ici, on peut se demander si le test d’arrêt n’est pas quelque peu incertain. En fait, il
faut rappeler que la valeur 0 est toujours représentée de façon exacte dans le type réel
(comme, d’ailleurs, toutes les valeurs entières pas trop grandes !).
2 La valeur 0, servant de « signal de fin » a été cumulée dans somme, mais elle n’en
change pas la valeur.
2.2 Accumulation sélective
Voici un programme qui lit un nombre quelconque de valeurs entières en déterminant la
somme des valeurs positives et la somme des valeurs négatives. Ici, encore, on fait l’hypothèse qu’aucune de ces valeurs ne peut être nulle et que l’utilisateur introduira la valeur 0
pour signaler qu’il n’a plus de valeurs à fournir.
entier val
entier sommePos
// pour accumuler la somme des valeurs positives
entier sommeNeg
// pour accumuler la somme des valeurs négatives
sommePos := 0
// initialisation somme des valeurs positives
sommeNeg := 0
// initialisation somme des valeurs négatives
répéter
{ écrire «donnez un entier : »
lire val
si val > 0 alors sommePos := sommePos + val
sinon sommeNeg := sommeNeg + val
}
jusqu’à val = 0
// arrêt sur valeur nulle
écrire «somme des valeurs positives : », sommePos
écrire «somme des valeurs négatives : », sommeNeg
donnez un entier : 4
donnez un entier : -8
donnez un entier : 3
donnez un entier : 0
somme des valeurs positives : 7
somme des valeurs négatives : -8
Calcul séparé de la somme des valeurs positives et de la somme des valeurs négatives
Remarque
Ici, le 0 de fin est ajouté à sommeNeg, mais il ne modifie pas sa valeur. En revanche, il faudrait prendre quelques précautions si l’on s’intéressait au nombre de valeurs négatives ou à
leur moyenne.
Précédent

- 123/370

Suivant