You are on page 1of 7

Les structures de Contrôle  Classe : 3 ème  SI 

Chapitre II 

Les structures de Contrôle 
Les structures conditionnelles 
On distingue trois types : 
ü  La  structure  conditionnelle  simple :  La  structure  conditionnelle  simple  réduite  et  la  structure 
simple complète. 
ü  La structure conditionnelle généralisée 
ü  La structure conditionnelle à choix 
I.  La structure conditionnelle simple 
1.  Activité 
Ecrire un programme nommé Diviseur qui lit deux entiers a et b et affiche si a est un diviseur de b ou 
non. 
Spécification 
Résultat= écrire (a, msg, b) 
Traitement 
Pour savoir si a est un diviseur de b on teste sur le reste de la division en utilisant l’opérateur mod. 
Si  b mod a =0 alors 
msgß "est un diviseur de " 
Sinon 
msg ß"n’est pas un diviseur" 
Fin Si 
a,b= donnée (" donner deux entiers a et b") 
2.  Définition 
La  structure  conditionnelle  simple  est  utilisée  dans  le  cas  où  nous  avons  au  maximum  deux 
traitements qui dépendent d’une condition. 
3.  Syntaxe 
La structure simple complète 
Au niveau algorithme  Au niveau  Pascal 
Si condition alors  If condition then  La structure conditionnelle simple réduite 
Traitement1  Begin  Au niveau  Au niveau  Pascal 
Sinon 
Traitement1;  algorithme 
Traitement2 
Fin Si  Si condition alors  If condition  then 
end  Traitement1  Begin 
else  Fin Si 
Traitement1; 
begin 
end; 
Traitement2; 
end;

Mourad Bahri & Naima Bayoudh & Leila Ben Njima & Ikram Nasrallah & Med  Ali Farhat  Page  1 
Les structures de Contrôle  Classe : 3 ème  SI 

3. Remarques 
ü  La condition peut être simple ou composée. 
ü  On  commence  par  l’évaluation  de  la  condition :  si  la  condition  est  vérifiée  (résultat  =  vrai), 
c’est  le  traitement1  qui  va  être  exécuté  sinon  (résultat  = faux)  c’est  le  traitement2  qui  sera 
exécuté. 
ü  Si le traitement est formé d’une seule instruction on peut enlever begin et end délimitant le 
traitement. 
4.  Suite de correction de l’activité 
Algorithme 
0)  début diviseur 
1)  écrire ("donner deux entiers a et b"), lire(a,b) 
2)  Si  b mod a =0 alors 
msgß "est un diviseur de " 
Sinon 
msg ß"n’est pas un diviseur" 
Fin Si 
3)  écrire (a, msg, b) 
4)  Fin diviseur 

Pascal 
Program diviseur ; 
Uses wincrt ; 
Var 
a,b :integer ; 
msg:string; 
Begin 
Writeln (‘donner deux entiers a et b’); 
Readln(a,b); 
If (b mod a = 0) then 
msg:= ‘ est un diviseur de ’ 
else 
msg :=’ n’’est pas un diviseur de ‘ ; 
Writeln (a, msg, b) ; 
end.

Mourad Bahri & Naima Bayoudh & Leila Ben Njima & Ikram Nasrallah & Med  Ali Farhat  Page  2 
Les structures de Contrôle  Classe : 3 ème  SI 

5.  Application 
Ecrire un programme qui permet de saisir un entier m entre 1000 et 2000 et d’afficher : 
§  « gagné » si la somme des chiffres des unités et des dizaines est égale au produit du chiffre 
des centaines par celui des milliers. 
§  « perdu » sinon. 

II.  La structure conditionnelle généralisée 
1.  Activité 
Ecrire un programme qui permet de saisir un entier entre 1 et 7 et affiche en toutes lettres le nom 
du jour correspondant. 
Spécification 
Résultat= écrire (jour) 
Traitement 
Le  résultat  dépend  de  la  valeur  de  la  variable  représentant  le  numéro  du  jour.  Nous  avons  alors 
sept tests à évaluer. Donc on utilisera la structure conditionnelle généralisée. 
Si j=1 alors 
Jourß"Lundi" 
Sinon si j=2 alors 
Jourß "Mardi" 


Sinon si j=7 alors 
Jour ß "Dimanche" 
Sinon 
Jour ß"erreur" 
Fin Si 
j=donnée("entrer le numéro du jour") 

2.  Définition 
La structure conditionnelle généralisée est une structure utilisée dans le cas où on a appel à plus 
que deux situations.

Mourad Bahri & Naima Bayoudh & Leila Ben Njima & Ikram Nasrallah & Med  Ali Farhat  Page  3 
Les structures de Contrôle  Classe : 3 ème  SI 

3.  Syntaxe 

Au niveau algorithme  Au niveau  Pascal 
Si condition1 alors  If condition1 then 
Traitement 1  begin 
Sinon si condition 2 alors 
Traitement 2  Traitement1; 
.  end 

.  else if  condition 2 then 
begin 
Sinon si condition N alors 
.  Traitement2; 
Traitement N  end 
Sinon 

Traitement N+1 
Fin Si  . 
else if conditionN then 
begin 
Traitement N; 
end 
else 
begin 
Traitement N+1 ; 
end;

4.  Remarques 
ü  On  commence  par  évaluer  la  condition1,  si  elle  est  vérifiée  c’est  le  traitement1  qui  sera 
exécuté  et  les  autres  traitements  seront  automatiquement  ignorés,  sinon  on  évalue  la 
condition suivante et ainsi de suite. 
ü  Le traitement N+1 est exécuté si la condition1, condition2, …condition N ne sont pas vérifiées. 
ü  Si  un  traitement  est  formé  d’une  seule  instruction  on  peut  enlever  begin  et  end  qui  le 
délimitent. 
5.  Application 
Ecrire une spécification, un algorithme et la traduction en Pascal d’un programme qui fait le cryptage 
d’un caractère c donné à partir du clavier selon ce principe : 
§  Si le caractère est une lettre majuscule alors on le remplace par son prédécesseur 
Exp : Si c="I" alors c="H" 
§  Si le caractère est une lettre minuscule alors on le remplace par son successeur 
Exp : Si c="m" alors c="n" 
§  Si le caractère est un chiffre alors on le remplace par son complément à 9 
Exp : Si c="2" alors c="7" 

Mourad Bahri & Naima Bayoudh & Leila Ben Njima & Ikram Nasrallah & Med  Ali Farhat  Page  4 
Les structures de Contrôle  Classe : 3 ème  SI 

§  Si le caractère est un symbole alors on le remplace par le 2 ème  caractère qui le suit. 
Exp : Si c="!" alors c="#" 
Spécification 
Résultat= écrire (c) 
Traitement 
On  a  4  traitements  à  faire  selon  la  nature  du  caractère    c  (majuscule,  minuscule,  chiffre  ou 
symbole) donc on utilisera la structure conditionnelle généralisée. 
Si c dans ["A".."Z"] alors 
cß pred(c) 
Sinon si c dans ["a".."z"] alors 
cßsucc(c) 
Sinon si c  dans ["0".."9"] alors 
Valeur(c,a ,e) 
cß chr(ord(9)­a) 
sinon 
c ßsucc(succ( c)) 
Fin Si 
c=donnée ("donner un caractère") 

Algorithme 
0)  début cryptage 
1)  écrire ("donner un caractère"), lire(c) 
2)  Si c dans ["A".."Z"] alors 
Cß pred(c) 
Sinon si c dans ["a".."z"] alors 
Cßsucc (c) 
Sinon si c  dans ["0".."9"] alors 
Valeur(c,a,e) 
cß chr(ord(9)­a) 
sinon 
c ßsucc(succ( c)) 
Fin Si 
3)  Ecrire(c) 
4)  Fin cryptage

Mourad Bahri & Naima Bayoudh & Leila Ben Njima & Ikram Nasrallah & Med  Ali Farhat  Page  5 
Les structures de Contrôle  Classe : 3 ème  SI 

Pascal 
program cryptage; 
uses wincrt; 
var 
c:char; 
e,m:integer; 
begin 
writeln('entrer un caractere'); 
readln(c); 
if c in ['A'..'B'] then 
c:=pred (c); 
else if c in ['a'..'z'] then 
c:= succ (c) 
else if c in ['0'..'9'] then 
begin 
val(c,m,e); 
c:=chr(ord(9)­m); 
end 
else 
c:=succ(succ(c)) ; 
writeln(c) ; 
end. 

III.  La structure conditionnelle à choix 
1.  Activité 
Reprenez l’application précédente en utilisant la structure Selon. 

Algorithme 
0)  début cryptage 
1)  écrire ("donner un caractère"), lire(c) 
2)  selon c faire 
"A".."Z" : cß pred(c) 
"a".."z" : cßsucc (c) 
"0".."9" : Valeur(c,a,e) 
cß chr(ord(9)­a) 
sinon 
c ßsucc(succ( c)) 
Fin Selon 
3)  Ecrire(c) 
4)  Fin cryptage

Mourad Bahri & Naima Bayoudh & Leila Ben Njima & Ikram Nasrallah & Med  Ali Farhat  Page  6 
Les structures de Contrôle  Classe : 3 ème  SI 

2.  Définition 
Une  structure  conditionnelle  à  choix  permet  d’effectuer  un  choix  parmi  plusieurs,  utilisée  dans  le 
même  cas  que  la  structure  généralisée.  Le  choix  d’un  traitement  dépend  de  la  valeur  d’un 
sélecteur. 
3.  Syntaxe 

Au niveau algorithme  Au niveau  Pascal 
Selon sélecteur faire  Case selecteur of 
Valeur 1 : traitement1  Valeur 1 : traitement1 ; 
Valeur 2 : traitement2  Valeur 2 : traitement2 ; 
.  . 
.  . 
.  . 
Valeur N : traitement N  Valeur N : traitement N 
Sinon  else 
traitement N+1  traitement N+1 ; 
Fin Selon  end ; 

4.  Remarques 

ü  Le  sélecteur  est  une  variable  qui  doit  être  de  type  scalaire  discret  (entier,  caractère  ou 
booléen). 
ü  La partie sinon est facultative. 
ü  Si  le  traitement  est  le  même  pour  un  ensemble  de  valeurs  alors  on  les  met  ensemble 
séparés par une virgule ou sous forme d’intervalle : Vi.. Vf 

5.  Application 
Ecrire un programme qui permet de saisir une date sous la forme jj mm aaaa, détermine et affiche le 
jour de la semaine correspondante à cette date. 
Pour ceci il suffit de calculer N avec : 
N = jj + A + Trunc (A/4) – Trunc (A/100) + Trunc (A/400) + Trunc (31M/12) 
Avec 
ü  M = mm + 12R ­2 et R = Trunc((14­mm)/12) 
ü  Si mm ≤ 2 alors A = aaaa ­1 sinon A=aaaa. 
Selon le calendrier grégorien, le résultat est donné par le reste de la division de N par le nombre de 
jours de la semaine (7) : si 0 àDimanche, 1 àLundi, 2 àMardi, etc. 
Exemple : si date = "20 4 1983"     alors le programme affichera : Mercredi.

Mourad Bahri & Naima Bayoudh & Leila Ben Njima & Ikram Nasrallah & Med  Ali Farhat  Page  7 

You might also like