Vous êtes sur la page 1sur 43

Les structures de contrôle

• L’alternative
• La répétition
• La structure de choix
L’alternative
L’alternative

• Une instruction alternative permet de faire le choix entre une, deux ou plusieurs
actions suivant qu’une certaine condition est remplie ou non.

• Syntaxe 1
En pseudo code (algorithme) En Pascal (programme)
Si <condition> (booléenne) If <condition>
Alors then
<bloc_instruction1> <bloc_instruction1>
Sinon sinon
<bloc_instruction2> <bloc_instruction2>
Exemple

si A = 0 alors
écrire (‘La valeur de la variable A est nulle.’);

4
Organigramme de la structure IF

bloc_instruction2 bloc_instruction1
Autres syntaxes ß vs =

En pseudo code (algorithme) Condition: type booléen


2 valeurs: vrai ou faux
Si <condition> (booléenne)
Expression conditionnelle:
alors S’écrit avec des opérateurs de comparaison:
<bloc_instruction1> <, >, <= , >=, =

Opérateurs logiques:
Exemple
et, ou, non aß3 signifie « a a pour valeur 3 »
Exemples a=3 signifie « est ce que la valeur de a est
(a>0 et a<10) égale à 3 ? »
a<3 signifie « est ce que la valeur de a est
inférieure à 3
Autres syntaxes: organigramme

En pseudo code (algorithme)

Si <condition> (booléenne)

Alors

<bloc_instruction> bloc_instruction
Exemple 1: maximum de deux nombres
Exemple 2: racine carrée d’un nombre

Si cond
Alors
debut
inst1
inst2
fin
Sinon
debut
inst1
inst2
inst3
fin
Ecrire un algorithme qui affiche « Nombre positif » si le nombre saisi
par l’utilisateur est positif, sinon afficher « Nombre négatif »

Algorithme signe_nombre Exécution


Variable nbre: entier Saisir un nombre
Debut -4
ecrire (« Saisir un nombre ») Nombre négatif
lire(nbre)
Si nbre>0
alors
ecrire (« Nombre positif »)
sinon
ecrire (« Nombre négatif »)

Fin
La répétition
La répétition
• Permet d’effectuer plusieurs fois une même séquence d’instructions.
Exemple: afficher « bonjour » 5 fois

12
Les boucles

• Trois types de boucle


• Pour …..
• Tant que …
• Répéter ….. Jusqu’à

13
La boucle avec compteur: Pour …..
Syntaxe
En pseudo-code
pour <compteur> ß <valeur initiale> à <valeur finale> faire
action (à répéter)

14
Exemple 1
Ecrire un algorithme qui affiche les entiers compris entre 1 et 100.
pour <compteur> ß <valeur initiale> à <valeur finale> faire
action (à répéter)

variable i : entier
debut
pour i ß 1 à 100 faire
ecrire(i)
fin

15
La boucle tant que

En pseudo code En Pascal

tant que <condition> faire while <condition> do


<instruction(s)> <instruction>
ou

while <condition> do
begin
<instructions>
end
Organigramme de la boucle TANT QUE ….. FAIRE

tant que <condition> faire


<instruction(s)>
Exemple
Par exemple, pour afficher cinq fois le message ‘Bonjour à tous les nouveaux
programmeurs !’, on peut utiliser la suite d’instructions:

Nbfois ß 0 ;
Tant que Nbfois < 5 faire
Debut
Ecrire (‘Bonjour à tous les nouveaux programmeurs !’)
Nbfois ß Nbfois + 1 ;
Fin

18
Exercice d’application
program boucle_while;
var
i:integer;
begin
i:=1;
while i <= 5 do
begin
writeln('le carré de ', i, ' est :', sqr(i));
i:=i+1; { incrémentation gérée par le programmeur }
end;
writeln;
writeln('FIN. A la prochaine...');
end.

19
La boucle REPETER

En pseudo code En Pascal

Repeter repeat
<instruction(s)> <instruction(s)>
jusqu’à <condition> until <condition>

Remarque:
On utilise généralement les instructions while ou repeat lorsque l’on ne
connaît pas, à l’avance, le nombre d’itérations.
Organigramme de la boucle REPETER ….

Repeter
<instruction(s)>
jusqu’à <condition>
Exercice d’application
Ecrire un programme qui permet de saisir une valeur entière positive et de calculer sa racine carrée.

Var entier_positif : integer ;


Racine :real ;
Begin
repeat
Write(‘donner un entier positif :‘) ;
Readln(entier_positif) ;
until entier_positif > 0;
Racine := sqrt(entier_positif) ;
End.
{sqrt est une fonction prédéfinie en Pascal, elle calcule la racine carrée d’un entier positif}
writeln(‘la racine carrée de ‘,entier_positif, ‘ est ‘, racine) ;
22
LES TABLEAUX
Définition

Exemple: Soit un entier n, saisir n valeurs


• Calculer leur moyenne
• Trouver leur minimum ou maximum
• Les afficher par ordre croissant

Définition
• Un tableau est une collection séquentielle d’éléments de même type, où chaque élément peut
être identifié par sa position dans la collection. Cette position est appelée indice et doit être de
type scalaire.
Déclaration
Déclaration
Pour déclarer un tableau, il faut donner :
• son nom (identificateur de la variable)
• ses bornes : la borne inférieure correspondant à l’indice minimal et la borne supérieure
correspondant à l’indice maximal.
• le type des éléments le composant.

SYNTAXE
Variable nom : tableau[<indice minimum> .. <indice maximum>] de <type des composants>
Notion de tableau

Exemple :
variable t : tableau[1..10] de réels ;

Schématiquement, on va représenter la variable t comme suit:


1 2 3 4 5 6 7 8 9 10
8,4 3,5 12 16 20,3 10 3 2,3 4 9

26
NOTION DE TABLEAU

• Dans la mémoire centrale, les éléments d’un tableau sont stockés de façon linéaire,
dans des zones contiguës.

• Le tableau ci-dessus est de dimension 1, nous verrons un peu plus loin que l’on
peut représenter des tableaux à 2 dimensions, voire même plus.

• L’élément n°I sera représenté par l’expression t[1].


• Dans notre exemple, t[1] peut être traité comme une variable réelle. On dit que le
tableau t est de taille 10.

27
CREATION D’UN TABLEAU
CREATION D’UN TABLEAU

• La création d’un tableau consiste au remplissage des cases .


• Cela peut se faire par saisie, ou par affectation.
• Par exemple, pour remplir le tableau t précédent, on peut faire :
t[1] ß 8.4 ; t[2] ß 3.5 ; … t[10] ß 9 ;

Si on devait saisir les valeurs, il faudrait écrire :


Pour i ß 1 à 10 faire
lire(t[i] );
Fpour
AFFICHAGE D’UN TABLEAU
AFFICHAGE D’UN TABLEAU

Afficher un tableau revient à afficher les différents éléments qui le composent.


Pour cela, on le parcourt (généralement à l’aide d’une boucle avec compteur)
et on affiche les éléments un à un.

31
AFFICHAGE D’UN TABLEAU

Ecrire un programme qui permet de créer un tableau d’entiers t1 de taille 20


par saisie, et un tableau t2 de même taille en mettant dans t2[i] le double de
t1[i], i Î {1, .., 20 }.

32
AFFICHAGE D’UN TABLEAU
Type tab = tableau [1..20] d’entier ;
variables t1, t2 : tab ;
i : entier ;
debut
{ saisie de t1 }
Pour i ß 1 à 20 faire
debut
ecrire(‘donner t1[‘,i,’]:’); lire(t1[i]);
fin;
{ création de t2 }
Pour i ß 1 à 20 faire
t2[i] ß 2*t1[i];
{ affichage de t2 }
Pour i ß 1 à 20 faire
ecrire(‘t2[‘,i,’]=’, t2[i]);
fin.
33
Traitement d’un tableau
Traitement d’un tableau

• Après avoir créé un tableau, on peut y effectuer plusieurs opérations


comme le calcul de la somme ou de la moyenne des éléments, la recherche
du plus petit ou du grand élément du tableau, le test d’appartenance d’un
objet au tableau, …

• Pour la suite, on considère un tableau d’entiers t déclaré comme suit :


Variable t : tableau[1 .. n] d’entier ;

35
Somme des éléments d’un tableau
On effectue la somme des éléments du tableau t, le résultat est dans la variable S :
S ß0;
Pour i ß 1 à n faire 1 2 3 4 5 6
S ß S + t[i]; 2 1 10 3 4 9
ecrire(‘la somme des éléments de t est:’, S);

36
Minimum d’un tableau

On cherche le plus petit élément du tableau t, le résultat est dans la variable min :
min ß t[1] ; 1 2 3 4 5 6
Pour i ß 2 à 6 faire
2 1 10 3 4 9
si t[i] < min alors
min ß t[i];
ecrire(‘Le minimum des éléments de t est:’, min) ;

37
Test d’appartenance

On cherche si l’entier x appartient à t, le résultat est mis dans la variable booléenne


appartient :
appartient ß faux 1 2 3 4 5 6
Pour i ß 1 à n faire 2 1 10 3 4 9
si t[i]=x alors
appartient ß vrai;
Si appartient
alors
ecrire (x , ‘appartient à t’)
sinon
ecrire (x ,’n’’appartient pas à t’);

38
Les tableaux à deux dimensions
Les tableaux à deux dimensions

• Déclaration :
variable t : tableau[1..5, 1..10] de reels ;

• Pour accéder à l’élément se trouvant sur la ligne i et la colonne j,


on utilise le terme t[i,j].
Les tableaux à deux dimensions

• Exercice d’application
Ecrire un programme qui permet de créer et d’afficher un tableau t à deux
dimensions d’entiers de taille 3x5.

41
Les tableaux à deux dimensions

variable t : tabelau [1..3, 1..5] d’entier ; SUITE PROGRAMME


i,j : entier ;
debut (* affichage de t *)
(* saisie de t *) pour i <-1 à 3 faire
pour i <-1 à 3 faire debut
pour j <-1 à 5 faire pour j <-1 à 5 faire
debut
ecrire(t[i,j],’ ‘);
ecrire(‘entrer t[‘,i,’,’,j,’]:’);
lire(t[i]); ecrire;
fin; fin;
fin.
D’autres manipulations usuelles

• Fusion de tableaux
• Nombre d’occurence d’un élément dans un tableau
• Trier un tableau

Vous aimerez peut-être aussi