Pr. K.
SATORI FSDM-FES
Travaux dirigés/ Algorithmique I
Série 1
Exercice 1 :
Ecrire un algorithme qui affiche le carré d’un réel
Exercice 2 :
Écrire un algorithme qui effectue la permutation circulaire de trois nombres X, Y et Z
Exemple:
Exercice 3 :
Connaissant les notes obtenues par un élève dans 3 matières et leurs coefficients, écrire un
algorithme qui permet de calculer la moyenne de l’élève.
Exercice 4 :
Etant donné le périmètre d’un rectangle et le pourcentage de sa largeur par rapport à la
longueur, écrire un algorithme qui permet de calculer sa surface.
Exercice 5 :
Ecrire un algorithme qui permet de déterminer le maximum et le minimum de 4 nombres
entrés par l’utilisateur.
Exercice 6 :
Ecrire un algorithme qui fournit les félicitations ou l’ajournement d’un élève suivant sa note
en utilisant Si-alors-sinon.
Exercice 7 :
Ecrire un algorithme qui donne la valeur absolue de 2 réels :
Exercice 8:
Écrire un algorithme lisant 2 nombres, l’un positif et l’autre négatif, et afficher celui qui est
positif (vérifier que l’utilisateur a bien rentré 2 nombres vérifiant les conditions voulues)
Exercice 9 :
Ecrire un algorithme qui donne la durée de vol en heure minute connaissant l’heure de départ
et l’heure d’arrivée.
1 on considère que le départ et l’arrivée ont lieu même jour
2 idem mais sans faire les conversions en minutes
3 on suppose que la durée de vol est inférieure à 24 heures mais que l’arrivée peut avoir
lieu le lendemain.
Exercice 10 :
Ecrire un algorithme calculatrice permettant la saisie de deux entiers et une opération ( +, - , /
, x ) et affichant le résultat. Donner avant cela les spécifications, la solution en langage
naturel, les structures de données.
Spécifications :
Données : 2 opérandes et un opérateur
1/2
Pr. K. SATORI FSDM-FES
Résultat : résultat de l’opération choisie
Solution en langage naturel : Saisie des données, envisager tous les cas : +, - , x, /. Attention à
la division par zéro qui est impossible
Structure de données : 2 opérandes : des entiers
Un opérateur Caractère : +, -, * , /
Webographie
▪[Link]
▪[Link]
2/2
Faculté des Sciences Dhar El Mahraz Département d’informatique
Travaux dirigés : Algorithmique
Correction de la série n°1
Exercice 1 :
Algorithme carré
Var : x_au_carré, x : réel
Début
Ecrire (‘donnez la valeur de x :’)
lire (x)
x_au_carré <= x*x
Ecrire (‘le carrée de ‘,x, ‘est :’ x_au_carré)
fin
Exercice 2 :
Algorithme permutation_3_nombres
{permute 3 nombres}
Variables X, Y, Z, Temporaire: Entier
Début
Ecrire (’saisir X : ‘) ;
lire (X) ;
Ecrire (‘saisir Y :’) ;
lire(Y) ;
Ecrire (‘saisir Z : ‘) ;
lire(Z) ;
Ecrire (‘Avant permutation ‘)
Ecrire (‘X vaut : ‘,X, ‘ Y vaut : ‘,Y, ‘Z vaut : ‘,Z)
Temporaire Z
ZY
YX
X Temporaire
Ecrire (‘Après permutation ‘) ;
Ecrire (‘X vaut : ‘,X, ‘Y vaut : ‘,Y, ‘ Z vaut : ‘,Z)
Fin
Exercice3 :
Algorithme moyenne_3_note
Variable N1, N2, N3, C1, C2, C3 , Moy: Réel
Début
Ecrire (‘Entrer les trois notes’)
Lire (N1, N2, N3)
Ecrire (‘Entrer les trois coefficients)
Lire (C1, C2, C3)
1
Moy (N1*C1+N2*C2+N3*C3) / (C1+C2+C3)
Ecrire (‘la moyenne est :’, Moy)
Fin
Exercice 4 :
Algorithme Surface_rectangle
Variable p, r, l, L, s: reel
Début
Ecrire (‘donnez le périmètre p ; ‘)
Lire (p)
Ecrire (‘donnez le pourcentage de la largeur par rapport à la langueur r :‘)
Lire (r)
L p/ (2*(1+r)).
l r*L
sL*l
Ecrire (‘la surface d’un rectangle est :’, s)
Fin
Exercice 5 :
Algorithme MaxMin
Variables a, b, c, d, max, min : Réel
Début
Ecrire "Entrer 4 nombres :"
Lire a, b, c, d
Si (a>b) Alors
min ← b
max ← a
Sinon
min ← a
max ← b
Fin Si
Si (max<c) Alors
max ← c
Sinon
Si (min>c) Alors
min ← c
Fin Ss
Fin Si
Si (max<d) Alors
max ← d
Sinon
Si (min>d) Alors
min ← d
Fin Si
Fin Si
Ecrire"Le max est : ", max," et le min est : ", min
Fin
2
Exercice6 :
Algorithme Jury
Variable note : réel
Début
Lire (note)
Si note <10 alors
Écrire (‘ ajourné ‘)
Sinon
Écrire (‘reçu ‘)
fin si
Fin
Exercice 7 :
Algorithme Valeur_absolue
Variable A, B : réels
Début :
Ecrire (‘saisissez 2 réels ‘)
Lire (A, B)
Ecrire (‘les valeurs absolues de A et de B sont : ‘)
Si A<0 alors
Écrire (-A)
Sinon
Écrire (A)
fin si
Ecrire (‘ et ‘)
Si B<0 alors
Écrire (-A)
Sinon
Écrire (A)
fin si
Fin
Exercice 8 :
Algorithme affiche_positif
Variable X, Y : Réel ;
PositifOK, NegatifOK : Booléen
Début
PositifOK faux
NegatifOK faux
Ecrire (‘ Tapez 2 nombres ‘)
Lire (X,Y)
Si (X > 0) ou (Y > 0) alors
PositifOK vrai {un chiffre positif a été rentré}
Si (X < 0) ou (Y < 0) alors
NegatifOK vrai {un chiffre négatif a été rentré}
Si PositifOK et NegatifOK alors {Si un chiffre négatif et un chiffre positif ont étés
rentrés}
Début
Si X > 0 alors {Si X est positif on l’affiche}
3
Ecrire (‘X est positif : ‘, X)
Sinon {sinon cela veut dire que c’est Y qui est positif. Dans ce cas on affiche Y}
Ecrire (‘Y est positif : ‘, Y)
Fin
Sinon
Ecrire (‘ Il fallait rentrer un nombre positif et un nombre négatif ‘)
Fin
Exercice 9 :
1)
Algorithme DuréeVol1
Variable h1, h2, m1, m2, hr, mr : entiers
Début
Ecrire (‘ entrer horaire de départ et d’arrivée ‘)
Lire (h1, m1, h2, m2)
mr <= [h2*60+m2] – [h1*60+m1]
hr <= mr/60
mr <= mr%60
Ecrire (‘durée de vol : ‘ , hr, mr)
Fin
Remarque : l’opération % (modulo) permet de calculer le reste de la division entière.
2)
Algorithme DuréeVol2
Variable h1, h2, hr, m1, m2, mr : entiers
Début
Ecrire (‘ entrer horaire de départ et d’arrivée ‘)
Lire (h1, m1, h2, m2)
Si m2>m1 alors
hr <= h2-h1 et mr <= m2-m1
Ecrire (hr, mr)
Sinon
hr <= h2-h1-1 et mr <= m2+60-m1
Ecrire (hr, mr)
Fin
3)
Algorithme DuréeVol3
Variable h1, h2, m1, m2, hr, mr : entiers
Début
Ecrire (‘ entrer horaire de départ et d’arrivée ‘)
Lire (h1, m1, h2, m2)
Si h2>h1 alors
Si m2>m1 alors
hr <= h2-h1 et mr <= m2-m1
Ecrire (hr, mr)
Sinon
hr <= h2-h1-1 et mr <= m2+60-m1
4
Ecrire (hr, mr)
Sinon
Si m2>m1 alors
hr <= h2-h1+24 et mr <= m2-m1
Ecrire (hr, mr)
Sinon
hr <= h2-h1+24-1 et mr <= m2+60-m1
Ecrire (hr, mr)
Fin
Exercice10 :
Algorithme calcul
Variable a, b : réel
op : caractère
Début
Ecrire (‘ saisissez le premier entier ‘)
Lire (a)
Ecrire (‘ saisissez l’opérateur ‘)
Lire (op)
Ecrire (‘ saisissez la deuxième variable ‘)
Lire (b)
Selon que op Vaut
‘+’ : Ecrire (a+b)
‘*’ : Ecrire (a*b)
‘/’ : Si b= 0 alors
Ecrire (‘ division impossible ‘)
Sinon
Ecrire (a/b)
‘-‘ : Ecrire (a-b)
Fin selon
Fin