Vous êtes sur la page 1sur 4

1 2

Exercice1
Module :
Algorithmes et structures Écrire un algorithme permettant de :

de données I  Saisir deux nombres a et b.


 de déterminer si a est divisible par b.

CORRIGÉ TD 2 : LES STRUCTURES DE


CONTRÔLE CONDITIONNELLES

Algorithme Ex2_1
Constantes PI=3.14
3 Variables 4
Exercice 2 C : caractère
rayon, largeur, longueur, base, hauteur : entier
Début
Ecrire(" taper C pour calculer la surface d'un cercle, taper R pour calculer la
surface d'un rectangle ou taper T pour caculer la surface d'un Triangle")
1) Écrire un algorithme permettant de calculer la surface d’un cercle si l’utilisateur tape C, la Lire(C)
surface d’un rectangle si l’utilisateur tape R et la surface d’un triangle si l’utilisateur tape T. Selon (C) faire
2) Écrire un algorithme permettant de : 'C','c' : Ecrire("donner le rayon")
Lire(rayon)
 Saisir un code opération + - * ou / ainsi que deux entiers, Ecrire("la surface du cercle est",rayon*rayon*PI)
'R','r' : Ecrire("donner la longueur et la largeur")
 Selon le code opération, le programme doit : Lire(longueur, largeur)
 Soit additionner les deux entiers Ecrire("la surface du rectangle est", longueur*largeur)
 Soit soustraire le plus petit du plus grand 'T','t' : Ecrire("donner la base et la hauteur")
Lire(base, hauteur)
 Soit multiplier les deux entiers,
Ecrire("la surface du triangle est", (base*hauteur)/2)
 Soit diviser le plus grand par le plus petit. Sinon Ecrire ("caractère saisi erroné")
 Ou indiquer que le code opération est erroné. FinSelon
Fin
 Afficher le résultat de l’opération.

1
5 6
Exercice 2 Algorithme Ex2_2
Variables
Finsi
Sinon
C : caractère Si(B ≠ 0) alors
Ecrire("la division de",A,"par",B,"est",A div B)
A,B : entier
Sinon
Début Ecrire("division par zéro impossible")
1) Écrire un algorithme permettant de calculer la surface d’un cercle si l’utilisateur tape C, la Ecrire(" taper un caractère") Finsi
surface d’un rectangle si l’utilisateur tape R et la surface d’un triangle si l’utilisateur tape T. Lire(C) Finsi
Ecrire(" donner la valeur de a et b") Sinon Ecrire ("Caractère erroné")
2) Écrire un algorithme permettant de : Lire(A,B) FinSelon
Selon (C ) faire Fin
 Saisir un code opération + - * ou / ainsi que deux entiers, ‘+’ : Ecrire("la somme de",A, "et",B, "est",A+B)
‘-‘ : Si(A<B) alors
 Selon le code opération, le programme doit : Ecrire("la soustraction de",A, "de",B, "est",B-A)
Sinon
 Soit additionner les deux entiers Ecrire("la soustraction de",B,"de",A,"est",A-B)
Finsi
 Soit soustraire le plus petit du plus grand ‘*’ : Ecrire("la multiplication de",A,"par",B,"est",A*B)
 Soit multiplier les deux entiers, ‘/’ : Si(A<B) alors
Si(A≠0) alors
 Soit diviser le plus grand par le plus petit. Ecrire("la division de",B,"par",A,"est",B
 Ou indiquer que le code opération est erroné. div A)
Sinon
Ecrire("division par zéro impossible")
 Afficher le résultat de l’opération.

Algorithme Exercice3
7 Variables 8
jj,mm,aaaa : entier non signé
Exercice3 bissextile, maxj31,maxj30,maxj29,maxj28,valid,djm : booléen
Début
bissextile=faux
Ecrire("donner une date sous la forme jj/mm/aaaa")
Lire(jj,mm,aaaa)
Écrire un algorithme et le programme C permettant de : bissextile  (aaaa mod 4 =0 et aaaa mod 100 ≠ 0) ou (aaaa mod 400 =0)
maxj31  mm=1 ou mm=3 ou mm=5 ou mm=7 ou mm=8 ou mm=10 ou mm=12
 Saisir une date sous la forme de jj/mm/aaaa. maxj30  mm=4 ou mm=6 ou mm=9 ou mm=11
 Vérifier la validité de cette date. maxj29  mm=2 et bissextile
maxj28  mm=2 et non(bissextile)
 S’il s’agit d’une date valide, calculer et afficher la date du lendemain. valid (aaaa>=1582 et mm>=1 et mm<=12 et jj>=1) et((maxj31 et jj<=31) ou (maxj30 et jj<=30)
ou (maxj29 et jj<=29) ou (maxj28 et jj<=28))
si valid alors
 Une année est dite bissextile si elle est divisible par 4 mais pas par 100. Cependant, Ecrire ("date valide")
les années multiples de 400 sont bissextiles. sinon
Ecrire ("date invalide")
finsi

2
Algorithme Exercice3
/*dernier jour du mois*/ Variables
djm  (jj = 31 et maxj31) ou (jj = 30 et maxj30) jj,mm,aaaa : entier non signé

ou (jj = 29 et maxj29) ou (jj = 28 et maxj28) 9 bissextile, maxj31,maxj30,maxj29,maxj28,valid,djm : booléen


Début 10
si valid alors Ecrire("donner une date sous la forme jj/mm/aaaa") Lire(jj,mm,aaaa)
bissextile  (aaaa mod 4 =0 et aaaa mod 100 <> 0) ou (aaaa mod 400 =0)
si djm alors maxj31  mm=1 ou mm=3 ou mm=5 ou mm=7 ou mm=8 ou mm=10 ou mm=12
maxj30  mm=4 ou mm=6 ou mm=9 ou mm=11
jj  1 maxj29  mm=2 et bissextile
si mm=12 alors maxj28  mm=2 et non(bissextile)
valid  (aaaa>=1582 et mm>=1 et mm<=12 et jj>=1) et((maxj31 et jj<=31) ou
mm1 (maxj30 et jj<=30) ou (maxj29 et jj<=29) ou (maxj28 et jj<=28))
aaaaaaaa+1 /*dernier jour du mois*/
djm  (jj = 31) ou (jj = 30 et maxj30) ou (jj = 29 et mm = 2) ou (jj = 28 et maxj28)
sinon si valid alors
mmmm+1 si djm alors
jj  1
finsi si m=12 alors
mm1
sinon aaaaaaaa+1
jjjj+1 sinon
mmmm+1
finsi finsi
ecrire("le lendemain sera",jj,"/",mm,"/",aaaa) sinon
jjjj+1
sinon finsi
ecrire("date invalide") ecrire("le lendemain sera",jj,"/",mm,"/",aaaa)
sinon
finsi ecrire("date invalide")
finsi
fin fin

Algorithme Salaire
Variables
11 H : entier
T,s : réel
12
Exercice4 Début
Ecrire(" donner le nombre d’heure et le taux horaire")
Lire(h,t)
si h <= 39 alors
s  h * t
Une entreprise emploie des salariés à l’heure. Elle les paie chaque semaine suivant un sinon
si h<=44 alors
taux horaire T (salaire par heure) auquel est appliqué un coefficient K donné par :
s  39*t+(h-39)*(t*1.2)
 K=1 pour les 39 premières heures, sinon
si h <=49 alors
 K=1.2 de la 40ème à la 44ème heure, s  39*t+5*(t*1.2)+(h-44)*(t*1.5)
sinon
 K=1.5 de la 45ème à la 49ème heure, si h > 49 alors
s  39*t+5*(t*1.2)+5 *(t*1.5)+(h-49)*(t*1.8)
 K=1.8 au-delà de la 49ème heure. finsi
finsi
Ecrire un algorithme qui calcule le salaire hebdomadaire d’un employé. Le nombre finsi
finsi
d’heures effectuées par l’employé est connu, et il est saisi par l’utilisateur en début Ecrire ("le salaire est" ,s)
d’algorithme. Fin

3
Algorithme Assurance
Variables
vv, va: réel
13 av, ac, num : entier 14
rep : caractère
Exercice 5 Début
Ecrire("donner le numéro du véhicule") Lire(num)
Ecrire("Est ce que le véhicule est accidenté ?") lire(rep)
si (rep='o') alors
va  0
Une compagnie d’assurance vous propose les règles de calcul suivantes afin de calculer sinon
la valeur d’assurance d’un véhicule accidenté. Ecrire("donner la valeur du véhicule")
lire (vv)
Age véhicule Age chauffeur Véhicule accidenté Ecrire("donner lâge du véhicule")
lire(av)
AV <= 10 ans AV > 10 ans AC > 50 ans ou AC < 20 ans AC >=20 et AC<=50 Oui Non Ecrire("donner l'âge du chaffeur")
VA = VV/10 * AV VA = VV / (10*AV) VA=VA/2 VA = 0
lire(ac)
si (av <=10) alors
vavv/10*av
 VV : valeur du véhicule
sinon
 AV : âge du véhicule vavv/(10*av)
finsi
 AC : âge du chauffeur si (ac >50 ou ac<20) alors
 VA : valeur de l’assurance. va  va/2
finsi
Ecrire un algorithme qui calcule la valeur d’assurance d’un véhicule donné. finsi
Ecrire("la valeur d'assurance du véhicule",num,"est égale à",va)
Fin

Vous aimerez peut-être aussi