1
Cours 6
Cours sur les boucles ou instructions répétitives
Structure répétitive, dite aussi itérative ou boucle permet, de répéter une
ou plusieurs actions un certain nombre de fois. On identifie en règle générale
trois types de répétitive :
Pour
Tantque
Répéter …. Jusqu'A
1. Pour (for) ,
Boucler en comptant, ou compter en bouclant Il arrive très souvent qu’on
ait besoin
D’effectuer un nombre déterminé de passages. Or, a priori, notre structure
TantQue ne sait pas à l’avance combien de tours de boucle elle va effectuer:
Cest pourquoi une autre structure de boucle est à notre disposition :
Les répétitives où le nombre ditération est fixée une fois pour toute.
1.1 Syntaxe :
Pour compteur De : Initial A : Final Pas = ValeurDuPas
debut
Instruction1 ;
Instruction2 ;
….
Instructionn ;
Suivant (Compteur ) ;
FinPour
2. 1.2 Organigramme Pour (for),
Il s'agit de l'instruction :
POUR compteur De : Initial A :
Final Pas = ValeurDuPas
debut
BLOC D'INSTRUCTIONS
Suivant (Compteur); (*modification*)
FinPour
De : Initial (*condition de début*)
A : Final (*condition de continuité*)
2
Remarques :
Les 3 instructions du Pour ne portent pas forcément sur la même
variable. Une instruction peut contenir l'opérateur séquentiel afin de
pouvoir mettre deux instructions à la place de l'initialisation, la
condition de continuité ou la modification. Attention, ceci affecte
gravement la lisibilité du code.
Une ou plusieurs des 3 instructions peuvent être omises, mais pas les ;
Pour : est une boucle infinie (répétition infinie du bloc d'instructions).
2. Tantque ( while),
Tant que Les répétitives où la condition d’arrêt est placée au début.
2.1 Syntaxe :
Tant que condition faire
debut
Instruction1 ;
Instruction2 ;
….
Instructionn ;
FinTantque
Ce qui signifie : tant que la condition est vraie, on exécute la séquence
dinstructions.
2.2 Organigramme Tantque (while),
TANTQUE (condition est vraie) FAIRE
Debut
BLOC D'INSTRUCTIONS
FinTantque
Remarque : comme le test se fait avant le bloc d'instructions, celui-ci
n'est pas forcément exécuté.
Attention : il faut que le résultat du test puisse être modifié dune manière
ou dune autre si on ne veut pas faire une boucle sans fin.
On peut rencontrer la construction tant que (expression); sans la présence
du bloc d'instructions. Cette construction signifie: "tant que l'expression est
vraie attendre".
3
3. Repeter( repeat)
La condition darrêt est placée à la fin
3.1 Syntaxe de La boucle " Repeter ":
Répéter
Instruction1 ;
Instruction2 ;
….
Instructionn ;
Jusqu’A <expression logique ou critère d’arret>
3.2 Organigramme de La boucle " Repeter "
Il s'agit de l'instruction :
REPETER
BLOC D'INSTRUCTIONS
JUSQU’A (condition est vraie)
Remarque : Le test se fait après le bloc d'instructions, celui-ci est exécuté au
moins une fois.
4
Serie TD N6
Exercice1
Ecrire un algorithme qui demande à l’utilisateur un nombre compris entre 1 et 3 jusqu’à ce que la
réponse convienne.
Exercice 2
Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que la réponse
convienne. En cas de réponse supérieure à 20, on fera apparaître un message : « Plus petit ! », et
inversement, « Plus grand ! » si le nombre est inférieur à 10.
Exercice 3
Ecrire un algorithme qui demande un nombre de départ, et qui ensuite affiche les dix nombres
suivants. Par exemple, si l'utilisateur entre le nombre 17, le programme affichera les nombres de
18 à 27.
Exercice 4
Ecrire un algorithme qui demande un nombre de départ, et qui ensuite écrit la table de
multiplication de ce nombre, présentée comme suit (cas où l'utilisateur entre le nombre 7) Table
de 7 :
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 10 = 70
Exercice 5
Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme des entiers
jusqu’à ce nombre. Par exemple, si l’on entre 5, le programme doit calculer :
1 + 2 + 3 + 4 + 5 = 15
NB : on souhaite afficher uniquement le résultat, pas la décomposition du calcul.
Exercice 6
Ecrire un algorithme qui demande un nombre de départ, et qui calcule sa factorielle.
NB : la factorielle de 8, notée 8 !, vaut
1 x 2 x 3 x 4 x 5 x 6 x 7 x 8
Exercice 7
Ecrire un algorithme qui demande successivement 20 nombres à l’utilisateur, et qui lui dise
ensuite quel était le plus grand parmi ces 20 nombres :
Entrez le nombre numéro 1 : 12
Entrez le nombre numéro 2 : 14
etc.
Entrez le nombre numéro 20 : 6
Le plus grand de ces nombres est : 14
Modifiez ensuite l’algorithme pour que le programme affiche de surcroît en quelle position avait
été saisie ce nombre :
C’était le nombre numéro 2
Exercice8
Réécrire l’algorithme précédent, mais cette fois-ci on ne connaît pas d’avance combien
l’utilisateur souhaite saisir de nombres. La saisie des nombres s’arrête lorsque l’utilisateur entre
un zéro.
5
Correction de la série TD N6
Exercice1
Program ex1
Variable N :Entier ;
Debut
N ← 0 ;
Ecrire ("Entrez un nombre entre 1 et 3") ;
TantQue N < 1 ou N > 3
Lire (N) ;
Si N < 1 ou N > 3 Alors
Ecrire "Saisie erronée. Recommencez”
FinSi
FinTantQue
Fin.
Exercice 2
Program ex2
Variable N : Entier ;
Debut
N ← 0 ;
Ecrire( "Entrez un nombre entre 10 et 20")
TantQue N < 10 ou N > 20
Lire (N) ;
Si N < 10 Alors
Ecrire "Plus grand !"
SinonSi N > 20 Alors
Ecrire "Plus petit !"
FinSi
FinTantQue
Fin.
Exercice 3
Program ex3
Variables N, i : Entier ;
Debut
Ecrire ("Entrez un nombre : ") ;
Lire (N) ;
Ecrire ("Les 10 nombres suivants sont : ") ;
Pour i ← N + 1 à N + 10
Ecrire (i) ;
Suivant (i) ;
Fin.
Exercice 4
Program ex4
Variables N, i : Entier ;
Debut
Ecrire ("Entrez un nombre : ") ;
Lire( N) ;
Ecrire ("La table de multiplication de ce nombre
est : ") ;
Pour i ← 1 à 10
Ecrire (N, " x ", i, " = ", n*i) ;
Suivant (i) ;
Fin.
Exercice 5
Program ex5
Variables N, i, Som : Entier
Debut
Ecrire ("Entrez un nombre : ") ;
Lire (N) ;
Som ← 0 ;
Pour i ← 1 à N
Som ← Som + i ;
Suivant (i) ;
Ecrire ("La somme est : ", Som) ;
Fin.
Exercice 6
Program ex6
Variables N, i, F : Entier
Debut
Ecrire ("Entrez un nombre : ") ;
Lire( N) ;
F ← 1 ;
Pour i ← 2 à N
F ← F * i ;
Suivant (i) ;
Ecrire ("La factorielle est : ", F) ;
Fin.
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !