0% ont trouvé ce document utile (0 vote)
4 vues151 pages

2 Chap2 Structures

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1/ 151

CHAPITRE 2

OBJECTIFS
Ø Maitriser les instructions d’affectation
RECONNAITRE et les instructions d’entrée/Sortie
LES BASES Ø Reconnaitre les différents types de
traitement des instructions dans un
algorithme
CHAPITRE 2
1-Traitement séquentiel (affectation,
lecture et écriture)
RECONNAITRE 2-Traitement alternatif(conditions)
LES BASES
3-Traitement itératif (boules)
CHAPITRE 2

1-Traitement séquentiel
Partie 1 (affectation, lecture et écriture)
Instruction d’affectation
n Une instruction est une action que l'ordinateur est
capable d'exécuter
n Les instructions de base sont:
Ø L’instruction d’affectation
Ø Opérateurs et expressions

n Chaque langage de programmation fournit une


liste des instructions qu’on peut utiliser

Remarque
§ Les instructions d'un algorithme sont habituellement exécutées une à la
suite de l'autre, en séquence (de haut en bas et de gauche à droite).
§ L'ordre est important 4
Instruction d’affectation
Ø L’affectation consiste à attribuer une valeur à une
variable.
Ø Symbolisée en algorithmique par « ", elle précise le
sens de l’affectation.
Syntaxe :
Variable  expression
expression peut être soit :
§ Constante
§ Identificateur (nom d’une variable)
§ Expression arithmétique
§ Expression logique
Ø Variable et expression doivent être de même type ou de
types compatibles l’affectation ne modifie que ce qui est à
gauche de la flèche
5
Instruction d’affectation
Les opérateurs arithmétiques et relationnels

+ Somme
- Soustraction
Opérateurs * Multiplication
arithmétiques / Division
Div La division entière
Mod (Modulo) Le reste de la division
= Egal
<> Différent
< Strictement inférieur
Opérateurs
<= Inférieur ou égal
relationnels
> Strictement supérieur
>= Supérieur ou égal

6
Instruction d’affectation
n Exemple valide :
Algorithme Calcul
Variables A, B, C, D : entier
Début
A  10
B  30
C  A+B
D  C*A
Fin

7
Instruction d’affectation
 Exemple valides :
Algorithme Exemple_Valide_affectation
Variables
i, j,k : entier
x, y : réel
OK: booléen
ch1, ch2 : chaîne de caractères
Début
i ←1
j ←i
k ←i+j
x ←10.3
OK ←FAUX
ch1 ←"TDI"
ch2 ←ch1
x ←4
x ←j 8
Instruction d’affectation
 Exemple non valides :
Algorithme Exemple_Valide_affectation
Variables
i, j,k : entier
x, y : réel
OK: booléen
ch1, ch2 : chaîne de caractères
Début
i ←10.3
OK ←"TDI"
j ←x
Fin 9
Exercices d’affectation
Exercice1
Quelles seront les valeurs des variables après exécution des programmes ci-
dessous :

Algorithme Exemple 1
Variables A, B, C : Entier
Début
A←3
B ← 10
C ← A+B
B ← B+A
A←C
Fin

10
Exercices d’affectation
Exercice 2
Quelles seront les valeurs des variables après exécution des
programmes ci-dessous :
Exercice 2

11
Exercices d’application
Exercice 3

12
Exercices d’application
Exercice 4
Quelles seront les valeurs des variables après exécution des programmes ci-
dessous, corrigez s’il y a des erreurs :

13
Les instructions de lecture et écriture

Les instructions de lecture et écriture permettent le dialogue avec


l’utilisateur

q Instruction de lecture: instruction qui permet à


l’utilisateur de faire entrer des valeurs au clavier pour qu’elles
soient utilisées par le programme

q Instruction d’écriture: Une autre instruction permet au


programme de communiquer des valeurs à l’utilisateur en les
affichant à l’écran.

14
Instruction de lecture
n L’instruction d’entrée :
L’instruction d’entrée ou de lecture permet à l’utilisateur
de saisir des données au clavier.

En pseudo-code, on note :
Lire (variable)
Ø La machine met la valeur entrée au clavier dans la zone mémoire
nommée variable
Ø Le programme s'arrête lorsqu'il rencontre une instruction Lire et
ne se poursuit qu'après la frappe d’une valeur au clavier et de la
touche Entrée
15
Instruction de lecture
Exemple :
Lire (nom)
Cette instruction permet à l’utilisateur de saisir une
valeur au clavier qui sera affectée à la variable nom.

Remarque :
Ø Lorsque le programme rencontre cette instruction,
l’exécution s’interrompt et attend que l'utilisateur
tape une valeur.
Ø Cette valeur est rangée en mémoire dans la variable
désignée

16
Les instructions d’écriture

n L’instruction de sortie:
L'instruction de sortie (d’écriture) permet d’afficher des
informations à l'utilisateur à travers l'écran.

En pseudo-code, on note :
Ecrire (expression)
Expression peut être un message, le contenu d'une
variable...

17
Les instructions d’écriture
Exemple :
Ecrire("bonjour")
Cette instruction permettra d’afficher « bonjour » à l’écran
Ecrire (A)
Cette instruction permet d’afficher à l’écran la valeur de la
variable A.
ou bien
Ecrire ("la valeur de A est: " , A)

Conseil
Avant de lire une variable, il est fortement conseillé d’écrire des messages à l’écran,
afin de prévenir l’utilisateur de ce qu’il doit frapper.
Exemple: ecrire(« entrez votre nom »)
lire (nom)
18
Exercices d’application

Exercice 5
Quel résultat produit le programme suivant ?

VARIABLES V, D : ENTIERS
Début
V ← 231
D←V*2
ECRIRE (V)
ECRIRE (D)
Fin

19
Exercices d’application

Exercice 6
Écrire un algorithme qui demande le nom et l’année de
naissance à l’utilisateur. Ensuite, il calcule son âge et l’affiche
à l’écran

Exemple :
Donner votre nom : Ali
Donner votre date de naissance : 1990
Bonjour Ali, vous avez 33 ans

20
Exercices d’application
Exercice 7
Ecrire un algorithme qui permet de saisir deux
nombres réels et de calculer leur somme, leur
produit, leur différence, leur moyenne et puis les
afficher.

Exercice 8
Ecrire un programme qui lit une valeur différente à
0 et qui nous calcule l’inverse de cette valeur
21
Exercices d’application
Exercice 9
Écrire un algorithme qui lit deux variables A et B et les
permute.
Afficher les valeurs de A et B avant et après la
permutation.

Exemple,
Si A = 2 et B = 5, le programme donne A = 5 et B = 2.

22
Exercices d’application
Exercice 10
Ecrire un programme qui lit
--le prix HT d’un article,
--le nombre d’articles
--et le taux de TVA,
et qui fournit le prix total TTC correspondant.
Faire en sorte que des libellés apparaissent
clairement
23
Exercices d’application
Exercice 11

24
Solution
VARIABLES mat, phy, ang, fra, hg, moyenne : REELS

Début
ECRIRE “Entrez la note de math : ’’
LIRE mat
ECRIRE “Entrez la note de physique :”
LIRE phy
ECRIRE “Entrez la note de français :”
LIRE fra
ECRIRE “Entrez la note d’anglais :”
LIRE ang
ECRIRE “Entrez la note d’histoire-Géo :”
LIRE hg
moyenne ← ((mat + phy) * 5 + fra * 4 + (ang+ hg) * 2) / 18
ECRIRE “La moyenne est : ”, moyenne
Fin
25
CHAPITRE 2

Partie 2 Structures alternatives


CHAPITRE 2
Partie 2
1- La structure alternative
Structures 2- La structure alternative
alternatives imbriquée
3- Schéma conditionnel
généralisé ou multiple
La structure alternative
n Il est souvent nécessaire lorsque l'on écrit un
programme de distinguer plusieurs cas
conditionnant l'exécution de certaines
instructions

n Utilisation d’une structure alternative : si on est


dans tel cas, alors on fait cela sinon on fait ceci.

28
La structure alternative
Si (Condition) Alors
Instructions 1
[Sinon
Instructions 2]
Finsi
n si la condition est vraie, se sont les instructions1 qui seront
exécutées
n si la condition est fausse, se sont les instructions2 qui seront
exécutées
n la condition peut être une condition simple ou une condition
composée de plusieurs conditions
29
La structure alternative

30
Qu’est ce qu’une condition ?
Les conditions simples
• Une condition simple est une comparaison entre deux expressions du
même type.
• Cette comparaison s'effectue avec des opérateurs de comparaison
• Voici la liste de ces opérateurs accompagnés de leur signification dans
le cas des types numérique ou chaîne :

ü égal à =
ü différent de <>
ü strictement plus petit que <
ü strictement plus grand que >
ü plus petit ou égal à <=
ü plus grand ou égal à >=
• L’évaluation d’une condition est un booléen
31
La structure alternative
Les conditions simples
§ Pour la comparaison du type chaîne c'est l'ordre alphabétique qu'est
utilisé dans le cas où l'on compare deux lettres majuscules ou
minuscules.
§ Mais si l'on compare majuscules et minuscules, il faut savoir que les
majuscules apparaissent avant les minuscules. Ainsi, par exemple :
"M" < "m"
n Exemple:
¨ 10<20 VRAI

¨ ‘a’>’b’ FAUX
32
Exemple
Bloc d’instructions 1 Ecrire(‘’Bonjour’’)
Ecrire(‘’Donner le jour de la semaine’’)
Si (Condition) Alors Lire(j)
Instructions 2 Si(j = ‘’Dimanche’’) alors
Finsi ecrire(‘’bon weekend’’)
Bloc d’instructions 3 FinSi
Ecrire(‘’Merci et au revoir’’)

Cas 1 :
Bonjour
Cas 1 : condition vraie Donner le jour de la semaine
Bloc d’instructions 1 Dimanche
Instructions 2 Bon weekend
Bloc d’instructions 3 Merci et au revoir

Cas 2 : condition fausse Cas 2 :


Bloc d’instructions 1 Bonjour
Bloc d’instructions 3 Donner le jour de la semaine
Lundi
Merci et au revoir
33
Exemple
Bloc d’instructions 1 Ecrire(‘’Bonjour’’)
Ecrire(‘’Donner le jour de la semaine’’)
Si (Condition) Alors Lire(j)
Instructions 2 Si(j = ‘’Dimanche’’) alors
Sinon ecrire(‘’bon weekend’’)
Instructions 3 Sinon
Finsi ecrire(‘’Au travail’’)
FinSi
Bloc d’instructions 4 Ecrire(‘’Merci et au revoir’’)
Cas 1 :
Bonjour
Cas 1 : condition vraie Donner le jour de la semaine
Bloc d’instructions 1 Dimanche
Instructions 2 Bon weekend
Bloc d’instructions 4 Merci et au revoir
Cas 2 : condition fausse
Bloc d’instructions 1 Cas 2 :
Instructions 3 Bonjour
Bloc d’instructions 4 Donner le jour de la semaine
Lundi
Au travail 34
Merci et au revoir
Exercice 1: (Si…Alors)

Ecrire un algorithme qui affiche la valeur


absolue d’un nombre donné par l’utilisateur.

35
Solution 1
Algorithme AffichageValeurAbsolue
Variable x,y : réel
Début
Ecrire (“Entrez un réel : ")
Lire (x)
Si (x >= 0) alors
y←x
Sinon
y ← -x
Finsi
Ecrire ("la valeur absolue de ", x, "est:",y)
Fin

36
Solution 1
Algorithme AffichageValeurAbsolue
Variable x,y : réel
Début
Ecrire (“Entrez un réel : ")
Lire (x)
y← x
Si (x < 0) alors
y ← -x
Finsi
Ecrire ("la valeur absolue de ", x, "est :", y)
Fin

37
Exercice 2
Ecrire un algorithme qui demande à
l’utilisateur de saisir une valeur entière et de
vérifier si cette valeur est paire ou impaire

38
Solution 2
Variable n : Entier
Début
Ecrire ("Entrez la valeur entière : ")
Lire (n)
Si ( n mod 2 = 0 ) Alors
Ecrire (« cette valeur est paire")
Sinon
Ecrire (" cette valeur est impaire ")
Finsi
Fin

39
Exercice : (Si…Alors…Sinon)
n Ecrire un algorithme qui demande l’heure
à l’utilisateur et affiche le texte « bonjour »
si l’heure est entre 8h et 18h

n Regardons cet exercice, on une combinaison de


plusieurs conditions

condition composée
(heure > 8) ET (heure < 18)
40
Conditions composées
n Une condition composée est une condition formée de plusieurs
conditions simples reliées par des opérateurs logiques:
ET, OU, OU exclusif (XOR) et NON
n Exemples :
¨ x compris entre 2 et 6 : (x > 2) ET (x < 6)

¨ n divisible par 3 ou par 2 : (n Mod 3=0) OU (n Mod 2=0)

n Dans une condition composée employant à la fois des opérateurs ET et


des opérateurs OU, la présence de parenthèses possède une influence
sur le résultat, tout comme dans le cas d’une expression numérique
(exemple multiplications et des additions)

n L'évaluation d'une condition composée se fait selon des règles


présentées généralement dans ce qu'on appelle tables de vérité

41
Tables de vérité
C1 C2 C1 ET C2 C1 C2 C1 OU C2
VRAI VRAI VRAI VRAI VRAI VRAI
VRAI FAUX FAUX VRAI FAUX VRAI
FAUX VRAI FAUX FAUX VRAI VRAI
FAUX FAUX FAUX FAUX FAUX FAUX

C1 C2 C1 XOR C2 C1 NON C1
VRAI VRAI FAUX VRAI FAUX
VRAI FAUX VRAI FAUX VRAI
FAUX VRAI VRAI
FAUX FAUX FAUX

42
Exercice 3
Ecrire un algorithme qui demande trois
lettres minuscules à l’utilisateur et
l’informe ensuite s’ils sont rangés ou non
dans l’ordre alphabétique.

43
Solution 3
n Variables a, b, c : Caractère
Début
Ecrire “Entrez successivement trois noms : ”
Lire a, b, c
Si a < b et b < c Alors
Ecrire “Ces noms sont classés alphabétiquement”
Sinon
Ecrire “Ces noms ne sont pas classés”
Finsi
Fin

44
Exercice 4
Ecrire un algorithme qui demande deux
nombres à l’utilisateur et l’informe ensuite
si leur produit est négatif ou positif (on
laisse de côté le cas où le produit est nul).
Attention toutefois : on ne doit pas calculer
le produit des deux nombres.

45
Solution 4
Variables m, n : Entier
Début
Ecrire ("Entrez deux nombres : ")
Lire (m, n)
Si (
( (m > 0) ET (n > 0) )
OU
( (m < 0) ET (n < 0) )
) Alors
Ecrire ("Leur produit est positif")
Sinon
Ecrire ("Leur produit est négatif")
Finsi
Fin
46
CHAPITRE 2
Partie 2
1- La structure alternative
Structures 2- La structure alternative
alternatives imbriquée
3- Schéma conditionnel
généralisé ou multiple
Structures alternative imbriquée
n Il peut arriver que l'une des parties d'une structure alternative
contienne à son tour une structure alternative. Dans ce cas, on dit
qu'on a des structures alternatives imbriquées les unes dans les
autres.
n Les tests peuvent avoir un degré quelconque d'imbrications
Si condition1 alors
instructions1
Sinon
Si condition2 alors
instructions2
Sinon
instructions3
Finsi
Finsi
48
Structures alternative imbriquée

Exemple (version 1):


Variable n : entier
Début
Ecrire ("entrez un nombre : ")
Lire (n)
Si (n < 0) alors Ecrire ("Ce nombre est négatif")
Finsi
Si (n = 0) alors Ecrire ("Ce nombre est nul")
Finsi
Si (n > 0) alors Ecrire ("Ce nombre est positif")
Finsi
Fin

49
Structures alternative imbriquée
Exemple (version 2):

Variable n : entier
Début
Ecrire ("entrez un nombre : ")
Lire (n)
Si (n < 0) alors
Ecrire ("Ce nombre est négatif")
Sinon
Si (n = 0) alors
Ecrire ("Ce nombre est nul")
Sinon
Ecrire ("Ce nombre est positif")
Finsi
Finsi
Fin 50
Structures alternative imbriquée

n Remarque : dans la version 1 on fait trois tests


systématiquement alors que dans la version 2, si le
nombre est négatif on ne fait qu'un seul test

n Conseil : utiliser les tests imbriqués pour limiter le


nombre de tests et placer d'abord les conditions les plus
probables (minimiser la complexité)

51
Structures alternative imbriquée
Exemple:
Ecrire un programme qui donne l’état de l’eau selon sa
température.

Variable Temp : Entier


Début
Ecrire “Entrez la température de l’eau :”
Lire Temp
Si Temp =< 0 Alors
Ecrire “C’est de la glace“
Sinon
Si Temp < 100 Alors
Ecrire “C’est du liquide”
Sinon
Ecrire “C’est de la vapeur”
Finsi
FinSi
Fin 52
n On peut aussi écrire :
Variable Temp : Entier
Début
Ecrire “Entrez la température de l’eau :”
Lire Temp
Si Temp =< 0 Alors
Ecrire “C’est de la glace“
Finsi
Si Temp > 0 Et Temp < 100 Alors
Ecrire “C’est du liquide”
Finsi
Si Temp > 100 Alors
Ecrire “C’est de la vapeur”
Finsi
Fin
n La première version est plus simple à écrire et plus lisible. Elle est également plus performante à
l’exécution.
n En effet, les conditions se ressemblent plus ou moins, et surtout on oblige la machine à
examiner trois tests successifs alors que tous portent sur la même chose, la valeur de la variable Temp.
Mais aussi, et surtout, nous avons fait des économies sur le temps d’exécution de l’ordinateur. Si la
température est inférieure à zéro, celui-ci écrit « C’est de la glace » et passe directement à la fin, sans
être ralenti par l’examen des autres possibilités
53
Exercice 6
Ecrire un algorithme qui demande deux
nombres à l’utilisateur et l’informe ensuite si
le produit est négatif ou positif (on inclut
cette fois le traitement du cas où le
produit peut être nul).
Attention toutefois, on ne doit pas calculer
le produit !

54
n Variables m, n en Entier
Début
Ecrire ("Entrez deux nombres : ")
Lire (m, n)
Si ((m = 0) OU (n = 0)) Alors
Ecrire ("Le produit est nul")
Sinon // m<>0 et n<>0
Si ((m < 0 ET n < 0) OU (m > 0 ET n > 0)) Alors
Ecrire ("Le produit est positif")
Sinon
Ecrire ("Le produit est négatif")
Finsi
Finsi
Fin
55
Exercice 7
Ecrire un algorithme qui permet de lire le salaire
d’un employé, et d’augmenter sa valeur selon les
cas suivants :

 <4000 : 30%
 Entre 4000 et 6000 : 25%
 >6000 : 20%

56
Exercice 8
Ecrire un algorithme qui demande l’âge d’un
enfant à l’utilisateur. Ensuite, il l’informe de sa
catégorie :
- « Poussin » de 6 à 7 ans
- « Pupille » de 8 à 9 ans
- « Minime » de 10 à 11 ans
- « Cadet » après 12 ans

57
Solution 8
Variable age : Entier

Début
Ecrire “Entrez l’âge de l’enfant : ”
Lire age
Si age >= 12 Alors
Ecrire “Catégorie Cadet”
Sinon
Si age >= 10 Alors
Ecrire “Catégorie Minime”
Sinon
Si age >= 8 Alors
Ecrire “Catégorie Pupille”
Sinon
Si age >= 6 Alors
Ecrire “Catégorie Poussin”
Finsi
Finsi
Finsi
Finsi
Fin

58
Exercice 9
Ecrire un algorithme qui lit au clavier les valeurs
a et b et qui résous l’équation du premier degré
ax+b=0
NB:
Il faut isoler le terme en x dans un membre et le terme indépendant dans
l'autre.
On obtient: a * x = -b.
Ø Si a est égal à 0, on se retrouve avec l'équation 0 * x = -b
§ si b est égal à 0, on se retrouve avec l'équation 0 * x = 0
qui est indéterminée
§ si b n'est pas égal à 0, on se retrouve avec l'équation 0 * x = b non
nul ce qui est impossible
Ø Si a est différent de 0, on divise les 2 membres par a et on obtient
la solution: x = -b/a
59
Solution 9
réel a, b
écrire "Résolution de ax + b = 0"
écrire "Introduisez a:"
lire a
écrire "Introduisez b:"
lire b
si a=0 alors
si b=0 alors
écrire "Equation indéterminée."
sinon
écrire "Equation impossible."
fsi
sinon
écrire "x = ", -b/a
fsi

60
Exercice 10
Écrire l’algorithme qui demande
l’heure et les minutes et affiche l’heure
qu’il sera 30 minutes plus tard

61
Solution 10
Variables h,m : Entier

Ecrire ("Donnez l'heure: ")


Lire (h)
Ecrire ("Donnez les minutes : ")
Lire (m)
m  m +30
Si m >=60) alors
m m -60
si(h=23) alors
h0
sinon
h  h +1
fsi
Finsi

Ecrire("Dans trente minutes il sera: », h, « H : » , m, « min »


Fin

62
Exercice 11
Un patron décide de calculer le montant de sa participation au
prix des repas de ses employés de la façon suivante :
- Si il est célibataire Participation de 20%
- Si il est marié Participation de 25%
- Si il a des enfants Participation de 10%
supplémentaire par enfant

- si le salaire mentielle est inférieur à 6000 dh la participation


est majorée de 10%

La participation est plafonnée à 50%

Ecrire le programme qui lit les informations au clavier et


affiche pour chaque employé la participation dont il a droit.
63
Solution 11

64
Exercice 12
Un organisme de location de voiture propose deux formules de location :
n Location au kilomètre :
• pour les 100 premiers kilomètres : tarif t1 au km,
• pour les kilomètres de 101 à 1000 : tarif t2 au km,
• au delà de 1000 kilomètres : tarif t3 au km.
n Forfait journalier : kilométrage illimité au prix t4 par jour.
n Dans les deux cas, il convient d’ajouter une assurance comptabilisée par
jour et dont le montant est donné.
1) lister les entrées du problème ainsi que leurs types
2) lister les résultats calculés pour la résolution du problème ainsi que leurs
types
3) Donner les formules permettant de déterminer ces résultats
4) Ecrire un algorithme qui lit le nombre total de kilomètres et le nombre
de jours de location ainsi que les tarifs t1, t2, t3 et t4 calcule les coûts
totaux des deux tarifications, affiche les 2 coûts et indique au client la
solution la plus avantageuse
Solution 12

66
67
n Algorithme: CalculTarif

n Var t1, t2, t3, t4, ass, km, tarif1, tarif2 : réel si tarif1 = tarif2 alors
Jour : entier écrire(‘’Les 2 formules ont le même coût’’)
Début sinon si tarif1 < tarif2 alors
Lire(t1,t2,t3,t4 ,ass,km,jour) écrire(‘’La formule 1 est plus
Si km ≤ 100 Alors avantageuse’’)
tarif1  km * t1 sinon écrire(‘’La formule 2 est plus
Sinon avantageuse’’)
tarif1  100*t1 fsi
si km ≤ 1000 alors fsi
tarif1  tarif1 + (km-100)*t2 Fin
sinon
tarif1  tarif1 + 900*t2 + (km-1000)*t3
fsi
fsi
tarif1  tarif1 + (jour * ass)
tarif2  jour * (t4+ass)
écrire(‘’Le coût selon la formule 1 est :’’, tarif1)
écrire(‘‘Le coût selon la formule 2 est :’’, tarif2)

68
Exercice 13
Ecrire un algorithme permettant de
résoudre une Equation du second
degré (ax2 + bx + c = 0)

69
Solution 13
Variable a, b, c Delta: réel
écrire "Introduisez le coefficient de x2:" sinon
lire a écrire "2 racines complexes conjuguées:"
écrire "Introduisez le coefficient de x:" écrire "x1=",-b/(2*a)," + i",-Delta/(2*a)
lire b écrire "x2=",-b/(2*a)," - i",-Delta/(2*a)
écrire "Introduisez le terme indépendant:" fsi
lire c fsi
si a=0 alors
fsi
écrire "Equation du premier degré."
sinon
Delta <-- b*b-4a*c
si Delta>0 alors
écrire "2 racines réelles distinctes:"
écrire "x1=",(-b+ racine Delta)/(2*a)
écrire "x2=",(-b-Delta)/(2*a)
sinon
si Delta=0 alors
écrire "2 racines réelles égales:"
écrire "x1=x2=",-b/(2*a)

70
CHAPITRE 2
Partie 2
1- La structure alternative
Structures 2- La structure alternative
alternatives imbriquée
3- Schéma conditionnel
généralisé ou multiple
Structure conditionnelle à choix
multiple : Selon … cas
n La structure sélective ou structure conditionnelle à choix
multiples ou encore structure Selon (appelée parfois
structure Cas) est une représentation simplifiée
des conditions imbriquées (Si – Sinon)
n En effet, quand on a affaire à beaucoup de conditions à
traiter dans un algorithme (ou programme informatique),
alors la structure sélective semble la solution la plus
appropriée car elle est plus facile à représenter (au lieu
d'exprimer beaucoup d'imbrications de conditions Si -
Sinon).
72
Structure conditionnelle à choix
multiple : Selon … cas
Syntaxe :
SELON expression
valeur1 : action1
valeur2 : action2

valeurN : actionN
[SINON : action]
FIN SELON

n Si expression est égale à valeuri, on exécute actioni et on passe à la suite de


l’algorithme. Sinon on
exécute action et on passe à la suite de l’algorithme
73
Structure conditionnelle à choix multiple

n Syntaxe générale :

Selon < nom de variable >


Cas <Condition>: < instruction ou bloc >
Cas<Condition>: < instruction ou bloc >

[Sinon < instruction ou bloc >]
Fin Selon

74
Structure conditionnelle à choix multiple

‘Selon le cas’ permet de simplifier la syntaxe :


Selon (n)
Cas n= 1 : …
Cas n= 2 : …
Cas n= 3 : …
Sinon

FinSelon

75
Exercice 14
Donner l algorithme qui saisit et affiche le
libellé jour correspondant au rang du jour
dans la semaine qui est compris entre 1 et 7.

76
Solution 14 (version si impriquée)
Algorithme jour de la semaine
Variable n:entier
début
Lire (n)
Si n = 1 Alors écrire ( ‘lundi’ )
Sinon Si n = 2 Alors écrire ( ‘mardi’ )
Sinon Si n = 3 Alors écrire ( ‘mercredi’ )
Sinon Si n = 4 Alors écrire ( ‘jeudi’ )
Sinon Si n = 5 Alors écrire ( ‘vendredi’ )
Sinon Si n = 6 Alors écrire ( ‘samedi’ )
Sinon Si n = 7 Alors écrire ( ‘dimanche’ )
Sinon écrire ( ‘le numéro doit être compris entre 1 et 7’ )
FinSi FinSi FinSi FinSi FinSi FinSi FinSi

Fin

77
Solution 14 (Selon cas)
Algorithme jour de la semaine
Variable n:entier
début
Lire (n)
Selon (n) :
n = 1 : écrire ( ‘lundi’ )
n = 2 : écrire ( ‘mardi’ )
n = 3 : écrire ( ‘mercredi’ )
n = 4 : écrire ( ‘jeudi’ )
n = 5 : écrire ( ‘vendredi’ )
n = 6 : écrire ( ‘samedi’ )
n = 7 : écrire ( ‘dimanche’ )
sinon
écrire ( ‘le numéro doit être compris entre 1 et 7’ )
Fin Selon
Fin

78
Exercice 15
n On dispose d’un ensemble de tâches que l’on
souhaite exécuter en fonction de la valeur d’une
variable choix de type entier, conformément au
tableau suivant :

79
80
Exercice 16
n Écrire un algorithme qui étant donnés deux entiers représentant un mois et
une année affiche le nombre de jours du mois de cette année.

n On prendra en considération l’année bissextile (divisible par 4 et ne se


termine pas par 100 ou elle se termine par 00 et son quotient par 100 est
divisible par 4).

n En termes généraux, l'algorithme de calcul d'une année


bissextile est le suivant ... Une année sera une année
bissextile si elle est divisible par 4 mais pas par 100. Si
une année est divisible par 4 et par 100, ce n'est pas une année
bissextile à moins de la diviser également par 400.

‫ ةنسلا ةنيبكسا كيكي اكيف ريش ابشةكش‬28 ‫ كةنسلا ةنبسكلا كيكي اكيف ريش ابشةكش ككي‬29 ‫ككي‬
‫ نيبكسل‬366 ‫ككي كهو هشم يك ةشبا سلكةس‬
‫ ةنبسكلل‬365 ‫ككي‬
81
Exercice 16
n Écrire un algorithme qui étant donnés deux entiers représentant un mois et
une année affiche le nombre de jours du mois de cette année.

n On prendra en considération l’année bissextile (divisible par 4 et ne se


termine pas par 100 ou elle se termine par 00 et son quotient par 100 est
divisible par 4).

n En termes généraux, l'algorithme de calcul d'une année


bissextile est le suivant ... Une année sera une année
bissextile si elle est divisible par 4 mais pas par 100. Si
une année est divisible par 4 et par 100, ce n'est pas une année
bissextile à moins de la diviser également par 400.

‫ ةنسلا ةنيبكسا كيكي اكيف ريش ابشةكش‬28 ‫ كةنسلا ةنبسكلا كيكي اكيف ريش ابشةكش ككي‬29 ‫ككي‬
‫ نيبكسل‬366 ‫ككي كهو هشم يك ةشبا سلكةس‬
‫ ةنبسكلل‬365 ‫ككي‬
82
Exercice 16
Écrire un algorithme qui étant donnés deux entiers
représentant un mois et une année affiche le nombre
de jours du mois de cette année.
n On prendra en considération l’année bissextile si cet année :
Ø divisible par 4 (A mod 4 = 0) et ne se termine pas par 00 (A
mod 100 <>0)
Ou
Ø elle se termine par 00 et son quotient par 100 est divisible par 4
(càd elle est divisible également par 400).

83
Exercice

n Écrire un algorithme qui étant donnés deux entiers


représentant un mois et une année affiche le nombre de jours
du mois de cette année.
n En termes généraux, l'algorithme de calcul d'une année
bissextile est le suivant ... Une année sera une année bissextile si
elle est divisible par 4 mais pas par 100. Si une année est divisible
par 4 et par 100, ce n'est pas une année bissextile à moins de la
diviser également par 400.

84
algorithme: Nb-jours
Var m , a , j: entier
Debut 2 : si (a mod 4 = 0) ET ( (a mod 100 <> 0)
Ecrire (« entrer le numéro du mois de 1 à 12 ») OU (a mod 400 = 0))
lire( m ) alors j  29
Ecrire (« entrer l année») sinon j28
lire( a ) fsi
fin selon
selon cas m écrire(« Le nombre de jours est : », j)
1 : j <-- 31 Fin
3 : j <-- 31
5 : j <-- 31
7 : j <-- 31
8 : j <-- 31
10 : j <-- 31
12 : j <-- 31
4 : j <-- 30
6 : j <-- 30
9 : j <-- 30
11 : j := 30

85
86
CHAPITRE 2

Partie 3 Traitement itératif(boules)


CHAPITRE 2
Partie 3
1- Structure POUR
Traitement
itératif(boules) 2- La structure (TANT QUE)
3- La structure (Répéter )
La structure répétitive (boucle)
n On utilise la structure répétitive si on veut répéter les mêmes
actions (instructions) un certain nombre de fois
n Ces actions seront exécutées jusqu'à ce qu’une condition soit
remplie
n La plupart des langages de programmation proposent trois
types de structure répétitive
Ø Structure POUR: on y répète des instructions en faisant évoluer
un compteur (variable particulière) entre une valeur initiale et
une valeur finale
Ø La structure TANT QUE : on y répète des instructions tant
qu'une certaine condition est réalisée.
Ø La structure REPETER …. jusqu'à : on y répète des
instructions jusqu'à ce qu'une certaine condition soit réalisée.
Structure POUR
Cette structure permet de répéter des instructions un nombre connu de fois

Pour <compteur> de <VI> à <VF> [pas <VP>] faire


instructions
Fpour
Remarque :
Ø le nombre d'itérations dans une boucle Pour est connu avant le début de la boucle
Ø Compteur est une variable de type entier (ou caractère). Elle doit être déclarée.
Ø VI (valeur Initiale) et VF(valeur finale) peuvent être des valeurs, des variables définies
avant le début de la boucle ou des expressions de même type que compteur.
Ø Pas est un entier qui peut être positif ou négatif.
Ø Pas peut ne pas être mentionné, car par défaut sa valeur est égal à 1. Dans ce cas, le
nombre d'itérations est égal à finale - initiale+ 1.
Structure POUR
Pour i de Val1 à Val2 Faire
Actions……..
FinPour

ØLe traitement s'arrête lorsque le compteur a atteint sa valeur


finale
Déroulement des boucles Pour
q La valeur initiale est affectée à la variable compteur
q On compare la valeur du compteur et la valeur de finale :
§ Si la valeur du compteur est > à la valeur finale dans le cas
d'un pas positif (ou si compteur est < à finale pour un pas
négatif), on sort de la boucle et on continue avec
l'instruction qui suit FinPour
§ Si compteur est <= à finale dans le cas d'un pas positif (ou
si compteur est >= à finale pour un pas négatif),
instructions seront exécutées
Ensuite, la valeur de compteur est incrémentée de la
valeur du pas si pas est positif (ou décrémenté si pas est
négatif)
On recommence l'étape 2 : La comparaison entre
compteur et finale est de nouveau effectuée, et ainsi de
suite …
92
Exemple 2 : Pour avec pas positif
Calcul de x à la puissance n où x est un réel non nul et n un entier positif ou nul

Variables x, puiss : réel


n, i : entier
Début
Ecrire (" Entrez la valeur de x ")
Lire (x)
Ecrire (" Entrez la valeur de n ")
Lire (n)
puiss ← 1
Pour i = 1 à n
puiss← puiss*x
FinPour
Ecrire (x, " à la puissance ", n, " est égal à ", puiss)
Fin
Exemple 2 : Pour avec pas négatif
Calcul de x à la puissance n où x est un réel non nul et n un entier
positif ou nul (version 2 avec un pas négatif)
Variables x, puiss : réel
n, i : entier
Début
Ecrire (" Entrez respectivement les valeurs de x et n ")
Lire (x,n)
puiss ← 1
Pour i = n à 1 pas -1
puiss← puiss*x
FinPour
Ecrire (x, " à la puissance ", n, " est égal à ", puiss)
Fin 94
Structure POUR
Remarque

Il faut éviter de modifier la valeur du compteur (et de finale) à


l'intérieur de la boucle.
En effet, une telle action :
§ Perturbe le nombre d'itérations prévu par la boucle Pour
§ Rend difficile la lecture de l'algorithme
§ Présente le risque d'aboutir à une boucle infinie
Exemple :
Pour i =1 à 5
i  i -1
Ecrire(" i = ", i)
FinPour
Exercice 1
Algorithme qui demande à l’utilisateur de saisir un
nombre entier positif et après il affiche tous les
nombres entiers positifs inferieurs ou égale au
nombre saisi

Si l’utilisateur saisit 10, le programme affiche:


0 1 2 3 ….. 9 10

96
Solution 1
Algorithme Affichage
Variables n,i : Entier
Début
Ecrire ("Donner un nombre entier positif:")
Lire(n)
Pour i De 0 A n Faire
Ecrire(i)
FinPour
Fin

97
Exercice 2
Ecrire un algorithme qui demande un
nombre et qui ensuite affiche les dix
nombres suivants

Par exemple
Si l utilisateur saisit le nombre 17, le
programme affiche les nombres 18 19 20 21
22 23 24 25 26 27

98
Solution 2

Algorithme Affichage
Variables n,i : Entier
Début
Ecrire ("Donner un nombre entier positif:")
Lire(n)
Pour i =1 A 10 Faire
Ecrire(n+i)
FinPour
Fin

99
Exercice 3
Ecrire un algorithme qui demande un nombre
de départ, et qui calcule la somme des entiers
jusqu’à ce nombre.

Par exemple, si l’on entre 5, le programme doit


calculer : 1 + 2 + 3 + 4 + 5 = 15

100
Solution 3

Variables i , valeur , somme : Entiers


DEBUT
Lire valeur
somme ← 0
POUR i = 1 A valeur
somme ← somme + i
FIN POUR
Ecrire “La somme des ” & valeur & “ premiers
entiers est : ” & somme

101
Exercice 4

Ecrire un algorithme qui demande un


nombre de départ, et qui calcule sa
factorielle.

NB : la factorielle de 8, notée 8 ! vaut


1x2x3x4x5x6x7x8

102
Solution 4
n Le programme est :
Variables i , valeur , factoriel : Entiers
DEBUT
Lire valeur
factoriel ← 1
POUR i = 1 A valeur
factoriel ← factoriel * i
FIN POUR
Ecrire “Le factoriel de ” & valeur & “ est : ” &
factoriel
Fin
103
Exercice 5

un algorithme permettant de lire N


entiers, de calculer et d’afficher leur
moyenne
Solution 5
moyenne
var n, i, x, s : entier
Début
lire( n )
s0
pour i de 1 à n faire
lire( x )
ss+x
Fpour

ecrire( “la moyenne est :”, s / n )


Fin
Exercice 6
Ecrire un algorithme qui demande successivement
10 nombres à l’utilisateur, et qui lui dise ensuite
quel était le plus grand parmi ces 10 nombres et sa
position
Entrez un nombre

Exemple
5
Entrez un nombre
6
Entrez un nombre
Entrez un nombre
159
96 Entrez un nombre
Entrez un nombre 25
55 Entrez un nombre
Entrez un nombre 6
5 Entrez un nombre
Entrez un nombre 6
6 La plus grande valeur est 159 et sa position est 7 106
Solution 6
Variables i , a , max , pmax : Entiers
DEBUT
Ecrire « Entrez le nombre numéro 1 »
Lire a
max ← a
pmax ← 1
POUR i = 2 A 20
Ecrire « Entrez le nombre numéro » , i
Lire a
SI a > max ALORS
max ← a
pmax ← i
FIN SI
FIN POUR
Ecrire « Le plus grand nombre est : » , max
Ecrire « Sa position est : » , pmax
FIN
107
Exercice 7
Ecrire un algorithme qui lit un nombre a et ensuite il va
lire successivement 10 nombres, et qui va déterminer
ensuite combien de fois le premier nombre a été saisi
(sans compter la première saisie)
n Exemple
Entrez un nombre
Entrez la première valeur à compter 5
6 Entrez un nombre
6
Entrez un nombre Entrez un nombre
96 59
Entrez un nombre Entrez un nombre
55 25
Entrez un nombre
Entrez un nombre
6
5 Entrez un nombre
Entrez un nombre 6
6 La première valeur a été saisi 4 fois
Solution 7
Variables i , a , b, cpt : Entier

DEBUT
Ecrire «Entrez la première valeur à compter»
Lire a
POUR i = 1 A 10
Ecrire «Entrez un nombre»
Lire b
SI a = b ALORS
cpt ← cpt + 1
FIN SI
FIN POUR
Ecrire «La première valeur a été saisi » , cpt , « fois »

FIN

109
Les instructions d'une boucle peuvent etre des
instructions iteratives. Dans ce cas, on aboutit a des
boucles imbriquées.

Exemple(1): Écrire un carré de 8 fois 8 caractères ’x’

Pour i =1 à 8
Pour j =1 à 8
Ecrire("x")
FinPour
FinPour
110
Exercice 8

Ecrire un algorithme qui permet d’afficher :

111
Solution 8

Ecrire un algorithme qui permet d’afficher :

112
Exercice 9
1) Ecrire un algorithme qui demande un nombre
de départ, et qui ensuite écrit la table de
multiplication de ce nombre
n Par exemple
le nombre 7
Table de 7 :
7x1=7
7 x 2 = 14
7 x 3 = 21

7 x 10 = 70

2) Écrire l’algorithme qui affiche les tables de


multiplication de 1 à 10
113
Solution 9
Le programme est :
Variables i , valeur : Entiers
DEBUT
Lire valeur
POUR i = 1 A valeur
Ecrire valeur & “ X ” & i & “ = ” & valeur * i
FIN POUR
FIN

114
Solution 9
Le programme est :
Variables i , valeur : Entiers
DEBUT

POUR i = 1 A 10
POUR j = 1 A 10
Ecrire i & “ X ” & j & “ = ” & i * j
FIN POUR
FIN POUR
FIN

115
CHAPITRE 2
Partie 3
1- Structure POUR
Traitement
itératif(boules) 2- La structure (TANT QUE)
3- La structure (Répéter )
La structure répétitive (TANT QUE)
Tant que la condition est vraie Répéter une suite d’instructions

TANT QUE condition


Instructions à répéter
FIN TANT QUE

n Remarque : la vérification de la
condition s’effectue avant les actions.
Celles-ci peuvent donc ne jamais être
exécutées
117
La structure répétitive (TANT QUE)
Remarques
n Le nombre d'itérations dans une boucle TantQue n'est pas connu au moment
d'entrée dans la boucle. Il dépend de l'évolution de la valeur de condition.

n Une des instructions du corps de la boucle doit absolument changer la valeur


de condition de vrai à faux (après un certain nombre d'itérations), sinon le
programme tourne indéfiniment
Attention aux boucles infinies

n Exemple de boucle infinie :


i←2
TantQue (i > 0)
i ← i+1 (attention aux erreurs de frappe : + au lieu de -)

FinTantQue
La structure répétitive (TANT QUE)
Exemple 1
Variable A : entier Début
A ¬ 10
TantQue (A > 0)
A ¬ A-2
FinTantQue
Ecrire (" La valeur de A est : ", A)
Fin
La structure répétitive (TANT QUE)
Exemple 2: un algorithme permettant de lire une suite d’entiers positifs, de
calculer et d’afficher leur moyenne.

moyenne
var i, x, s : entier

Début
lire( x )
s 0
i0
tant que x > 0 faire
ii+1
ss+x Condition obligatoire pour éviter de
lire( x ) diviser par 0 si le premier entier lu
FTQ est 0
si i <> 0 aors
écrire( “la moyenne est :”, s / i )
fsi

Fin
Lien entre Pour et TantQue
q La boucle Pour est un cas particulier de Tant Que (cas où le
nombre d'itérations est connu et fixé) .
q Tout ce qu'on peut écrire avec Pour peut être remplacé avec
TantQue (la réciproque est fausse)

Pour compteur = initiale à finale pas valeur du pas


Instructions
FinPour
compteur ← initiale
Peut être remplacé par :(cas d'un pas positif) TantQue (compteur <= finale)
instructions
compteur ← compteur + pas
FinTantQue
Lien entre Pour et TantQue
Calcul de x à la puissance n où x est un réel non nul et n un entier positif ou nul
(version avec TantQue)

Variables x, puiss : réel


n, i : entier
Début
Ecrire (" Entrez la valeur de x ")
Lire (x)
Ecrire (" Entrez la valeur de n ")
Lire (n)
puiss ← 1
i←1
TantQue (i<=n)
puiss← puiss*x
i ← i+1
FinTantQue
Ecrire (x, " à la puissance ", n, " est égal à ", puiss)
Fin
Exercice 1

Ecrire un algorithme qui permet de


saisir des entiers et de calculer leur
somme et leur moyenne
On arrête avec la valeur 0

123
Solution 2
Variables n,s : Entier
Début
Ecrire ("Donner un nombre entier positif:")
Lire(n)
s 0
TantQue (n<>0) Faire
s s + n
Ecrire ("Donner un nombre entier positif:")
Lire(n)
FTQ
Ecrire (« la somme est :« , s)
Fin
124
Exercice 2
Réécrire l’algorithme suivant en utilisant la
boucle Tant que

Programme qui demande un nombre et


qui ensuite affiche les dix nombres
suivants
Par exemple
Si l utilisateur saisit le nombre 17, le programme
affiche les nombres 18 19 20 21 22 23 24 25 26
27
125
Solution 2
Algorithme Affichage
Variables n,i : Entier
Début
Ecrire ("Donner un nombre entier positif:")
Lire(n)
Tant que (i< = 10) Faire
Ecrire(n+i)
i  i +1
FTQ
Fin

126
Exercice 3
Ecrire un algorithme qui demande un nombre
compris entre 10 et 20, jusqu’à ce que la réponse
convienne.
En cas de réponse supérieure à 20, on fera
apparaître un message : « Plus petit ! », et
inversement, « Plus grand ! » si le nombre est
inférieur à 10.

127
Solution 3
Variable a : Réel
Début
Lire a
Tant Que a < 10 OU a > 20
Si a < 10 Alors
Ecrire « Plus grand ! »
Sinon
Ecrire « Plus petit ! »
Fin Si
Lire a
Fin Tant Que
Fin
128
Exercice 4
Ecrire un algorithme qui demande à l utilisateur une
valeur
Le programme doit vérifier si le nombre est premier

NB
Un nombre premier est un entier naturel qui admet exactement deux
diviseurs distincts entiers et positifs. Ces deux diviseurs sont 1 et le nombre
considéré
pour tester N, on vérifie s'il est divisible par l'un des entiers compris
au sens large entre 2 et N −1. Si la réponse est négative, alors N est
premier, sinon il est composé .
Solution 4
Algo: premier
Variable n, div : Réel
premier : booleen
Début
Ecrire(« entrez une valeur »)
Lire n
Div2
premier vrai
Pour i de 2 à n −1
Tant Que (n/2)>div et premier = vrai Si i divise n alors
si n mod div = 0 alors premier False
premier = faux
sinon Fin Pour
div div + 1
FSI
Fin Tant Que
Si premier = vrai alors
Ecrire(n,« est premier »)
Sinon
Ecrire(n,« n est pas premier »)
Fsi
CHAPITRE 2
Partie 3
1- Structure POUR
Traitement
itératif(boules) 2- La structure (TANT QUE)
3- La structure (Répéter)
La structure répétitive (Répéter )
Cette structure sert à répéter des instructions jusqu’à ce
qu’une condition soit réalisée.

Sa syntaxe est :
actions
REPETER
Instructions à répéter
Faux
JUSQU'A (condition) condition

Vrai

Remarque :
n la vérification de la condition s’effectue après les actions.
n Celles-ci sont donc exécutées au moins une fois.
132
La structure répétitive (Répéter )
Exemple 1: Calcul du produit de c jusquà la saisie de 0

Variables c : entier
Début
Répéter
Lire( c)
c←c*c
Ecrire(c)
Jusqu' à (c= 0)
Ecrire ("Fin")
Fin
La structure répétitive (Répéter )
Exemple 2: calcul de la moyenne , on arrête avec 0
Variables a , somme , moyenne , compteur : entier Début
compteur ← 0
somme ← 0
Répéter
Ecrire (" Entrez un nombre : " )
Lire (a)
compteur ← compteur + 1
somme ← somme + a
Jusqu' à (a = 0)
Si compteur <> 1 alors
Moyenne ← somme / (compteur-1)
Finsi
Ecrire (" La moyenne de valeurs saisies est : " , moyenne)
Fin
Exercice 1
Algorithme qui demande à l’utilisateur
de saisir un nombre entier positif et
après il affiche tous les nombres
entiers positifs inferieurs ou égale au
nombre saisi

135
Solution 1
Algorithme Affichage
Variables n , i : Entier
Début
Ecrire ("Donner un nombre entier positif:")
Lire(n)
i0
in répéter
répéter i  i+1
i  i-1 Ecrire(i)
Ecrire(i) juqua(i =n)
juqua(i =0)
136
Exercice 2
Ecrire un algorithme qui demande
successivement des nombres à
l’utilisateur, et qui calcule leur somme et
leur moyenne.
La saisie des nombres s’arrête lorsque
l’utilisateur entre un zéro.

137
Solution 2
Variables a , somme , moyenne , compteur : Entiers
DEBUT
compteur ← 0
somme ← 0
REPETER
Ecrire « Entrez un nombre : »
Lire a
compteur ← compteur + 1
somme ← somme + a
JUSQU'A a = 0
Moyenne ← somme / compteur
Ecrire « La moyenne de valeurs saisies est : » , moyenne
FIN
138
Exercice 3
Ecrire un algorithme qui lit les caractères saisies par l’utilisateur.
Et à la fin ce programme nous affichera la phrase saisie.
La saisie des caractères s’arrête lorsqu’on tape point « . ».
Pour l’utilisateur veut insérer un espace il lui suffit de tapez sur
0.
Par exemple si l’utilisateur tape successivement les
caractères « b » , « o », « n », « j », « o », « u », « r » , « t »,
« o », « u », « s », « . » , il nous affichera la chaîne
« bonjourtous ».
Mais si il tape « b » , « o », « n », « j », « o », « u », « r » , « 0
», « t », « o », « u », « s », « . » , le programme affichera «
bonjour tous ».
Solution 3
Variables caractere , phrase : Chaînes
DEBUT
phrase ← « »
REPETER
Ecrire « Entrez une caractère : »
Lire caractère
SI caractere = « 0 » ALORS
caractere ← « »
FIN SI
phrase ← phrase +caractere
JUSQU'A caractere = « . »
Ecrire « La phrase résultante est : » , phrase
FIN
La structure répétitive (boucle)
Choisir Pour…TantQue…répéter JUSQU’A

Boucle Faire TanQue

141
La structure répétitive (boucle)
Choisir Pour…TantQue…répéter JUSQU’A

142
La structure répétitive (boucle)
Choisir Pour…TantQue…répéter JUSQU’A

(*) : Le passage d’une boucle « répéter » ou « tantque » à une boucle « pour » n’est
possible que si le nombre de parcours est connu à l’avance
(**) : Lors du passage d’une boucle « pour » ou « tantque » à une boucle « répéter », faire
attention aux cas particuliers (le traitement sera toujours exécuté au moins une fois)
143
La structure répétitive (boucle)
Le problème d’une boucle : il faut en sortir
tant que (A) faire B
Faire B tant que (A)
Quelque chose dans la suite d’instructions B doit
amener la condition A à prendre la valeur Faux
val1  2
val2  3
TantQue (val1 < 100) faire Boucle infinie
val2  val2 ×val1
FTQ
144
Exercice 4

Ecrire un algorithme qui permet de


calculer la somme de la suite suivante en
utilisant la boucle Tant que

S = 1 + 3 + 5 + 7 + ……… + N

145
Solution 4
Variables N , s , i : Entiers
Variables N , s , i : Entiers DEBUT
DEBUT Ecrire ("Donner N:")
s←0 Lire(N) Pour i de 1 à N pas de 2
I←1 s←0 s s+ i
Ecrire ("Donner N:") i1 Fin pour
Lire(N)
Tant que ( i <=n) Répéter
s←s+i s←s+i
i←i+2 i←i+2
Fintantque Jusqua ( i > n)
Ecrire « La somme de la suite
est : » , s Ecrire « La somme de la suite
FIN est : » , s
FIN
146
Exercice 5

Soit une suite Un définie par :


U0=1,1
Un=Un-1 * 2 (pour tout n>0)
Ecrire le programme qui lit un nombre entier
n et affiche la valeur de la suite U
Solution 5
Variables n , i : Entier
u : reel
DEBUT

Ecrire ("Donnez un nombre entier: ");


Lire( (n);
u=1.1
i=1
Tant que (i<=n)
uu *2;
i i+1
Fintantque

Ecrire « La valeur de la suite est : » , u

FIN
Exercice 6

En utilisant la suite de l’exercice précèdent on


définit la somme Sn comme suit :
Sn = U0 + U1+ ...............+ Un
Modifier le programme de l’exercice précèdent
pour calculer et afficher la somme S
Solution 6

Variables n , i : Entier
u : reel
DEBUT

Ecrire ("Donnez un nombre entier: ");


Lire( (n);
U1.1
i<--1
Su;

Tant que (i<=n)


uu *2;
i i+1
s s + u
Fintantque

Ecrire « La valeur de la suite est : » , u


Exercice 4
Le service électricité AMANDIS désire calculer le montant de
la facture de ces clients en se basant sur les données
suivantes :

§ 2 Dh le KW si la consommation est < 20KW


§ 6 Dh le KW si la consommation est comprise entre 20KW
et 80KW
§ 10 Dh le KW si la consommation est > à 80KW

1) Ecrire l’algo qui permet de lire la consommation d’un


client et de calculer le montant hors taxe de la facture
2) Refaire le programme pour 100 clients
3) Refaire le programme pour un nombre in défini de clients
Justifier votre choix

Vous aimerez peut-être aussi