Vous êtes sur la page 1sur 9

Etablissement : ISET-Charguia Département : Technologies de l’Informatique

Matière : Algorithmique et Prog. Structurée1 Année Universitaire : 2020 - 2021


Niveau : 1ère année Tronc Commun

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

a=-1, b=2, c=2, d=2


a b c d
Etat initial -1 2 2 2
Etat final -1 0 -3 2

a=-1, b=-2, c=-2, d=3


a b c d
Etat initial -1 -2 -2 3
Etat final -1 0 1 -3

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
s0
m  m+1
Si (m > 59) Alors
m0
hh+1
Si (h > 23) Alors
h0

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

Partie 2 : Les structures répétitives


Exercice 1 :
Solution 1

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
a1/a
Finsi
res  1
Pour i de 1 à b faire
res  res * a
FinPour

Ecrire(‘’ le résultat est : ‘’, res)


Fin
Exercice 2 :
Ici on suppose que les nombre sont sur 3 chiffres et que ^ représente puissance

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)

//compter le nombre de chiffres


nbChiffre0
XN
Répéter
nbChiffrenbChiffre+1
XX div 10
Jusqu’à(X=0)
Si(N*N mod 10^X=N) alors
Ecrire(N, « est automorphe »)
Sinon
Ecrire(N, « est non automorphe »)
Finsi
Exercice 5 :
Algorithme Heureux
Variables
X, N, Som : Entier
Début
Répéter
Ecrire (’’ donner un nombre ’’) Lire(N)
Jusqu’à (N>0)
XN*N
Répéter
Som0
Répéter
Travaux Dirigés N° 2 8
SomSom+(X mod 10)^2
XX div 10
Jusqu’à(X=0)
XSom
Jusqu’à (X<10)
Si (X=1) alors
Ecrire(N, « est heureux »)
Sinon
Ecrire(N, « est heureux »)
Finsi
Fin
Exercice 6 :
Algorithme MultiplicationEgyptienne
Variables
P, n, m : Entier
Début
Ecrire(« donner les nombres n et m »)
Lire(n, m)
P0
Répéter
Si(m mod 2 =0) alors
mm div 2
nn *2
sinon
mm-1
PP+n
Finsi
Jusqu’à(m=1)
Ecrire(« la multiplication= », P+n)
Fin

Travaux Dirigés N° 2 9

Vous aimerez peut-être aussi