Vous êtes sur la page 1sur 7

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

▪http://pise.info/algo/introduction.htm
▪https://www.cours-gratuit.com/cours-algorithme/cours-et-exercices-complet-algorithmes-en-pdf

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
ZY
YX
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
sL*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