Vous êtes sur la page 1sur 10

TD : Initiation à l’algorithmique Université Constantine 2 – Abdelhamid Mehri

ère
1 Année (2020-2021) Tronc Commun – MI, Faculté NTIC

Corrigé TD N°3 : Le traitement alternatif (conditionnel)

Exercice 01_3:
Quel est le résultat final d’exécution de chacun des algorithmes suivants :
Algo Exo1_3_a Algo Exo1_3_b L’opération mod permet de donner
Variables Variables le reste de la division (13 mod 5 =
A, B, C : Entier N, P : Entier 3)
Début Début
Lire (A,B) Pour A=3 et B=6, C= 15 Lire (N) Pour N = 6, P = 31
Si A < 5 ou B < 8 : Pour A=3 et B=10, C= 23 Si N mod 2 = 0 : Pour N = 9, P = 28
C A+B*2 N N+4
Sinon Pour A=5 et B=10, C= 20 Fsi
C A*2+B P 1+N*3
Fsi Ecrire(P)
Ecrire (C) Fin
Fin
Algo Exo1_3_c Algo Exo1_3_d
Variables Variables
N, R : Entier A, B, C, D : Réel
Début Début
Lire(N) Pour N = 5, P = 1 Lire(A,B,C) Pour A=2, B=15 et C=9, D = 15
Si N < 0 : Pour N = -13, P = D A Pour A=0, B=-3 et C=12, D = 12
0
R 0 Si B > D :
Sinon Pour N = 21, P = 2 D B Pour A=27, B=10 et C=19, D= 27
Si N < 10 : Fsi
R 1 Si C > D :
Sinon D C - Que fait cet algorithme ?
R 2 Fsi
Fsi Ecrire (D) Affiche le maximum de trois
Fsi Fin nombres réels saisis.
Ecrire(R)
Fin

1/10
TD : Initiation à l’algorithmique Université Constantine 2 – Abdelhamid Mehri
ère
1 Année (2020-2021) Tronc Commun – MI, Faculté NTIC

Exercice 02_3:
L’algorithme de la 1ère case est écrit syntaxiquement correct.
a- Repérez les erreurs syntaxiques dans chacune des écritures suivantes (de 2 à 9), s’il y en a.
1 2 3 4 5
Algo Exo2_3_1 Algo Exo2_3_2 Algo Exo2_3_3 Algo Exo2_3_4 Algo Exo2_3_5
Variables Variables Variables Variables Variables
N : Entier N : Entier N : Entier N : Entier N : Entier
Début Début Début Début Début
Lire(N) Lire(N) Lire(N) Lire(N) Lire(N)
Si N < 10 : Si N < 10_ Si N < 10 Alors Si N < 10 : Si N < 10 :
Ecrire("chiffre") Ecrire("chiffre") Ecrire("chiffre") Ecrire("chiffre") Ecrire("chiffre")
Sinon Sinon _Sinon Sinon Fsi
Ecrire("nombre") Ecrire('nombre ') Ecrire("nombre") Ecrire("nombre") Fin
Fsi Finsi ___Fsi _
Fin Fin Fin Fin

6 7 8 9
Algo Exo2_3_6 Algo Exo2_3_7 Algo Exo2_3_8 Algo Exo2_3_9
Variables Variables Variables Variables
N : Entier N : Entier N : Entier N : Entier
Début Début Début Début
Lire(N) Lire(N) Lire(N) Lire(N)
Si N < 10 : Si N < 10 : Si 0 ≤ N < 10 : Si (N < 10) et (N ≥ 0) :
Ecrire("chiffre") Ecrire("chiffre") Ecrire("chiffre") Ecrire("chiffre")
Sinon Si N < 2 : Sinon Sinon
Fsi Ecrire("binaire") Ecrire("nombre") Ecrire("nombre")
Fin Fsi Fsi Fsi
Sinon Fin Fin
Ecrire("nombre")
Fsi
Fin
En résumé :
- Les deux points après la condition du Si sont obligatoires. Ils peuvent être remplacés par
Alors.
- Le Fsi est obligatoire, il peut être remplacé par FinSi.
- Le Sinon n’est pas obligatoire. Note : dans le cas 2_3_5, l’algorithme a changé de sens mais est
correct syntaxiquement.
- Le bloc Sinon doit contenir au moins une instruction, sinon il sera tout simplement omis.
- Dans l’instruction écrire, il faut impérativement mettre les messages entre double cotes et pas
simple cote.
- Les indentations (blancs et tabulations) ne gène en rien.
- S’il y a des traitements alternatifs imbriqués, le traitement du niveau N+1 doit
impérativement commencer et finir à l’intérieur d’un bloc Si ou Sinon d’un traitement de
niveau N.
- Les doubles inégalités sous forme mathématique sont interdites syntaxiquement en
algorithmique.
- Les parenthèses dans les conditions ne sont pas obligatoires, un ordre de priorité entre les
opérateurs logiques est appliqué ; le NON est plus prioritaire par rapport au Et logique, lequel
est plus prioritaire par rapport au OU logique.
2/10
TD : Initiation à l’algorithmique Université Constantine 2 – Abdelhamid Mehri
ère
1 Année (2020-2021) Tronc Commun – MI, Faculté NTIC

Exercice 03_3:
a- Lesquelles
quelles des expressions logiques suivantes sont correctes syntaxiquement ?

X≤3 X <= 3 X =< 3 0 ≤ X < 10 (X ≥ 0) et (X < 10) X =100 ou X ≥ 0 et X < 10 Si (X ≥ 0 et X < 10 ou X =100)
et X ≠ 1 :
Non(X ≥ 0 et X < 10) Si X = 1 : Si X == 1: ...

b- Soit l’expression logique suivante : X = 100 ou X ≥ 0 et X < 10. Dites pour chaque valeur de X,
X si elle vaut
Vrai ou Faux :
X 5 10 100 -14
Valeur logique Vrai Faux Vrai Faux
- Dans nos conventions syntaxiques algorithmiques, on peut écrire l’inégalité inférieur ou égal soit : ≤ ou
<=, mais pas =<.
- De même pour supérieur ou égal, soit ≥ ou >=, mais pas =>.
- Dans une expression logique, on peut combiner des termes avec des opérateurs logiques comme le ET et
le OU, avec ou sans utilisation des parenthèses.
- Dans les expressions logiques,
ques, les parenthèses ne sont pas obligatoires. Il y a un ordre de priorité entre
les opérateurs logiques comme pour les opérateurs arithmétiques. Le NON est prioritaire par rapport au
Et logique, lequel est prioritaire par rapport au Ou logique.
- L’opérateur
teur égal s’écrit dans nos conventions syntaxiques = est non pas == comme en langage C.
- L’opérateur ET logique s’écrit dans nos conventions syntaxiques ET et non pas && comme en langage
C. Idem pour le OU et le NON.
- La condition du Si peut être écrite sur plusieurs lignes.
- Dans les énoncés des exercices, quand on dit inférieur, ça veut dire inférieur ou égal. Quand on veut
exclure la valeur, on dit : inférieur strictement.
Exercice 04_3 :
a- Ecrire un algorithme qui demande trois valeurs réelles et affiche la plus grande d’entre elles. S’il y a deux
valeurs égales ou plus,
us, il ne doit pas le préciser.
b- Généraliser pour 4 et 5 variables.
Algo Exo4_3_a Algo Exo4_3_b1 Algo Exo4_3_b2
4_3_b2
Variables Variable
Variables Variables
X, Y, Z, Max : Réel X, Y, Z, W, Max : Réel X, Y, Z, W, V, Max : Réel
Début Début Début
Lire(X,Y,Z) Lire(X,Y,Z,W) Lire(X,Y,Z,W,V)
Max X Max X Max X
Si Y>Max : Si Y>Max : Si Y>Max :
Max Y Max Y Max Y
Fsi Fsi Fsi
Si Z>Max : Si Z>Max : Si Z>Max :
Max Z Max Z Max Z
Fsi Fsi Fsi
Ecrire (Max) Si W>Max : Si W>Max :
Fin Max W Max W
Fsi Fsi
Ecrire (Max) Si V>Max :
Fin Max V
Fsi
Ecrire (Max)
(
Fin
3/10
TD : Initiation à l’algorithmique Université Constantine 2 – Abdelhamid Mehri
ère
1 Année (2020-2021) Tronc Commun – MI, Faculté NTIC

Exercice 05_3 :
a- Ecrire un algorithme qui vérifie si un nombre entier Nb est pair ou impair (qu’il soit positif ou négatif), en
affichant un message "Pair" ou "Impair" (Utiliser l’opération mod).
b- Ecrire un algorithme qui demande à l’utilisateur de donner trois nombres entiers, et affiche ceux qui sont
multiple de 5.
Algo Exo5_3_a Algo Exo5_3_b
Variables Variables
Nb : Entier A, B, C : Entier
Début Début
Lire(Nb) Lire(A,B,C)
Si Nb mod 2 = 0 : Si A mod 5 = 0 :
Ecrire ("Pair") Ecrire (A)
Sinon Fsi
Ecrire ("Impair") Si B mod 5 = 0 :
Fsi Ecrire (B)
Fin Fsi
Si C mod 5 = 0 :
Ecrire (C)
Fsi
Fin

4/10
TD : Initiation à l’algorithmique Université Constantine 2 – Abdelhamid Mehri
ère
1 Année (2020-2021) Tronc Commun – MI, Faculté NTIC

Exercice 06_3 (supplémentaire):


a) Ecrire un algorithme qui demande à l’utilisateur de saisir quatre (4) nombres entiers inférieurs à 100, et
affiche le plus petit d’entre eux.
b) Réécrire l’algorithme pour afficher le plus petit nombre impair parmi les quatre saisis.
Exemple : Dans le cas où l’utilisateur entre 25, 6, 17, 6, l’algorithme affiche :
- 6 pour la question ‘a’.
- 17 pour la question ‘b’.
Algo Exo6_3_a Algo Exo6_3_b
Variables Variables
A, B, C, D, Min : entier A, B, C, D, Min : entier
Début Début
Lire (A, B, C, D) Lire (A, B, C, D)
Si A>100 ou B>100 ou C>100 ou D>100 : Si A>100 ou B>100 ou C>100 ou D>100 :
Ecrire ("erreur") Ecrire ("erreur")
sinon Sinon
Min A Min 101
Si B < Min : Si A mod 2 = 1 :
Min B Min A
Fsi Fsi
Si C < Min : Si B < Min et B mod 2 ≠ 0 :
Min C Min B
Fsi Fsi
Si D < Min : Si C < Min et C mod 2 ≠ 0 :
Min D Min C
Fsi Fsi
Ecrire(Min) Si D < Min et D mod 2 ≠ 0 :
Finsi Min D
Fin Fsi
Si Min =101 :
Ecrire("tous les nombres sont pairs")
Sinon
Ecrire(Min)
Fsi
Finsi
Fin

5/10
TD : Initiation à l’algorithmique Université Constantine 2 – Abdelhamid Mehri
ère
1 Année (2020-2021) Tronc Commun – MI, Faculté NTIC

Exercice 7_3 (supplémentaire):


L'indice de masse corporelle (IMC) est une grandeur qui permet d'estimer la corpulence d’une personne adulte.
Il se calcule comme suit : (kg/m ) =
La classification adoptée est :
IMC < 18.5 maigreur 18.5 ≤ IMC ≤ 25 poids normal IMC > 25 surpoids
- Ecrire deux variantes d’algorithme qui permet d’estimer la corpulence d’une personne à partir de son poids et
de sa taille. Une variante avec des traitements alternatifs imbriqués et l’autre non. Laquelle est plus rapide en
exécution ?
Algo Exo7_3_a Algo Exo7_3_b Algo Exo7_3_c
Variables Variables Variables
P, T, IMC : Réel P, T, IMC : Réel P, T, IMC : Réel
Début Début Début
Lire (P, T) Lire (P, T) Lire (P, T)
IMC P / (T*T) IMC P / (T*T) IMC P / (T*T)
Si IMC < 18.5 : Si IMC > 25 : Si IMC < 18.5 :
Ecrire ("Maigreur") Ecrire ("Surpoids") Ecrire ("Maigreur")
Sinon Sinon Fsi
Si IMC ≤ 25: Si IMC < 18: Si IMC ≥ 18.5 et IMC ≤ 25 :
Ecrire ("Poids normal") Ecrire ("Maigreur") Ecrire ("Poids normal")
Sinon Sinon Fsi
Ecrire ("Surpoids") Ecrire ("Poids normal") Si IMC > 25 :
Fsi Fsi Ecrire ("Surpoids")
Fsi Fsi Fsi
Fin Fin Fin

Exercice 8_3 (supplémentaire) :


a- Ecrire un algorithme qui résout une équation du premier degré (aX+b=0), tel que (a, b) ϵ R2 et a ≠ 0.
b- Ecrire un algorithme qui résout une équation du premier degré (aX+b=0), tel que (a, b) ϵ R2.
c- Ecrire un algorithme qui résout dans R, une équation du second degré (aX2+bX+c=0), tel que (a, b, c) ϵ R3 et
a ≠ 0.
d- Ecrire un algorithme qui résout dans R, une équation du second degré (aX2+bX+c=0), tel que (a, b, c) ϵ R3.
- R : l’ensemble des nombres réels.
- L’écriture mathématique : (a, b) ϵ R2 est l’équivalent de : a ϵ R et b ϵ R
Algo Exo8_3_a Algo Exo8_3_b
Variables Variables
a, b, Sol : Réel a, b, Sol : Réel
Début Début
Lire(a,b) Lire(a,b)
Sol -b/a Si a = 0 :
Ecrire(Sol) Si b = 0 :
Fin Ecrire("infinité de solutions")
Sinon
Ecrire("Pas de solution")
Fsi
Sinon
Sol -b/a
Ecrire(Sol)
Fsi
Fin

6/10
TD : Initiation à l’algorithmique Université Constantine 2 – Abdelhamid Mehri
ère
1 Année (2020-2021) Tronc Commun – MI, Faculté NTIC

Algo Exo8_3_c Algo Exo8_3_d


Variables Variables
a, b, c, Sol1, Sol2, Delta : Réel a, b, c, Sol1, Sol2, Delta : Réel
Début Début
Lire(a,b,c) Lire(a,b,c)
Delta b*b – 4*a*c Si a = 0 :
Si Delta < 0 : Si b = 0 :
Ecrire("Pas de solution dans R") Si c = 0 :
Sinon Ecrire("infinité de solutions")
Si Delta = 0 : Sinon
Sol1 -b/(2*a) Ecrire("Pas de solution")
Ecrire("Solution double :", Sol1) Fsi
Sinon Sinon
Sol1 (-b+racine(delta))/(2*a) Sol1 -b/a
Sol2 (-b-racine(delta))/(2*a) Ecrire("Une seule solution", Sol1)
Ecrire("Deux solutions:", Sol1, " " , Sol2) Fsi
Fsi Sinon
Fsi Delta b*b – 4*a*c
Fin Si Delta < 0 :
Ecrire("Pas de solution dans R")
Sinon
Si Delta = 0 :
Sol1 -b/(2*a)
Ecrire("Solution double :", Sol1)
Sinon
Sol1 (-b+racine(delta))/(2*a)
Sol2 (-b-racine(delta))/(2*a)
Ecrire("Deux solutions:", Sol1, " " , Sol2)
Fsi
Fsi
Fsi
Fin

7/10
TD : Initiation à l’algorithmique Université Constantine 2 – Abdelhamid Mehri
ère
1 Année (2020-2021) Tronc Commun – MI, Faculté NTIC

Exercice 9_3 (supplémentaire):


a- Ecrire un algorithme destiné à lire, au clavier l’heure et les minutes pour afficher l’heure qu’il sera une
minute plus tard. Par exemple, si l'utilisateur tape 21 puis 32, l'algorithme doit répondre :
"Dans une minute il sera 21:33". Une variante avec des traitements alternatifs séparés (non imbriqués), et une
autre avec des traitements imbriqués.
b- Réécrire l’algorithme pour afficher l’heure qu’il sera 8 minutes plus tard.

Algo Ex9_3_a1 Algo Ex9_3_a2


Variables Variables
h, m : Entier h, m : Entier
Début Début
Lire(h,m) Lire(h,m)
Si m>=0 et m<59 et h>=0 et h<=23 : m m+1
Ecrire ("Dans une minute sil sera",h,":",m+1) Si m=60 :
Fsi m 0
Si m=59 et h>=0 et h<23 : h h +1
Ecrire ("Dans une minute il sera",h+1,":00") Si h=24 :
Fsi h 0
Si m=59 et h=23 : Fsi
Ecrire ("Dans une minute il sera 00:00") Fsi
Fsi Ecrire ("Dans une minute il sera",h,":",m)
Fin Fin

Algo Ex9_3_b
Variables
h, m : Entier
Début
Lire(h,m)
m m+8
Si m ≥ 60 :
m m - 60
h h +1
Si h=24 :
h 0
Fsi
Fsi
Ecrire ("Dans une minute il sera",h,":",m)
Fin

8/10
TD : Initiation à l’algorithmique Université Constantine 2 – Abdelhamid Mehri
ère
1 Année (2020-2021) Tronc Commun – MI, Faculté NTIC

Exercice 10_3 (supplémentaire):


L’année du calendrier est divisée en 12 mois numérotés de 1 à 12 avec les principes suivants :
- les mois 1, 3, 5, 7, 8, 10 et 12 se composent de 31 jours.
- les mois 4, 6, 9 et 11 se composent de 30 jours.
- le mois 2 se compose de 29 jours si l’année est bissextile et de 28 jours sinon.
Note : une année (après JC) est bissextile si :
- elle est divisible par 4 et non divisible par 100, ou
- elle est divisible par 400.
- Ecrire un algorithme qui a pour données un mois et une année et qui affiche le nombre de jours de ce mois.
Algo Exo10_3
Variables
M, A : entier
Début
Lire (M, A)
Selon M
1, 3, 5, 7, 8, 10, 12 : Ecrire ("31 jours")
4, 6, 9, 11 : Ecrire ("30 jours")
2 : Si (A Mod 4 = 0 et A Mod 100 ≠ 0) ou A Mod 400 = 0 :
Ecrire ("29 jours")
Sinon
Ecrire ("28 jours")
Fsi
Fselon
Fin

9/10
TD : Initiation à l’algorithmique Université Constantine 2 – Abdelhamid Mehri
ère
1 Année (2020-2021) Tronc Commun – MI, Faculté NTIC

Exercice 11_3 (supplémentaire):


Ecrire un algorithme de tarification d'un hôtel. Les tarifs sont les suivants :
7500 Dinars pour un adulte en chambre individuelle ;
6000 Dinars par chambre pour trois chambres individuelles ou plus réservées ;
9500 Dinars pour deux adultes en chambre double ;
8000 Dinars par chambre pour quatre chambres doubles ou plus réservées ;
Gratuité pour le premier enfant ;
3000 Dinars par enfant à partir du deuxième.
Le petit déjeuner est obligatoire et fixé à 300 Dinars par personne quel que soit son âge.
Une chambre double doit accueillir obligatoirement deux et uniquement deux personnes.
Pour calculer le prix total à payer, on doit donc saisir les informations suivantes : nombre de chambres
individuelles, nombre de chambres doubles, nombre d'enfants et nombre de nuits.
Algo Ex11_3
Variables
NCI, NCD, NE, NN, PI, PD, PE, PPD, PaP : entier
Début
Lire(NCI, NCD, NE, NN)
Si NCI < 3 :
PI NCI * 7500
Sinon
PI NCI * 6000
Finsi
Si NCD<4 :
PD NCD * 9500
Sinon
PD NCD * 8000
Finsi
Si NE=0 :
PE 0
Sinon
PE (NE – 1) * 3000
Finsi
PPD (NE + NCI + NCD *2) * 300
PaP (PI + PD + PE + PPD) * NN
Ecrire ("le prix à payer est ", PaP)
Fin

10/10

Vous aimerez peut-être aussi