A) Ecrire un algorithme permettant la saisie d’une suite d’entiers se terminant par zéro et vérifier si cette suite contient deux entiers consécutifs égaux en utilisant les structures tant que.
Spécifications :
– données : suite d’entier se terminant par zéro
– résultat : vrai si deux entiers consécutifs, faux sinon.
Solution en langage naturel : comparer l’entier courant et le précédent. Et tant que ils sont différents, on continu la lecture et tant que l’entier courant est différent de zéro.
Structures de données :
– entier : nombre courant
– entier : nombre précédent
Algorithme :
Action : Entiers consécutifs
Var : nc, np : entier
{on désignera par nc le nombre courant et np le nombre précédent}
Début Lire (nc)
np<=nc-1
{pour être sur que le nombre courant ne sera pas le même que le nombre précédent dès le départ on affecte la valeur nc-1 au nombre précédent. On aurait tout aussi bien pu lui donner
la valeur zéro)
Tant que nc?0 et np ?nc faire
Début
np<=nc
lire (nc)
fin
Si nc?0 alors écrire (« oui »)
Sinon écrire (« non »)
Fin
Refaire le même algorithme en utilisant une structure répéter jusqu’à
Action : Entiers consécutifs
Var : nc, np : entiers
Début
Lire (nc)
Si nc ? 0 alors Répéter
Début
np <= nc
lire (nc)
jusqu’à (nc=np ou nc=0)
Si nc=0 alors écrire (« oui »)
Sinon écrire (« non »)
Fin
B) Ecrire un algorithme qui affiche le maximum d’une suite se terminant par zéro
Spécifications :
– données : une suite d’entiers se terminant par zéro
– résultat : un entier : le maximum de cette suite
Solution en langage naturel : comparer l’entier courant avec le maximum et tant que nc
Structures de données
– n : entier courant (saisi)
– max : entier max de la suite
Algorithme :
Action : max suite
Var : n, max : entiers
Début Lire (n)
Max<=n
Tant que n? 0 faire
Début
Lire (n)
Si max
Fin
Ecrire (max)
Fin