Cours N°7: Algorithmiques Structures Répétitives Département des Sciences Techniques. Université Ammar Thelidji – Laghouat. Structures Répétitives Sommaire • Traitement Répétitif • Les boucles (Notation Algorithmique) • La boucle «tant que» • La boucle «répéter» • La boucle «pour» • Exemples … • Exercice Traitement Répétitif • Une structure de contrôle Itératif permet de répéter plusieurs fois le même traitement. • La répétition d’un bloc d’actions est définie par des actions spéciales que nous appelons des boucles. Exemple Ecrire un organigramme qui permet d’afficher les entiers de 1 à N. Remarque : N=4; Début Ecrire (1) Ecrire (2) Ecrire (3) Ecrire (4) Fin Et Si N = 1000 ...??? Début lire (N) Boucle i←1 Non i <= N Oui Ecrire (i) i←i+1 Fin Les boucles … Notation Algorithmique Notation Algorithmique 1. La boucle « tant que » 2. La boucle « répéter » 3. La boucle « Pour » La boucle «tant que» Début Lecture Tant que (condition) Faire Non Action 1 Action 2 … condition Oui action1 action2 … FinTq; Fin Début lire (N) i←1 Tant que i <=N Faire … Non i <= N Oui Ecrire (i) i←i+1 Fin Un bloc d’Instructions Ce qui signifie : • tant que la condition est vraie, on répète l’exécution du bloc d’actions, • et dès que la condition devient fausse on sort de la boucle et on continue en séquence. • Si la condition et initialement fausse, le bloc d’actions ne sera jamais exécuté. Exemples … Ecrire l’organigramme pour afficher la somme (S = 1 + 2 + 3+ … + N) Début lire (N) i←1 S←0 Non i <= N Oui S←S+i i←i+1 Ecrire (S) Fin Que faut il modifier pour calculer le produit: (P = 1 * 2 * … * N) Début lire (N) i←1 P←1 Non i <= N Oui P←P* i i←i+1 Ecrire (P) Fin Algorithme qui calcul N! F= 1* 2* 3* …* (N-1) * N (utilisation de la boucle Tant que) Algorithme factoriel; Variable F, i, N : entiers; Début lire (N); i ← 1; F ← 1; Tant que (i<=N) faire F←F*i; i←i+1; FinTq; écrire(N, ‘!=’, F); Fin. Algorithme qui n calcul X (utilisation de la boucle Tant que) Algorithme puissance; Variables: N,i:entiers; X,P:réels; Début lire (N); lire (X); i ← 1; P ← 1; Tant que (i <= N) faire P←P*X; i←i+1; FinTq; écrire(P); Fin. La boucle «répéter» • Le formalisme de la boucle « Répéter » est comme suit: Répéter Action 1 Action 2 … Jusqu’à (Condition d’arrêt); Début lire (N) i←1 P←1 Répéter ces instructions P←P* i i←i+1 Oui Non i>N Jusqu’à ce que … Ecrire (P) Fin Algorithme qui calcul N! (utilisation de la boucle Répéter) Algorithme factoriel; Variables: I,N,F:entiers; début lire (N); i ← 1; F ← 1; Répéter F←F*i; i←i+1; Jusqu’à (i > N); écrire(N, ‘!=’, F); Fin. Condition d’arrêt La boucle «pour» • Le formalisme de la boucle «pour» est le suivant: Pour Compt ← Action 1 Action 2 … Fin pour; Valeur_initiale à Valeur_finale faire Début Compteur lire (N) i←1 P←1 Non i <= N Oui P←P* i i←i+1 Ecrire (P) Fin • Le bloc d’actions est exécuté un nombre connu de fois suivant le compteur. • <valeur-initiale> indique la première valeur affectée à la variable compteur lors de l’exécution de la première itération. • <valeur-finale> indique la dernière valeur qu’aura la variable compteur lors de la dernière itération. Algorithme qui calcul n X (utilisation de la boucle Pour) Algorithme puissance; Variables: i,N:entiers; P,X:réels; début lire (N); lire (x); P ← 1; Pour i ← 1 à N faire P←P*x; FinPour; écrire(P); Fin. Exercice Ecrire l’organigramme qui permet d’afficher les diviseurs d’un entier A. Modifier l’organigramme pour qu’il calcul le nombre de ces diviseurs. Déduit l’organigramme permettant de vérifier si un nombre A est Premier ou non?