Telechargé par khalil ezzine

Atelier Prog Partie 1

publicité
Notions de Base
I.
II.
III.
IV.
V.
Structure générale d’un Algorithme
Le nom de l’algorithme
Notion de variable
Notion de constante
Notion de type
I. Structure générale d’un Algorithme :
Dans un algorithme, on trouve deux parties essentielles :
➢ Une partie déclarative contenant tous les objets qui seront impliqués par les différentes
actions de l’algorithme (constantes, types, variables, etc.).
➢ Une partie réservée aux actions (en programmation, on dit les instructions) ; elle est
délimitée par les deux mots-clés Début et Fin.
En outre, un algorithme est caractérisé par son nom qui devrait être significatif.
Algorithme nomalgo
Constante ………….
Type ……………….
Variable …………….
Début
<action1>
<action2>
.
.
.
<action N>
Fin.
Partie déclarative
Partie réservée aux actions
II. Le nom de l’algorithme :
Le nom d’un algorithme et d’une manière générale le nom d’un objet impliqué dans les actions de
l’algorithme, il doit respecter les règles d’un identificateur qui disent :
➢
➢
➢
➢
➢
Un identificateur doit être significatif.
Un identificateur doit être écrit sur 8 positions (Taille <= 8 caractères).
Un identificateur doit commencer obligatoirement par une lettre.
Un identificateur ne doit pas comporter le caractère « espace ».
Un identificateur ne doit pas comporter de caractères spéciaux autre que le tiret de
soulignement (_).
1
➢ Un identificateur doit être unique dans un algorithme.
III. Notion de variable :
On rappelle que l’exécution d’un programme doit impliquer les données qui sont liées à ce
programme. Ces données se trouvent à ce moment au niveau de la mémoire centrale et chacune
occupe une case mémoire.
Une variable est donc un espace mémoire qui va contenir des données au fur et à mesure que le
programme avance dans son exécution. Cependant, à un instant donné, une variable ne peut
contenir qu’une seule donnée (valeur).
Comme son nom l'indique une variable est quelque chose qui varie, elle peut être considérée
comme une boîte dans laquelle on met des données que l'on peut lire ou écrire.
Variable : Lire ou Ecrire
In : entrée de données dans la variable.
Out : lecture de la donnée.
Remarque :
➢ Une variable est caractérisée par son nom qui doit être significatif et respecter les règles d’un
identificateur.
➢ Une variable est également identifiée par son adresse en mémoire centrale ; cette adresse sera
intéressante à un stade avancé de l’algorithmique (les pointeurs).
➢ Une variable est caractérisée par son contenu : les valeurs qu’elle peut prendre lors de
l’exécution d’un programme.
➢ Une variable ne peut contenir qu'une seule chose à la fois. Si vous mettez une seconde donnée
dans la variable, la précédente est effacée.
➢ Une variable possède un type c’est à dire un ensemble contenant toutes les valeurs possibles
qu’elle peut prendre.
IV. Notion de constante :
Une constante est une variable dont l'état reste inchangé tout le long d'un algorithme. Seule la
consultation est autorisée.
Une constante est définie par:
✓ son nom ;
✓ sa valeur.
Exemples:
PI = 3.14
ANNEE = 2000
2
Remarque :
Le nom d’une constante doit respecter les règles de constitution d’un identificateur. Ainsi, on ne
peut pas déclarer Π=3.14 comme constante car le symbole Π est un caractère spécial non permis
lors de la définition d’un identificateur ; c’est pour cette raison qu’on utilise PI=3.14.
V. Notion de type :
Une variable utilisé dans un algorithme ne peut prendre qu’un ensemble de valeurs connues à
l’avance ; toute variable possède un domaine de définition.
En terme informatique, ce domaine est appelé le Type de la variable.
Un type est alors caractérisé par :
➢ ses valeurs.
➢ les opérations qui peuvent s’effectuer sur des variables ayant ce type.
On distingue deux familles de types :
❖ les types simples : ce sont des types qui sont supportés et reconnus par la majorité des
langages de programmation. Lors de l’écriture de l’algorithme ou du programme, ce n’est pas
la peine de les déclarer dans la partie déclarative réservée aux types.
❖ Les types composés ou complexes : ce sont des types qui sont construits à partir des types
simples mais qu’il faut les déclarer dans la partie réservée aux types : tableaux, chaînes,
enregistrements, etc.
3
Les types Simples
I.
II.
III.
IV.
Le Type Entier
Le Type Réel
Le Type Caractère
Le Type Booléen
I. Le Type Entier :
II.1 Définition :
Le type Entier comprend un sous ensemble fini de nombres entiers, il représente une restriction
de l’ensemble mathématique des nombre relatifs Z.
Plage de valeurs:
-∞
[
Min
Z
… -1 0 1 …
]
Max
+∞
La taille de l’ensemble (valeurs de Min et Max) varie en fonction des performances techniques de
la machine et celles du langage de programmation utilisé.
En langage C : Min = -32768
Max = 32767
II.2 Représentation algorithmique :
Le type entier étant reconnu automatiquement, il n’est pas nécessaire de le déclarer dans la partie
des types. Il suffit d’indiquer devant le nom de la variable son type.
Variable
Nomvar : Entier (Nomvar étant la variable qui sera utilisée dans l’algorithme)
Si on a plusieurs variables en même temps, ce n’est pas la peine de les déclarer séparément ; on
peut les regrouper en les séparant par une virgule.
Variable
Nomvar1, Nomvar2, ……., NomvarN : Entier
II.3 Les opérations de base sur le type Entier :
Sur le type Entier, on distingue deux catégories d’opérations :
o
o
Les opérations arithmétiques.
Les opérations algorithmiques telles que la lecture, l’écriture, etc ; elles feront l’objet
d’un chapitre à part.
4
Opération
Symbole
Addition
Soustraction
Multiplication
Division (entière)
Reste de la Division entière
+
*
DIV
MOD
Exemple
A=5, B=7 ; A+B renvoie 12
A=5, B=7 ; A-B renvoie –2
A=5, B=7 ; A* B renvoie 35
A=5, B=7 ; A DIV B renvoie 0
A=5, B=7 ; A MOD B renvoie 5
II. Le Type Réel :
III.1 Définition :
Le type Réel comprend un sous ensemble fini de nombres réels, dont la taille varie en fonction des
performances techniques de la machine et celles du langage de programmation utilisé.
Le type réel représente une restriction de l’ensemble mathématique des nombre réels IR.
Plage de valeurs:
-∞
IR
[ … -1.0.. -0.00 0 0.0.. 1.0…
Min
]
Max
+∞
III.2 Représentation algorithmique :
Le type Réel étant reconnu automatiquement, il n’est pas nécessaire de le déclarer dans la partie
des types. Il suffit d’indiquer devant le nom de la variable son type.
Variable
Nomvar : Réel (Nomvar étant la variable qui sera utilisée dans l’algorithme)
Si on a plusieurs variables en même temps, ce n’est pas la peine de les déclarer séparément ; on
peut les regrouper en les séparant par une virgule.
Variable
Nomvar1, Nomvar2, ……., NomvarN : Réel
III.4 Les opérations de base sur le type Réel :
Sur le type Réel, on distingue deux catégories d’opérations :
o
o
Les opérations arithmétiques
Les opérations algorithmiques telles que la lecture, l’écriture, etc ; elles feront l’objet
d’un chapitre à part.
Opération
Addition
Soustraction
Multiplication
Division normale
Symbole
+
*
/
Exemple
A=5.5, B=7.0 ; A+B renvoie 12.5
A=5.5, B=7.0 ; A-B renvoie –2.5
A=5.5, B=7.0 ; A* B renvoie 38.5
A=5.5, B=7.0 ; A / B renvoie 0.79
5
Fonctions prédéfinies
Carré(X)
RacineCarré(x)
Retourne le carré de X
Retourne la racine carré de X si X>=0, sinon elle retourne erreur
III. Le Type Caractère :
IV.1 Définition :
Le type Caractère est ensemble de caractères comportant :
Les 26 lettres alphabétiques en majuscules (‘A’ jusqu’à ‘Z’)
Les 26 lettres alphabétiques en minuscules (‘a’ jusqu’à ‘z’)
Les 10 chiffres arabes (‘0’ jusqu’à ‘9’).
Quelques caractères spéciaux.
o
o
o
o
Remarque :
Chaque valeur d’un caractère est délimitée par deux apostrophes ‘ ’.
Exemples : ‘A’, ‘a’, ‘+’, ‘10’….
IV.2 Représentation algorithmique :
Le type Caractère étant reconnu automatiquement, il n’est pas nécessaire de le déclarer dans la
partie des types. Il suffit d’indiquer devant le nom de la variable son type.
Variable
Nomvar : Caractère (Nomvar étant la variable qui sera utilisée dans l’algorithme)
Si on plusieurs variables en même temps, ce n’est pas la peine de les déclarer séparément ; on
peut les regrouper en les séparant par une virgule.
Variable
Nomvar1, Nomvar2, ……., NomvarN : Caractère
IV.4 Les Opérations de base sur le type Caractère :
Sur le type Caractère, on distingue deux catégories d’opérations :
o
o
Les opérations propres aux caractères
Les opérations algorithmiques telles que la lecture, l’écriture, etc ; elles feront l’objet
d’un chapitre à part.
Opération
Suivant
Précédent
Symbole
Suiv
Prec
Exemple
Si A=’C’ alors Suiv(A) renvoie ‘D’
Si A=’C’ alors Prec(A) renvoie ‘B’
6
Remarques :
➢
Les opérations suivant et précédent respectent l’ordre d’apparition des caractères mentionné
ci-dessus.
➢
la fonction Suiv et Prec s’appliquent sur des variables de type caractère ou des constantes
caractères.
Exemple: succ(‘A’) envoie ‘B’ par contre succ(A) avec A variable contenant le caractère ‘C’ renvoie
‘D’.
IV. Le Type Booléen ou Logique :
V.1 Définition
Un type Booléen dit également logique est un ensemble qui est constitué de deux éléments dont
la valeur de l’un contredit celle de l’autre.
Domaine de valeurs :
Le type booléen contient deux valeurs logiques Vrai et Faux
On peut représenter ces notions abstraites de VRAI et de FAUX :
➢
➢
➢
➢
➢
Pour représenter des nombres binaires, on déclare un type booléen formé de 0 et 1.
Pour représenter une variable réponse, on déclare un type booléen formé de Oui et Non.
Pour représenter une variable logique, on déclare un type booléen formé de Vrai et Faux.
Pour représenter l’état d’une lampe, on déclare un type booléen formé de Allumée et Eteinte.
Pour représenter l’état d’un interrupteur, on déclare un type booléen formé de Ouvert et
Fermé.
V.2 Représentation algorithmique
Le type Booléen étant reconnu automatiquement, il n’est pas nécessaire de le déclarer dans la
partie des types. Il suffit d’indiquer devant le nom de la variable son type.
Variable
Nomvar : Booléen (Nomvar étant la variable qui sera utilisée dans l’algorithme)
Si on a plusieurs variables en même temps, ce n’est pas la peine de les déclarer séparément ; on
peut les regrouper en les séparant par une virgule.
Variable
Nomvar1, Nomvar2, ……., NomvarN : Caractère
V.3 Opérateurs Logiques :
Sur le type booléen, on applique des opérateurs logiques pour constituer une expression logique ;
ces opérateurs sont :
➢ NON (NOT) : la négation.
➢ ET (AND) : la conjonction.
➢ OU (OR): la disjonction.
7
En les appliquant sur des variables booléennes, voilà ce que ça donne :
X
Faux
Faux
Vrai
Vrai
Y
Faux
Vrai
Faux
Vrai
Non X
Vrai
Vrai
Faux
Faux
X Et Y
Faux
Faux
Faux
Vrai
X Ou Y
Faux
Vrai
Vrai
Vrai
Remarque :
Il existe un ordre de priorité entre les opérateurs logiques :
-
la négation NON est prioritaire par apport à la conjonction ET.
la conjonction ET est prioritaire par apport à la disjonction OU.
8
Les actions Simples
I. L’action de lecture
II. L’action d’écriture
III. L’action d’affectation
I. L’action de lecture :
II.1 Définition :
La lecture est une opération d’entrée qui s’effectue des périphériques d’entrée (clavier, souris,
stylo optique, etc.) vers la mémoire centrale.
Elle permet à l’utilisateur d’introduire les données au programme pour qu’il produise les résultats
attendus.
II.2 Représentation algorithmique :
Une action de Lecture est représentée par le terme ‘Lire’ ; elle peut concerner une variable ou
plusieurs variables.
Pour une variable l’action de lecture ou encore la primitive de lecture doit se présenter comme
suit :
Lire( Nomvariable )
Pour plusieurs variables, deux formats de lecture peuvent être appliqués :
➢ Soit une lecture de toutes les variables ensemble
Lire(Nomvariable1, Nomvariable2, ………., NomvariableN).
➢ Soit une lecture pour chaque variable et dans ce cas on a le schéma suivant :
Lire(Nomvariable1)
Lire(Nomvariable2)
……
Lire(NomvariableN)
II.3 Remarques :
(i) Dès que le programme rencontre une instruction Lire, l’exécution s’interrompt, attendant la
frappe d’une valeur au clavier, si la touche Entrée (Enter) a été frappée, l’exécution reprend.
(ii) Il est interdit de lire une constante.
Si PI=3.14 déclarée comme constante, Lire(PI) est impossible.
(iii) Il est interdit de lire une expression arithmétique ou logique.
9
Lire(a+b) est impossible.
(iv) Il est interdit de lire un message.
Lire(‘Bonjour’) est impossible.
(v) Dans certains problèmes à résoudre, certains étudiants trouvent parfois des difficultés pour se
décider s’ils vont lire la variable ou faire autre chose. Dans ce qui suit, on va présenter les
19
phrases ayant le contexte de lecture :
➢ Saisir des données à partir du clavier : il s’agit d’une lecture.
➢ Entrer des données à partir du clavier : il s’agit d’une lecture.
➢ Introduire les données : il s’agit d’une lecture.
II. L’action d’écriture :
III.1 Définition :
L’écriture est une opération de sortie (de la mémoire ou du microprocesseur vers les périphériques
de sortie). Elle permet à l’utilisateur d’afficher les résultats d’un programme sur le(s)
périphérique(s) de sortie, tels que : écran, imprimante, traceur, etc.
III.2 Représentation algorithmique :
Une action d’écriture, parfois dite une primitive d’écriture peut se faire :
➢
➢
➢
➢
sur une ou plusieurs variables,
sur des constantes,
sur des expressions arithmétiques et logiques,
sur des messages.
Une action d’écriture peut être mixte, c’est à dire qu’elle regroupe des variables, des constantes,
des expressions et des messages.
a) Ecriture sur une ou plusieurs variables :
Pour une variable l’action d’écriture ou encore la primitive d’écriture doit se présenter comme
suit :
Ecrire( Nomvariable )
Ecrire(Nomvariable) consiste à afficher le contenu de la variable Nomvariable à l’écran.
Pour plusieurs variables, deux formats d ‘écriture peuvent être appliqués :
➢ Soit une écriture de toutes les variables ensemble
Ecrire (Nomvariable1, Nomvariable2, ………., NomvariableN).
➢ Soit une écriture pour chaque variable et dans ce cas on a le schéma suivant :
Ecrire (Nomvariable1)
Ecrire (Nomvariable2)
……
Ecrire (NomvariableN)
b) Ecriture d’une constante :
C’est une opération qui consiste à afficher la valeur d’une constante.
10
Ecrire(Valconstante) ou Ecrire(Nomconstante), sachant que cette constante contient la valeur
Valconstante.
Exemples :
➢ Ecrire(3.14) , Ecrire(PI) , …
c) Ecriture d’une expression arithmétique ou logique :
Une expression est un ensemble de valeurs (variables, constantes,..), reliées par des opérateurs, et
équivalent à une seule valeur.
Dans certains programmes, et en vue d’optimiser le nombre de variables ainsi que le nombre
d’instructions, on réalise directement une primitive d’écriture sur une expression.
Ecrire(expression)
Exemples:
Ecrire(a+b*c) avec a, b et c des entiers
Ecrire(a ou b et c) avec a, b et c des booléens
d) Ecriture d’un message :
L’utilisation des messages dans un programme ne fait que faciliter son utilisation ;
Un message est une suite de caractère ayant un sens et délimité par deux apostrophes.
Écrire(‘message’)
Exemple :
Écrire(‘Bonjour’) : cette opération affichera à l’écran le mot Bonjour.
e) Ecriture mixte :
Dans certains programmes, l’affichage doit être très clair. Par exemple, on veut afficher la ligne
suivante : Le Montant de la Facture est = 1250 DT.
Pour obtenir un tel affichage, on doit présenter l’action d’écriture comme suit :
Ecrire(‘Le Montant de la Facture est = ‘, MNTFACT, ‘DT’) où MNTFACT est la variable qui
contient ce montant. On parle dans ce cas d’écriture mixte.
Écrire(‘message’,Nomvariable,constante,’message’,….)
III. L’action d’affectation :
IV.1 Définition :
L’opération d’affectation consiste à mettre (placer) une valeur dans une variable. L’affectation est
schématisée par le symbole
11
IV.2 Représentation Algorithmique :
Nomvariable
Valeur
X
3
X
Exemples :
• X
3
-- on a affecté la valeur 3 à la variable X.
• Y
2
-- on a affecté la valeur 10 à la variable Y
• X
4 * Y-1 -- on a affecté l’expression 4 * Y-1 à la variable X, X vaut 7
X
7
Remarque:
Y
2
X
3
Y
Y
3
X
X
3
4*Y-1
3
A  5 : cela veut dire mettre la valeur 5 dans la variable A, qui du coup va perdre son
ancienne valeur. On dit également, que A reçoit la valeur 5, ou on affecte 5 dans la variable
A, ou encore on affecte à la variable a la valeur 5.
(ii) A  B : cela veut dire mettre le contenu de la variable B dans la variable A.
(iii) A + B  S : c’est une opération impossible (A + B n’est pas un nom de variable !!).
(iv) Il faut distinguer entre A  B et B  A ; l’affectation n’est pas commutative.
(i)
12
Les structures conditionnelles
I.
II.
III.
IV.
Structure conditionnelle à un choix
Structure conditionnelle à deux choix
Structure conditionnelle imbriquée
Structure à choix multiple
I. Structure conditionnelle à un choix :
II.1 Définition :
Il s’agit d’un traitement qui ne peut s’exécuter que si une condition logique est satisfaite ; dans le
cas contraire, rien ne devrait se passer.
II.2 Représentation algorithmique :
Syntaxe générale :
Si
(Condition_Satisfaite)
Alors
<Traitement>
Finsi
OUI
Conditio
n
NON
Traitement
Suite du programme
Remarques
•
•
Une condition est une expression booléenne. Elle est soit vraie soit fausse
Fréquemment, cette condition se présente sous forme de comparaison en utilisant les
opérateurs : <, >, <=, >=, =, <>.
13
•
La condition est soit "simple", soit "composée". Dans le cas d'une
condition composée, vous utiliserez des opérateurs logiques ; les plus utilisés sont : ET, OU,
NON.
• Le traitement peut comporter une ou plusieurs instructions.
Exemple : On veut donner une prime pour les salariés mariés ayant plus de 3 enfants.
Solution :
Si (Nbr_Enfants >= 3) Alors
Salaire  Salaire + Prime
FinSi
II. Structure conditionnelle à deux choix :
IV.1 Définition :
La structure conditionnelle à deux choix est une structure algorithmique qui fait appel au maximum
à deux traitements.
IV.2 Représentation Algorithmique :
Syntaxe générale :
Si
(Condition_Satisfaite)
Alors
<Traitement1>
Sinon
<Traitement2>
Finsi
Avec <Traitement1> et <Traitement2> peuvent être formé chacun d’une ou plusieurs actions.
OUI
Conditio
n
Traitement 1
NON
Traitement 2
Suite du programme
14
III. Structure conditionnelle imbriquée :
V.1 Définition :
La structure conditionnelle généralisée est une structure algorithmique qui fat appel à plus que
deux traitements. L’exécution d’un traitement entraîne automatiquement le non exécution des
autres traitements.
V.2 Représentation Algorithmique :
Syntaxe générale :
Si
(Condition_Satisfaite 1) Alors
<Traitement1>
Sinon
Si (Condition_Satisfaite 2) Alors
<Traitement2>
Sinon
Si
(Condition_Satisfaite N) Alors
<TraitementN>
Sinon
<TraitementN+1>
Finsi
Finsi
Finsi
IV. Structure conditionnelle à choix multiple :
VI.1 Définition :
La structure conditionnelle à choix multiple est une structure algorithmique utilisée de préférence
dans des structures à plusieurs traitements selon des conditions.
Le choix d’un traitement se fait suivant la valeur d’un sélecteur. Cette structure permet d’éviter le
recours à une structure conditionnelle généralisée et offre une meilleur lisibilité de la solution.
VI.2 Représentation algorithmique :
Syntaxe générale :
Selon Sélecteur Faire
Val1 : <Traitement1>
Val2 : <Traitement2>
…..
ValN : <TraitementN>
Sinon <Traitement_erreur>
FinSelon
15
Remarques :
Le sélecteur doit être de type scalaire discret et doit avoir une valeur avant d’être impliqué
dans le Selon.
(ii) les traitements relatifs aux valeurs peuvent comporter également d’autres structures
conditionnelles.
(iii) Vali peut ètre un ensemble des valeurs qui seront séperées par des virgules ou intervalle
des valeurs (vi .. vf)
(iv) Si la valeur du sélecteur est différente des valeurs proposées alors c’est le traitement qui
suit la clause sinon qui sera exécuté.
(i)
VI.3 Exécution du Selon :
On suppose que la valeur du sélecteur est connue avant de commencer le Selon (soit par une
lecture, soit par une affectation).
À partir de cette valeur, on va s’aiguiller directement au traitement correspondant à cette valeur
puis l’exécuter.
À la fin de l’exécution, on continuera la suite de l’exécution du programme à partir de la 1 ère
instruction qui vient après FinSelon.
Dans le cas où la valeur du sélecteur n’existe pas parmi les choix possibles, on exécutera le
traitement Sinon du Selon
.
16
Les structures Itératives
I.
II.
III.
IV.
La boucle Pour
La boucle Répéter
La boucle Tant Que
Remarques générales
On distingue deux types de répétitions :
➢ L’Itération : quand on sait le nombre de fois que l’on va répéter un traitement :
▪ La boucle Pour.
➢ La Répétition Conditionnelle : quand la poursuite d’une répétition dépend d’une condition
booléenne :
▪ La boucle Tant que.
▪ La boucle Répéter.
I. La boucle Pour :
1.
Définition :
La boucle Pour est une structure répétitive qui itère le même traitement pour une plage de valeurs
entières comprises entre une borne inférieure et une borne supérieure. La mise à jour étant
automatique, l’arrêt du traitement de la boucle Pour se réalise lorsqu’on dépasse l’une des bornes.
2.
Représentation algorithmique :
Pour I de Val_initiale à Val_finale, (Pas = Val_pas) Faire
<Traitement>
Fin Pour
Avec
I : variable de type entier (en général) servant de compteur.
Val_initiale : valeur initiale que va prendre I.
Val_finale : valeur finale que prendra I.
Pas : contient une valeur entière indiquent la valeur de l’incrémentation de I (mise à jour de I).
Du fait que le nombre d'itérations est connu à l’avance, on se sert d'un compteur (ici I) qui sera initialisé automatiquement à la valeur initiale et
sera incrémenté de la valeur du pas, jusqu'à la valeur finale.
Remarque :
•
•
•
Le traitement de la boucle Pour est exécuté pour toutes les valeurs comprises entre
Val_initiale et Val_finale.
Le sens de la boucle Pour peut être croissant (Pas > 0) ou décroissant (Pas < 0).
Si la valeur du Pas = 0, on sera en présence d’une boucle infinie.
17
•
L’incrémentation de I est automatique en fonction de la valeur du Pas.
•
•
•
Dans le corps de la boucle il est interdit de modifier la valeur du compteur I, même si on peut s'en servir.
Dans une boucle Pour, si le Pas n’apparaît pas, il vaut 1 par défaut.
La boucle Pour est conseillée si le nombre d’itérations à faire est connu à l’avance.
II. La boucle Répéter :
1.
Définition :
La boucle Répéter permet de rentrer dans la boucle quelque soit la condition et réitère l’exécution
jusqu'à ce que la condition soit vérifiée.
La condition est une expression logique qui peut être simple ou composée mais qui donne toujours
un résultat logique.
2.
Représentation Algorithmique :
Répéter
<Traitement>
<mise_à_jour_condition_arrêt>
Jusqu'à (Condition_Arrêt_Atteinte)
Remarque :
•
•
•
•
Dans une boucle Répéter, le traitement est exécuté au moins une seule fois quelle que soit la
valeur de la condition d’arrêt.
Dans une boucle Répéter, on parle de condition d’arrêt ; quant elle est atteinte, on sort de
cette boucle.
Il est indispensable d’initialiser correctement les variables de la condition d’arrêt et de les
mettre à jour à la fin de chaque itération : condition nécessaire et obligatoire pour pouvoir
reboucler.
La structure Répéter est conseillée surtout pour les problèmes indiquant dans leur énoncé une
condition d’arrêt.
III. La boucle Tant que :
1.
Définition :
La boucle Tant que permet d’exécuter le corps de la boucle lorsque la condition d’exécution est
vérifiée ; on s'arrêtera dès que la condition n’est plus vérifiée.
2.
Représentation Algorithmique :
……….
Initialisation des variables de la condition d’exécution
Tant que (Condition_exécution_vérifiée) Faire
<Traitement>
<mise_à_jour_condition_exécution>
Fin Tant que
………
Remarque :
18
•
•
•
•
•
•
Dans une boucle Tant que, le traitement associé à la boucle peut ne pas être exécuté : la
condition d’exécution n’est pas vérifiée dès le départ.
Dans une boucle Tant que, on parle de condition d’exécution ; quant elle n’est plus vérifiée,
on sort de cette boucle.
Il est indispensable d’initialiser correctement les variables de la condition d’exécution et de
les mettre à jour à la fin de chaque itération : condition nécessaire et obligatoire pour pouvoir
reboucler.
La mise à jour de ces variables peut se faire soit par une lecture, soit par une affectation.
La structure Tant que est conseillée surtout pour les problèmes indiquant dans leur énoncé
une condition d’exécution.
Une condition d’exécution est la négation de la condition d’arrêt.
IV. Remarques générales :
➢ Le <Traitement> d'une boucle peut contenir lui aussi une autre boucle. On l'appelle dans ce
cas des boucles imbriquées.
➢ La différence entre la boucle REPETER et la boucle TANT QUE est que le traitement spécifié
est exécuté au moins une fois dans le premier cas et peut être 0 ou plusieurs fois dans le
deuxième cas.
➢ La condition d'arrêt de la boucle REPETER est l'inverse de la condition d'exécution de la
boucle TANTQUE.
➢ Tableau Comparatif des Trois Schémas itératifs :
Critère
Répéter
Tant que
Traitement
Au moins 1 fois
De 0 à N fois
Initialisation
Oui avant Répéter
Oui avant Tant que
Mise à jour variable
Oui après traitement
Oui après traitement
Sortie de la boucle
Condition_arrêt atteinte
Type de la condition
Expression logique avec
ET, OU, etc.
Condition_exécution
non vérifiée
Expression logique
avec ET, OU, etc.
Pour
De Val_initiale jusuq’à
Val_finale
Oui : Val_initiale
Oui, Automatique en
fonction du Pas
Compteur dépassant
les bornes
Une seule variable de
type Entier
19
Téléchargement