Académique Documents
Professionnel Documents
Culture Documents
Correction TD n°2
Partie 1 : Les structures conditionnelles
EXERCICE 1:
Quelles sont les valeurs des variables a, b, c, d après exécution de l’algorithme pour les valeurs
initiales suivantes :
a=5, b=3, c=4, d=6
a b c d
Etat initial 5 3 4 6
Etat final 0 3 4 7
EXERCICE 2:
Algorithme assurance_Auto
Variables
age_cond, age_permis : entier
nbr_acc : entier
Début
Ecrire (’’ Introduire l’age du conducteur et age permis : ’’)
Lire(age_cond, age_permis)
Ecrire (’’Introduire le nombre d’accidents : ’’ )
Lire (nbr_acc)
Si (age_cond < 25 et age_permis < 2) Alors
Si (nbr_acc = 0) Alors
Travaux Dirigés N° 2 1
Ecrire (’’Tarif = R’’)
Sinon
Ecrire (’’Refus d’assurance’’)
FinSi
Sinon
Si (age_cond < 25 et age_permis >= 2) ou (age_cond >= 25 et age_permis < 2) Alors
Si (nbr_acc = 0) Alors
Ecrire (’’Tarif = O’’)
Sinon
Si (nbr_acc = 1) Alors
Ecrire (’’Tarif = R’’)
Sinon
Ecrire (’’Refus d’assurance’’)
FinSi
FinSi
Sinon
Si (age_cond >= 25 et age_permis >= 2) Alors //on peut éliminer ce test
Si (nbr_acc = 0) Alors
Ecrire (’’Tarif = V’’)
Sinon
Si (nbr_acc = 1) Alors
Ecrire (’’Tarif = O’’)
Sinon
Si (nbr_acc = 2) Alors
Ecrire (’’Tarif = R’’)
Sinon
Ecrire (’’Refus d’assurance’’)
Finsi
Finsi
Finsi
Finsi
FinSi
Fin
Solution 2
Algorithme assurance_Auto
Travaux Dirigés N° 2 2
Variables
age_cond, age_permis : entier
nbr_acc : entier
Début
Ecrire (’’ Introduire l’age du conducteur et age permis : ’’)
Lire (age_cond, age_permis)
Ecrire (’’Introduire le nombre d’accidents : ’’ )
Lire (nbr_acc)
Si (age_cond < 25 et age_permis < 2) Alors
Si (nbr_acc = 0) Alors
Ecrire (’’Tarif = R’’)
Sinon
Ecrire (’’Refus d’assurance’’)
FinSi
Sinon
Si (age_cond < 25 et age_permis >= 2) ou (age_cond >= 25 et age_permis < 2) Alors
Selon (nbr_acc)
0 : Ecrire (’’Tarif = O’’)
1 : Ecrire (’’Tarif = R’’)
Sinon
Ecrire (’’Refus d’assurance’’)
FinSelon
FinSi
Sinon
Selon (nbr_acc)
0 : Ecrire (’’Tarif = V’’)
1 : Ecrire (’’Tarif = O’’)
2 : Ecrire (’’Tarif = R’’)
Sinon
Ecrire (’’Refus d’assurance’’)
Finselon
FinSi
FinSi
Fin
Travaux Dirigés N° 2 3
EXERCICE 3:
Algorithme Valable
Variable
N : Entier
m, c, d, u : Entier
Début
Ecrire (’’Introduire un entier sur 4 chiffres : ’’) Lire(N)
m N Div 1000
Si m=0 Alors
Ecrire (’’Non valable car N < 4 chiffres’’)
Sinon
c (N mod 1000) Div 100
d(N Mod 100) Div 10
u (N Mod 10)
Si (c Mod m = 0 et d Mod m = 0 et u Mod m = 0) Alors
Ecrire (N, ’’est valable’’)
Sinon
Ecrire (N, ’’n’est pas valable’’)
Finsi
Finsi
Fin
EXERCICE 4:
Algorithme Plus_Une_Seconde
Variables
h , m, s : Entier
Début
Ecrire(’’ Introduire l’heure ’’) Lire(h, m, s)
s s+1
Si (s > 59) Alors
s0
m m+1
Si (m > 59) Alors
m0
hh+1
Si (h > 23) Alors
h0
Travaux Dirigés N° 2 4
Finsi
Finsi
Finsi
Ecrire(’’ L’heure après une seconde est : ’’, h, ’’ : ’’, m, ’’ : ’’, s)
Fin
EXERCICE 5:
Algorithme Date_Valide
Variables
Jour, mois, an : Entier
V : Booléen
Début
V Vrai
Selon (mois) Faire
1, 3, 5, 7, 8, 10, 12 : Si (jour > 31) Alors
V Faux
Finsi
4, 6, 9, 11 : Si (jour > 30) Alors
V Faux
Finsi
2 : Si (an Mod 4 = 0 et an Mod 100 <> 0) ou (an Mod 400 = 0) Alors
Si (jour > 29) Alors
V Faux
Finsi
Sinon
Si (jour > 28) Alors
V Faux
Finsi
Finsi
Sinon
V Faux
FinSelon
Ecrire (’’ Cette Date est Valide ? ’’, V)
Fin
Travaux Dirigés N° 2 5
Algorithme Puissance
Variable
A, res : Réel
i, b : Entier
Début
Ecrire(’’ Introduire un nombre réel et sa puissance :’’) Lire(a, b)
res 1
Si (b >= 0) Alors
Pour i de 1 à b faire
res res * a
FinPour
Sinon
Pour i de 1 à -b faire
res res * 1/a
FinPour
Finsi
Ecrire(‘’ le résultat est : ‘’, res)
Fin
Solution 2
Algorithme Puissance
Variable
A, res : Réel
i, b : Entier
Début
Ecrire(’’ Introduire un nombre réel et sa puissance :’’) Lire(a, b)
Si (b <0) Alors
b-b
a1/a
Finsi
res 1
Pour i de 1 à b faire
res res * a
FinPour
Algorithme Nbre_Cubique
Variable
N : Entier
c, d, u : Entier
Début
Répéter
Ecrire (’’ Introduire une valeur entière sur 3 chiffres : ’’) Lire (N)
Jusqu’à (N Div 100 <> 0)
c N Div 100
d (N Mod 100) Div 10
u (N Mod 10)
Si (c^3 + d^3 + u^3) = N Alors
Ecrire (N, ’’ est cubique’’)
Travaux Dirigés N° 2 6
Sinon
Ecrire (N, ’’ n’est pas cubique’’)
Finsi
Fin
Algorithme Nbre_Cubique2
Variable
N : Entier
c, d, u : Entier
Début
Pour N de 150 à 410 Faire
c N Div 100
d (N Mod 100) Div 10
u (N Mod 10)
Si (c^3 + d^3 + u^3) = N Alors
Ecrire (N, ’’ est cubique’’)
Sinon
Ecrire (N, ’’ n’est pas cubique’’)
Finsi
FinPour
Fin
Exercice 3 :
Solution 1
Algorithme Nbres_Premiers
Variable
N, i, j : Entier
Premier : Booléen
Début
Répéter
Ecrire (’’ Introduire un nombre >=1 ’’) Lire(N)
Jusqu’à (N>=1)
Pour i de 2 à N Faire
Premier Vrai
j 2
TantQue (j <= i-1) et Premier Faire //ou encore : Tantque((j<=i Div 2) et Premier)
Si (i Mod j == 0)
Premier Faux
Finsi
j j+1
FinTantQue
Si Premier Alors Ecrire (i, ’’est premier’’) Finsi
FinPour
Fin
Solution 2
Algorithme Nbres_Premiers
Variable
N, i : Entier
Début
Répéter
Ecrire (’’ Introduire un nombre >=1 ’’) Lire(N)
Jusqu’à (N>=1)
Pour i de 2 à N Faire
j 2
Travaux Dirigés N° 2 7
TantQue (j <= i div 2 et i mod j<>0)
j j+1
FinTantQue
Si (j>i div 2) Alors
Ecrire (i, ’’est premier’’)
Finsi
FinPour
Fin
Exercice 4 :
Algorithme Automorphe
Variables
X, N, nbChiffre : Entier
Début
Répéter
Ecrire (’’ donner un nombre ’’) Lire(N)
Jusqu’à (N>0)
Travaux Dirigés N° 2 9