Professional Documents
Culture Documents
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((14mm)/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