Cours 3
Réalisé par: Mr MERCHICHI Mohammed
E-MAIL:
[email protected] Section: SM_S2
2021/2022
Cours 3
Les boucles
Objectifs du cours: Ce cours devrait pouvoir
vous permettre de comprendre les
structures répétitives (boucles):
Tant que (While en Pascal)
Répéter (Repeat en Pascal)
Pour (For en Pascal)
Nous avons vu dans les cours précédents que la partie
traitement d'un programme (/ou algorithme ) implique
un ensemble d’opérations qui peuvent être :
1. Des opérations de base ou encore élémentaires qui
permettent une exécution séquentielle d’un
programme (/algorithme)
2. Des structures de contrôle qui permettent le saut
dans un programme( /algorithme)
▣ Les structures de contrôle sont classées en
deux catégories: les structures
conditionnelles et les boucles.
▣ Dans ce cours, nous allons nous focaliser
sur les boucles.
▣ Lorsqu’on veut répéter une opération ou un bloc
d’opérations plusieurs fois dans un programme
(/algorithme), il est possible d’utiliser des structures
répétitives (itératives) appelées les boucles.
Sortie de
la boucle
une opération
ou un bloc
d’opérations à
répéter
▣ Il existe trois types de boucles: plusieurs fois,
◾ Tant que (while en Pascal)
◾ Répéter (repeat en Pascal)
◾ Pour (for en Pascal)
▣ Format général en algorithmique:
◾ tant que <condition> faire
<séquence>
▣ Format général en Pascal:
◾ while (condition) do
begin
< séquence>
end ;
▣ Fonctionnement:
◾ Cette structure permet la répétition d’une séquence
d’opérations tant que la condition est satisfaite (= VRAI).
◾ Quand la condition devienne fausse, la boucle est terminée.
▣ La condition est une expression logique.
▣ Il faut alors que cette expression puisse changer de
valeur (avoir la valeur FAUX) pour sortir de la
boucle et éviter le cas de la "boucle infinie".
◾ Ex: while (x>10) / while (A<B) / while (a<>b and a<2)
▣ La séquence est une ou plusieurs opérations.
▣ Pour plusieurs opérations, le début et fin (begin et
end) sont obligatoires.
▣ Dans le cas d'une seule opération le début et fin
sont optionnels.
2 opérations dans
While (i<10) do While (i<10) do
la séquence donc
▣ Exemples: i:=i+1; begin begin et end sont
Write (i) obligatoires.
Une seule opération
dans la séquence i:=i+1;
donc begin et end ne end ;
sont pas obligatoire
Programme permettant de calculer la program somme_suite1 ; Programme
somme de la suite des nombres 1, 2, 3, … , n var
Pascal
(n est un entier lu à partir du clavier) i, n, somme : integer ;
Algorithme somme_suite1 ; algorithme
Variables i, n, somme : entier ; begin
Début writeln('Donnez un nombre') ;
Ecrire (‘Donnez un nombre’) ; readln(n) ;
Lire (n) ; if (n > 0) then
Si (n > 0) Alors begin
début somme := 0;
somme ← 0 ; i := 1 ;
i ← 1; while (i <= n) do
Tant que (i <= n) Faire begin
début somme := somme + i ;
somme ← somme + i ; i := i + 1 ;
i ← i + 1; end ;
fin ; writeln('La somme de la suite = ',
Ecrire (‘La somme de la suite = ’, somme) ; somme) ;
fin end
Sinon
else
Ecrire (‘Le nombre doit être positif’) ;
writeln ('Le nombre doit être positif') ;
Fin.
end.
▣ Format général en algorithmique:
◾ répéter
<Séquence>
Jusqu’à <Condition>
▣ Format général en Pascal:
◾ repeat
<Séquence>
until (Condition)
▣ Fonctionnement:
◾ Cette structure permet la répétition d’une séquence jusqu’à ce
qu’une condition soit vérifiée (= VRAI).
◾ Pour éviter la boucle infinie, il faut que la condition puisse
changer de valeur (avoir la valeur VRAI).
◾ La séquence peut contenir une ou plusieurs opérations. Dans les
deux cas, début et fin sont facultatifs (non obligatoires).
Début
Sortie de
la boucle
▣ Algorithm permettant d’afficher les valeurs de 1 à 10 :
i ← 1; initialisation de i
Répéter
Ecrire (i);
i ← i + 1;
Jusqu’à (i > 10) ;
Ces 2 opérations s’exécutent 10 fois
▣ En Pascal, la boucle répéter s’exprime comme suit :
i := 1 ; initialisation de i
repeat
write (i);
i := i + 1 ;
until (i > 10) Ces 2 opérations s’exécutent 10 fois
▣ Format général en algorithmique:
Pour <Compteur> ← <Valeur initiale> à <Valeur finale> pas de <Incrément>
Faire
<Séquence>
▣ Format général en Pascal:
for <Compteur> := <Valeur initiale> to <Valeur finale> do
<Séquence>
▣ Fonctionnement:
◾ Cette structure permet la répétition d’une séquence un certain
nombre de points (de valeur initial à valeur finale)
◾ la boucle for permet d’incremeter le compteur automatiquement de 1 à
chaque itération , ce qui permet au compteur d’atteindre la valeur finale.
◾ La séquence peut contenir une ou plusieurs opérations. Dans le cas de
plusieurs opérations, le début et fin sont obligatoires comme pour le
while.
Programme permettant de calculer la somme de la suite des
nombres 1, 2, 3, … , n (n est un entier lu à partir du clavier)
Algorithme somme_suite3; program somme_suite3;
Variables i, n, somme : entier ; var i, n, somme : integer ;
Début begin
Ecrire (‘Donnez un nombre’) ; writeln ('Donnez un nombre') ;
Lire (n) ; readln (n) ;
Si (n > 0) Alors if (n > 0) then
début begin
somme ← 0 ; somme := 0;
Pour i ← 1 à n Faire for i := 1 to n do
somme ← somme + i ; somme := somme + i ;
Ecrire (‘La somme de la suite = ’, writeln ('La somme de la suite = ',
somme) ; somme) ;
fin end
Sinon else
Ecrire (‘Le nombre doit être positif’) ; write ('Le nombre doit être positif') ;
Fin. end.
FIN DE COURS
QUESTION ?????