TD2: Les structures conditionnelles
esprit ►
Matière : Algorithmique 1 Unité pédagogique : Algorithmique &
Ecole Supérieure Privée
d’Ingénierie et de Support : Série d'exercices Programmation
Technologies Séance : cours
Classe(s) : 1A
Correction
Exercice 1:
Algorithme AlgEx1
Variable a, b, c: entier
Debut
écrire (“donnez les valeurs de a et b”)
lire(a,b) a=69 b=35
si(a < 2 * b) alors vrai
ba b=69
cb c=69
écrire(CHR(c)) le programme affiche le caractère
ayant le code ASCII 69: E
sinon le programme n’exécute pas les
instructions de sinon
b <- 0
écrire(b)
FinSi
Fin
Exercice 2:
Algorithme algo1
VARIABLE a:entier
DÉBUT
ecrire( ‘donnez un entier’)
lire(a)
si (a mod 3=0) alors
écrire ( a, ‘est un multiple de 3’)
sinon
écrire ( a, 'n’'est pas un multiple de 3’)
finsi
FIN
Algorithme algo2
VARIABLE c: caractère
DÉBUT
ecrire(‘donnez une lettre’)
lire(c)
si (c=’a’ ou c=’e’ ou c=’i’ ou c=’u’ ou c=’o’ ou c=’y’) alors //On peut noter le test des
voyelles majuscules
écrire ( c, ‘est une voyelle’)
sinon
écrire ( c, 'est une consonne’)
finsi
FIN
Algorithme ProduitNégatif
VARIABLE a,b:entier
DÉBUT
ecrire( ‘donnez le premier entier’)
lire(a)
ecrire( ‘donnez le deuxième entier’)
lire(b)
si ((a<0 et b>0) ou (a>0 et b<0)) alors
écrire ( ‘le produit est négatif’)
sinon
écrire ( ‘le produit est positif’)
finsi
FIN
Exercice 3:
Algorithme Température
VARIABLE t:réel
DÉBUT
ecrire( ‘donnez la température de l’eau’)
lire(t)
si (t<0)alors
écrire ( ‘Glace’’)
sinon
si (t<100) alors
écrire ( ‘Eau’’)
sinon
écrire(‘Vapeur’)
finsi
finsi
FIN
Exercice 4:
Algorithme HeureSup
VARIABLE h:entier
pu,m:réel
DÉBUT
ecrire( ‘donnez le nombre d’heures travaillées’)
lire(h)
ecrire(‘donnez le prix unitaire d'une heure’)
lire(pu)
si (h<40) alors
écrire ( ‘heures travaillés sans supplément ’)
sinon
si (h<45) alors
m← (h-39)*pu*1.5
écrire ( ‘le montant supplémentaire égale à‘, m)
sinon
si (h<50) alors
m← (45-40)*pu*1.5+(h-44)*pu*1.75 //ou m← (5*1.5+(h-
44)*1.75)*pu
écrire ( ‘le montant supplémentaire égale à ‘, m)
sinon
m← (45-40)*pu*1.5+(50-45)*pu*1.75+(h-49)*pu*2
écrire ( ‘le montant supplémentaire égale à’, m)
finsi
finsi
finsi
FIN
Exercice 5:
Algorithme PermisVoiture
VARIABLE permis, voiture: entier
DÉBUT
ecrire( ‘avez vous un permis de conduire (0/1)’)
lire(permis)
ecrire( ‘avez vous une voiture (0/1)’)
lire(voiture)
si (permis=1) alors
si (voiture=1) alors
écrire ( ‘Conduis moi à la gare’)
sinon
écrire( ‘Pas de voiture !’ )
finsi
sinon
si (voiture=1) alors
écrire ( ‘hors la loi’)
sinon
écrire(‘vive le vélo!’)
finsi
finsi
FIN
NB: on peut comparer la solution ci-dessus avec la suivante:
Algorithme PermisVoiture
VARIABLE permis, voiture: entier
DÉBUT
ecrire( ‘avez vous un permis de conduire (0/1)’)
lire(permis)
ecrire( ‘avez vous une voiture (0/1)’)
lire(voiture)
si (permis=1) et (voiture=1) alors
écrire ( ‘Conduis moi à la gare’)
finsi
si (permis=1) et (voiture=0) alors
écrire(‘j’ai une voiture pas chère’’)
finsi
si (permis=0) et (voiture=1) alors
écrire ( ‘hors la loi’)
finsi
si (permis=0) et (voiture=0) alors
écrire(‘vive le vélo!’’)
finsi
FIN
Pour la première solution, l’algo exécute seulement 2 comparaisons au pire des cas.
Pour la deuxième solution, l’algo peut exécuter jusqu’à 8 comparaisons au pire des cas.
Exercice 6:
Schématiser la démarche de résolution
Algorithme EquationSecondDegré
VARIABLE delta:réel
a,b,c: entier
DÉBUT
ecrire( ‘donnez la valeur de a’)
lire(a)
ecrire( ‘donnez la valeur de b’)
lire(b)
ecrire( ‘donnez la valeur de c’)
lire(c)
delta← b*b-4*a*c
si (delta<0)alors
écrire ( ‘pas de racines’’)
sinon
si (delta=0) alors
ecrire ( ‘racine=’’,-b/2*a)
sinon
ecrire ( ’’1er racine=’’,(-b-𝑠𝑞𝑟𝑡(delta) )/2*a, “2eme racine= “,(-b+ 𝑠𝑞𝑟𝑡 (delta)
)/2*a )
finsi
finsi
FIN
Exercice 7:
Algorithme Jour
VARIABLE j: entier
DÉBUT
ecrire( ’’donnez le numéro du jour de la semaine’’)
lire(j)
SELON (j) FAIRE
1: écrire ( ‘’Lundi’’)
2: écrire ( ‘’Mardi’’)
3: écrire ( ‘’Mercredi’’)
4: écrire ( ‘’Jeudi’’)
5: écrire ( ‘’vendredi’’)
6: écrire ( ‘’Samedi’’)
7: écrire ( ‘’Dimanche’’)
AUTRE : écrire ( ‘’le numéro doit être entre 1 et 7’’)
FIN SELON
FIN
Exercice 8:
Algorithme calculatrice
VARIABLE a,b: entier
op: caractère
DÉBUT
ecrire( ‘donnez la valeur de a’)
lire(a)
ecrire( ‘donnez la valeur de b’)
lire(b)
ecrire( ‘donnez l’opération arithmétique’)
lire(op)
SELON (op) FAIRE
’+’: écrire ( a+b)
’*’: écrire ( a*b)
’-’: écrire ( a-b)
’/’: écrire ( a/b)
AUTRE : écrire ( ‘opération inexistante’’)
FIN SELON
FIN