Home Cours programmation Programmation Pascal Chapitre 2 : Les structures conditionnelles.
Bookmark and Share

Liens sponsorisés

Login Form



Chapitre 2 : Les structures conditionnelles. Print E-mail
Written by Administrator   

Cours 2 : Les strucrures conditionnelles
Par Ahmed Fessi

1. Introduction

Les algorithmes vus précédemment étaient très simples. En effet, pour l'instant, nous sommes seulement en mesure de décrire une suite d'opérations, chacune devant être exécutée une et une seule fois. Autrement dit on ne peut pas conditionner l'éxécution de certaines instructions. Pour cela on utilisera :

 

2. La structure alternative

Voici les règles d'un jeu très Simple: deux joueurs A et B se cachent la main droite derrière le dos. Chacun choisit de tendre un certain nombre de doigts (de 0 à 5), toujours derrière le dos. Les deux joueurs se montrent la main droite en même temps. Si la somme des nombres de doigts montrés est paire, le premier joueur a gagné, Sinon c'est le second. Le problème est de faire prendre la décision par l'ordinateur.

Exprimé en français, l'algorithme se présente comme suit:
- prendre connaissance du nombre de doigts de A
- prendre connaissance du nombre de doigts de B
- calculer la somme de ces deux nombres
- Si la somme est paire, A est le gagnant
- Si la somme est impaire, B est le gagnant.
Pour déterminer Si un nombre est pair ou impair, il suffit de calculer le reste de la diviSion par 2 (.. modulo 2): il vaut 0 dans le premier cas et 1 dans le second.

En langage de description d'algorithme, l'algorithme s'écrira:

0) Début Jeu

1) lire (na, nb)

2) reste <-- (na + nb) mod 2

3) Si reste = 0 Alors écrire "Le joueur A a gagné."

4) Sinon écrire "Le joueur B a gagné."

5) FinSi

6) écrire "Bravo pour le gagnant!"

7) Fin Jeu

(1) La structure alternative se présente en général sous la forme

Si expression Alors première séquence d'instructions

Sinon deuxième séquence d'instructions

FinSi

expression conditionne le choix d'un des deux ensembles d'instructions. Cette expression peut être soit vraie soit fausse. Si l'expression est vraie, la première séquence d'instruction sera exécutée et la seconde sera ignorée; Si l'expression est fausse, seule la seconde séquence d'instructions sera effectuée.

Le mot Sinon indique où se termine la première séquence d'instructions et où commence la seconde. Le mot FinSi indique où se termine la seconde séquence d'instructions.

 

(2) Dans certains cas, lorsque l'expression est fausse, aucune instruction ne doit être exécutée. La condition s'exprime Alors plus Simplement sous la forme:

Si expression Alors séquence d'instructions FinSi

(3) Quelle que soit la séquence choisie et exécutée, les instructions qui suivent FinSi seront exécutées.

 

(4) Chacune des séquences d'instructions d'un Si ... FinSi peut contenir des Si ... FinSi . On dit alors que les structures sont imbriquées.

 

(5) Pour faire apparaître plus clairement la structure, on écrit les séquences d'instructions légèrement en retrait des mots-clefs (Si, Alors,Sinon, FinSi).

 

3. L'alternative en Pascal

En Pascal, l'exemple du jeu décrit en 2 se traduit par:

PROGRAM Jeu; VAR NA, NB, Reste : INTEGER ; BEGIN WRITELN ('Introduisez le nombre de doigts montrés par le joueur A'); READLN (NA); WRITELN ('Introduisez le nombre de doigts montrés par le joueur B); READLN (NB); RESTE := (NA + NB) MOD 2; IF RESTE=0 THEN WRITELN ('Le joueur A a gagné.') ELSE WRITELN(' Le joueur B a gagné.'); END.

La structure alternative se traduit presque mot à mot de l'algorithme en Pascal: Si se traduit par IF , Alors par THEN et Sinon par ELSE . Les séquences d'instructions à exécuter dans le cas où la condition est vraie (cette séquence suit le mot Alors ) et dans le cas où la condition est fausse (cette séquence suit le mot Sinon ) doivent être encadrées par le mots BEGIN et END qui en indiquent le début et la fin. Dans le cas où ces séquences se réduisent à une seule instruction, les mots BEGIN et END peuvent être omis (comme dans l'exemple ci-dessus).

La forme:

Si expression Alors séquence d'instructions
Sinon séquence d'instructions
FinSi

se traduit en Pascal par:

IF expression THEN BEGIN séquence d'instructions END ELSE BEGIN séquence d'instructions END;

Il est interdit de mettre un ; après le END indiquant la fin de la séquence d'instructions qui suit le THEN .

Et la forme:

Si expression Alors séquence d'instructions FinSi

se traduit en Pascal par:

IF expression THEN BEGIN séquence d'instructions END;

 

4.Le choix multiple

Supposons que l'on veuille demander à l'utilisateur de choisir dans un menu une des 3 possibilités offertes. Le choix présenté ne se limite pas à une alternative (soit - soit).

Nous nous trouvons en présence d'un choix multiple qui s'écrit en algorithme:

lire i

selon i faire

1 : bloc1

2 : bloc2

3 : bloc3

Sinon écrire "Mauvais choix"

FinSelon  

 

Cas général :

Selon < expression > faire

valeur1: première séquence d'instructions;

valeur2: deuxième séquence d'instructions;

...

valeurN: Nème séquence d'instructions;

Sinon ( N+1) ème séquence d'instructions;

FinSelon

 

En Pascal :

La forme générale du choix multiple en Pascal est :

CASE < expression > OF

valeur1: première séquence d'instructions;

valeur2: deuxième séquence d'instructions;

...

valeurN: Nème séquence d'instructions;

ELSE ( N+1) ème séquence d'instructions;

END ;

 

Il est à noter que les différentes séquences d'instructions sont délimitées par BEGIN et END qui peuvent seulement être omis Si une séquence se résume à une seule instruction.

En plus dans expression on ne peut mettre qu'une variable de type entier integer ou caractère char.

 

 

Liens sponsorisés