Vous êtes sur la page 1sur 14

10/10/2021

Algorithmique
Chapitre2 : Les structures de contrôle
Pr: Adil AMMAR

Objectifs

´La structure alternative SI … ALORS … SINON

´La structure de choix multiple CAS ...

´Les structures répétitives

´ la boucle POUR

´ la boucle TANT QUE

´ la boucle REPETER

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 2

1
10/10/2021

Enchaînement des actions

´ On utilisera cette structure lorsqu’une action doit succéder à une autre e1


´ Exemple : Calcul du prix TTC
Algorithme :
T1
T
Algorithme prix_ttc
Variables PH,TVA, PTTC : réel; s1

Début e2

Ecrire("Donner les valeurs du PH et de la TVA");


T2
T
Lire (PH, TVA);
PTTC ¬ (1+TVA)*PH;
s2
Ecrire ("Le prix TCC est : ", PTTC);
Fin

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 3

Structure alternative ou conditionnelle

´ La condition désigne une expression booléenne dont la valeur est VRAI ou FAUX.
T1 et T2 désignent une suite d'instructions (pouvant elles mêmes être des
structures alternatives).
oui condition non

Vraie
?
SI (Condition)
ALORS T1;
T1 T2
SINON T2;
FSI

suite du programme

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 4

2
10/10/2021

Structure alternative ou conditionnelle

´ Exemple 1 : A et B sont deux entiers. Écrire l ’algorithme qui retourne la plus


grande valeur de A et B ?
ALGORITHME MAXIMUM_DE_DEUX_NOMBRES;
VARIABLES
A, B : ENTIER; /* les deux nombres à comparer */
MAX : ENTIER; /* le plus grand */
DEBUT
ECRIRE("Entrez les valeurs de A et B :");
LIRE(A, B);
SI (A >= B)
ALORS MAX ¬ A;
SINON MAX ¬ B;
FSI /* Fin de la structure SI */
ECRIRE("Le maximum de ", A, " et de ", B, " est : ", MAX);
FIN
adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 5

Structure alternative ou conditionnelle

´ Exemple 2 : Afficher la valeur absolue d’un entier quelconque N

ALGORITHME Valeur_absolue;
VARIABLES
N : ENTIER;
ABS : ENTIER; /* valeur absolue */
DEBUT
ECRIRE("Entrez une valeur entière :");
LIRE(N);
SI (N >=0)
ALORS ABS ¬ N;
SINON ABS ¬ (-1)*N;
FSI
ECRIRE("La valeur absolue de ", N, " est : ", ABS);
FIN

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 6

3
10/10/2021

Structure alternative ou conditionnelle

´ Exercice 1 : L’utilisateur saisit un caractère, écrire l’algorithme qui teste s’il s’agit
d’une lettre majuscule, si oui il renvoie cette lettre en minuscule, sinon il renvoie
un message d’erreur

´ Exercice 2 : on veut résoudre, dans l’ensemble des nombres réels, une équation du
second degré à coefficients réels.

a, b et c sont des réels non nuls, écrire l’algorithme qui retourne les racines
réelles de l’équation suivante : ax2 + bx +c = 0

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 7

Structure alternative généralisée


e

Expression

T1 T2 T3 T4

Suivant la valeur de l'expression, un des traitements T1, T2, T3 ou T4 est exécuté.

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 8

4
10/10/2021

Structure alternative généralisée

En pseudo-langage, on écrira
CAS (expression)
valeur1 : T1;
valeur2 : DEBUT
T21;
T22;
FIN
valeur3 : T3;
valeur4 : T4;
AUTRE T_autre;
FIN CAS
adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 9

Structure alternative généralisée

´ Exemple : On désire calculer le salaire net (SN) d’un employé en tenant compte du
nombre de personnes à charge. Le tableau des déductions par rapport au nombre de
personnes à charge est le suivant : Nombre de Déductions du salaire
personnes à charge brut (SB)
0 20%
1 18%
2 15%
´ Ecrire l’algorithme qui lit les données suivantes : 3 13%
´ le nombre de personnes à charge (pers_ch de type entier) 4 ou 5 10%
6 et plus 08%
´ le nombre d’heures de travail (nb_heur de type entier)
´ le taux horaire (taux de type réel)
´ Puis calcule le salaire net ?

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 10

10

5
10/10/2021

Structure alternative généralisée


ALGORITHME exemple1_CAS
VARIABLES
SN, SB, Taux : réel;
nb_heur, pers_ch : entier;
déduction : réel;
DEBUT
ECRIRE("Le nombre de pers_ch "); LIRE (pers_ch);
ECRIRE("Le nombre d heures "); LIRE (nb_heur);
ECRIRE("Le taux horaire "); LIRE (taux);
SB ¬ taux*nb_heur;
CAS (pers_ch)
0 : déduction ¬ 0.20*SB;
1 : déduction ¬ 0.18*SB;
2 : déduction ¬ 0.15*SB;
3 : déduction ¬ 0.13*SB;
4,5 : déduction ¬ 0.10*SB;
AUTRE : déduction ¬ 0.08*SB;
FIN CAS
SN ¬ SB - déduction
ECRIRE("Le salaire net est : ", SN);
FIN um5.ac.ma
adil.ammar@ UM 5-ESTS-GUE-LPGC 11

11

Structure alternative généralisée

´ Exercice : Écrire l’algorithme qui lit un caractère et vérifie s’il est une lettre, un
chiffre ou un caractère spécial.
ALGORITHME exemple2_CAS
VARIABLES
C : CARACTERE;
DEBUT
ECRIRE("Entrez un caractère :");
LIRE(C) ;
CAS (C)
‘ a ’ … ‘ z ’ , ‘ A ’ … ‘ Z ’ : ECRIRE(C , " est une lettre");
‘0’…‘9’ : ECRIRE(C , " est un chiffre");
AURTE : ECRIRE(C , " est un caractère spécial");
FIN CAS
FIN

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 12

12

6
10/10/2021

Structures itératives

´ La notion d’itération est l’une des notions fondamentales de l’algorithmique. Elle


est utilisée lorsque l’on doit exercer plusieurs fois le même traitement sur un
même objet. initialisation

condition
´ Il existe trois structures de répétition : Vraie ?
non
oui
´ La boucle POUR
bloc d'instructions

´ La boucle TANT QUE


modification
´ La boucle REPETER suite du programme

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 13

13

La boucle POUR

Pour variable_de_contrôle = valeur_min jusque valeur_max Faire


Début
Bloc d ’instructions;
Fin
´ Ou

´ variable_de_contrôle est la variable de contrôle (compteur)

´ valeur_min et valeur_max indique respectivement la valeur minimale est la


valeur maximale

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 14

14

7
10/10/2021

La boucle POUR

´ Exemple 1 : Soit n un entier, afficher les valeurs 1, 2, …, n


ALGORITHME exemple1_POUR
VARIABLES
n : ENTIER;
i : ENTIER; /* variable de contrôle */
DEBUT
ECRIRE("Entrez une valeur entière :");
LIRE(n);
POUR i=1 jusque n FAIRE
début
ECRIRE(i);
Fin

FIN

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 15

15

La boucle POUR

´ Exemple 2 : Calculer n! (n!= 1*2*3* … *n)


ALGORITHME exemple2_POUR
VARIABLES
n, fac : ENTIER;
i : ENTIER; /* variable de contrôle */
DEBUT
ECRIRE("Entrez une valeur entière :");
LIRE(n);
fac ¬1;
POUR i=1 jusque n FAIRE
début
fac ¬fac*i;
Fin
ECRIRE("factoriel de ", n," est : ", fac);
FIN

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 16

16

8
10/10/2021

La boucle Tant que


TANT QUE Condition FAIRE
DEBUT
T1; e
FIN
VRAI
´ Lorsque la condition a pour valeur VRAI, on exécute le Condition

traitement T1 puis on revient tester la condition.


FAUX

´ Il est donc nécessaire que l’action T1 modifie la condition T1

sinon l’itération ne s’arrêtera pas.


s
´ Lorsque la condition a pour valeur FAUX, le traitement
séquentiel continue. L’itération est terminée

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 17

17

La boucle Tant que

´ Exemple : Une suite S de nombres non nuls est saisie au clavier. La fin de S est
marquée par un nombre nul. Écrire l’algorithme qui affiche les variables (Pos) et
(Neg) représentant respectivement le nombre de valeurs positives et le nombre de
valeurs négatives

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 18

18

9
10/10/2021

La boucle Tant que


ALGORITHME exemple_Tant-que
VARIABLES
pos, neg , n : ENTIER;
DEBUT
pos ¬ 0 ; neg ¬ 0
ECRIRE("Entrez une valeur entière : (0 pour terminer)");
LIRE(n);
TANT QUE (n<>0) FAIRE
début /* début de tant que */
SI n<0
ALORS neg ¬neg +1
SINON pos ¬pos +1
ECRIRE("Entrez une valeur entière : (0 pour terminer)");
LIRE(n);
fin /* fin de tant que */
… /* afficher les valeurs de Pos et neg */
FIN

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 19

19

La boucle REPETER
REPETER
Bloc d’instructions;
JUSQU’A CE QUE (expression soit Vraie)

b lo c d '
in s tru c tio n s

O ui
c o n d itio n
N on v ra ie

s u ite d u p ro g ra m m e

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 20

20

10
10/10/2021

Exercices : Calcul de la somme des n premiers entiers positifs

´ Calculer la somme des n premiers entiers positifs, par additions successives des
entiers : Somme = 1+2+…+N.

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 21

21

Exercices : Calcul de la somme des n premiers entiers positifs

ALGORITHME Somme_v1 ; /* La structure Pour */


VARIABLES
somme ,N : ENTIER;
i : ENTIER; /* variable de contrôle */
DEBUT
Somme ¬ 0;
ECRIRE("Entrez la valeur de N");
LIRE(N);
Pour i=1 jusqu’a N Faire
début /* début de Pour */
Somme ¬ Somme +i;
fin /* fin de Pour */
ECRIRE("Somme = ", Somme);
FIN

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 22

22

11
10/10/2021

Exercices : Calcul de la somme des n premiers entiers positifs

ALGORITHME Somme_v2 /* La structure Tant que */


VARIABLES
somme, N : ENTIER;
i : ENTIER; /* variable de contrôle */
DEBUT
Somme ¬ 0 ;
ECRIRE("Entrez la valeur de N");
LIRE(N);
i=1;
Tant que (i<=N) Faire
début /* début de Tant que */
Somme ¬ Somme +i;
i=i+1;
fin /* fin de Tant que */
ECRIRE("Somme = ", Somme);
FIN
adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 23

23

Exercices : Calcul de la somme des n premiers entiers positifs

ALGORITHME Somme_v2; /* La structure Répéter */


VARIABLES
somme ,N : ENTIER;
i : ENTIER; /* variable de contrôle */
DEBUT
Somme ¬ 0 ;
ECRIRE("Entrez la valeur de N");
LIRE(N);
i=1;
Répéter
Somme ¬ Somme +i;
i=i+1;
Jusque ’a ce que (i>N)
ECRIRE("Somme = ", Somme);
FIN

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 24

24

12
10/10/2021

Exercices

´ Exercice 1 : Écrire l’algorithme qui calcule le carré d’un entier saisi au clavier.

´ Exercice 2 : Écrire l’algorithme qui saisie un prix unitaire, une quantité et qui
calcule le prix total.

´ Exercice 3 : Écrire l’algorithme qui lit deux nombres et les imprime dans l’ordre
croissant de leurs valeurs.

´ Exercice 4 : Soient trois nombres x, y et z. Écrire un algorithme qui détermine et


imprime le plus grand des trois.

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 25

25

Exercices

´ A partir d’un nombre lu en données, on détermine un montant net par application


d’une remise de :

´ 1.5 % si le montant est compris entre 2000 et 5000 MAD

´ 2.5 % si le montant est compris entre 5001 et 10000 MAD

´ 3 % si le montant excède 10000 MAD

´ Écrire l’algorithme qui lit en entrée le montant et fournit en sortie la remise net.

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 26

26

13
10/10/2021

Exercices
´ Donner la trace de l’algorithme suivant :
Variables I, J : entier ;
Début
I¬1;
Ecrire("Itération ", I);
Répéter
J¬1;
Tant que (J<4) Faire
Début de tant que
Ecrire("Itération ", J);
J ¬ J+1 ;
Ecrire(I, J) ;
Fin tant que
I ¬ I+1 ;
Jusqu’à (I=5)
Fin

adil.ammar@ um5.ac.ma UM 5-ESTS-GUE-LPGC 27

27

14

Vous aimerez peut-être aussi