Recherche de maximum
101
Exercice 6.2 Adapter le programme précédent, de manière qu’il fournisse la moyenne des
valeurs positives et la moyenne des valeurs négatives. On se protégera contre le risque de
division par zéro.
3 Recherche de maximum
Nous allons vous présenter cette technique sur le problème suivant : déterminer la valeur
maximale de 50 valeurs entières lues au clavier.
Par analogie avec la technique de l’accumulation, on peut songer à lire nos valeurs à l’intérieur d’une boucle, en employant toujours la même variable (par exemple val) et à utiliser
une variable nommée par exemple max qui contiendra la valeur la plus grande rencontrée
jusqu’alors. Dans ces conditions, on voit que pour chaque nouvelle valeur lue, il suffira de
procéder ainsi :
si val > max alors max = val
Mais comment initialiser la valeur de max ? La valeur 0 ne convient pas nécessairement car
rien ne nous dit que, dans les 50 valeurs à lire, il y en aura au moins une positive. La seule
solution universelle consiste en fait à affecter à max la première valeur lue. Il faut donc traiter
cette première valeur différemment des suivantes.
Voici ce que pourrait être notre programme :
entier val
entier max
// pour la plus grande valeur
entier i
// compteur de boucle
lire val
// la première valeur sert de maximum provisoire
max := val
// on pourrait aussi faire directement lire max
répéter pour i := 2 à 50
// attention, on commence ici à i := 2
{ lire val
si val > max alors max := val
}
écrire «le maximum de vos 50 valeurs est », max
Calcul du maximum de 50 valeurs fournies en données
Remarque
Si l’on souhaitait adapter notre programme à un nombre de valeurs différent de 50, il faudrait
penser à modifier cette valeur en deux endroits. Pour éviter cette difficulté, on pourrait modifier ainsi notre programme :
entier nbVal := 50
// on pourrait aussi utiliser : entier constant nbVal := 50
.....
répéter pour i := 2 à nbVal
.....
écrire «le maximum de vos », nbVal, « valeurs est », max
Précédent

- 124/370

Suivant