Licence 2ème année - NTE 3 – 2005-06
Bernard Maurin
NTE 3 – Algorithmique et programmation Visual Basic
TD 3 : structures répétitives
Notions de référence de la séance 3
Structures répétitives : Indicées (Pour) ; conditionnelles (Répéter Jusqu’à; Tant que)
I – Introduction : somme des n premiers nombres entiers
Un des algorithmes les plus classiques est celui de la somme de n valeurs. Nous choisirons comme
exemple la somme des n premiers nombres entiers. Pour simuler manuellement cet algorithme, nous
fixerons n à 4.
Nous devons donc décrire, d’un point de vue algorithmique, comment faire S = 1+2+3+4
(en fait S = 0+1+2+3+4). L’idée est de faire la somme de proche en proche (comme les comptables,
à l’époque où les comptes se faisaient à la main) : 0+1 = 1 ; 1+2 = 3 ; 3+3 = 6 ; 6+4 = 10.
La première valeur de S est 0. Ensuite, on additionne à la valeur courante de S, la prochaine valeur
entière, notée i. Ce qui en algorithmique se note S := S+i. Cette opération se répétant de i allant de 1
à 4, on dit qu’on a une structure répétitive, ou en boucle.
II – Gestion automatique des répétitions : la boucle indicée Pour
Syntaxe
Pour i := indice_inférieur à indice_supérieur faire
Instruction(s)
Fin Pour
NB : si indice_inférieur > indice_supérieur, l’instruction répétitive Pour n’est pas
exécutée.
Algorithme de la somme des n premiers entiers (n=4).
NB : En fait il s’agit de la somme des n+1 premiers entiers, puisque qu’on inclue 0 dans la somme.
Algorithme SommeEntiers1
Const n = 4
Var i : entier ; S : entier
Début
1 – S := 0
2 – ‘boucle Pour
Pour i := 1 à n faire
S := S+i
Fin Pour
3 – Ecrire("la somme des " ; n ; " premiers entiers vaut : " ; S)
Fin
La variable i prenant automatiquement les valeurs 1, 2, 3 et 4, on obtient bien de proche en proche
le résultat cherché pour la variable S.
NB : la variable i s’appelle aussi un compteur (elle permet de compter le nombre de passages dans
la boucle)
Une simulation manuelle permet de s’assurer de la compréhension de la méthode.
instructions i S
1 (initialisation de S) 0
1 0 + 1 = 1
2 1 + 2 = 3
3 3 + 3 = 6
2 (boucle Pour)
4 6 + 4 = 10
3 (écriture de S = 10) 5 10
NB : pour des raisons liées à la gestion du compteur i, à la sortie de boucle Pour, i vaut n+1 (ici 5).
Exercice : Simuler manuellement l’algorithme précédent si n=0.
III – Gestion des répétitions liée à une condition : la boucle conditionnelle Répéter
jusqu’à
Syntaxe
Répèter
Instruction(s)
Jusqu’à condition
NB : les instructions sont répétées jusqu’à ce que condition soit vraie
Algorithme SommeEntiers2
Const n = 4
Var i : entier ; S : entier
Début
1 – S := 0
2 – i := 0
2 – ‘boucle Répéter
Répéter
i := i+1
S := S+i
Jusqu’à i = n
3 – Ecrire("la somme des " ; n ; " premiers entiers vaut : " ; S)
Fin
Que se passe-t-il si l’on fixe la valeur de la constante n à 0 ?
IV – Gestion des répétitions liée à une condition : la boucle conditionnelle Tant que
Syntaxe
Tant que condition faire
Instruction(s)
Fin Tant que
Bernard Maurin Algorithmique – séance 3 2/3
Bernard Maurin Algorithmique – séance 3 3/3
Algorithme SommeEntiers3
Const n = 4
Var i : entier ; S : entier
Début
1 – S := 0
2 – i := 0
2 – ‘boucle Tant que
Tant que i < n faire
i := i+1
S := S+i
Fin Tant que
3 – Ecrire("la somme des " ; n ; " premiers entiers vaut : " ; S)
Fin
Que se passe-t-il si n = 0 ?
NB : pour s’assurer que les algorithmes où l’on gère le compteur i à l’aide d’une condition, sont
correctement écrits, il suffit de les tester manuellement pour un seul passage dans la boucle (ici
tester les algorithme pour n=1)
V – Exercices : produits de n valeurs
Valeur future. On veut déterminer la valeur future d’une somme S placée durant n années au taux r,
en faisant de proche en proche le produit Valeur_future = S(1+r)(1+r)(1+r)(1+r) (n=4 dans cette
écriture).
Factoriel. On veut déterminer de proche en proche le produit des n premiers entiers (factoriel n).
F = 1*2*3*4*5 (ici n=5)
NB : Cette notion intuitive d’une somme ou d’un produit « de proche en proche », s’appelle
mathématiquement une récurrence.
NB : les instructions sont exécutées si condition est vraie.
1 / 3 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 !