Universit libre de Tunis Mme Ksibi jihene
Algorithmique et structure de donn es
Exercice 1 : Tarifs
TD
crire lalgorithme d crivant un programme permettant une h tesse de calculer le prix dune
place en fonction de l ge du passager. Les enfants de moins de deux ans ne paient pas, ceux
qui ont moins de 10 ans paient moiti prix, et les personnes de moins de 27 ans et celles de
plus de 70 ans ont une r duction de 10%. Lutilisateur doit saisir le prix de base du billet et
l ge du passager. Le programme affiche le r sultat.
Correction exercice 1 :
AlgorithmeTarifs
VAR prix,age : entier
DEBUT
ecrire Entrez le prix de la place, puis votre age :
lire (prix,age)
Si (age<2) Alors
ecrire Vous ne payez pas
Sinon
Si (age<10) Alors
ecrire Vous devez payer : ,prix/2
Sinon
Si(( age<27 )OU (age>70)) Alors
ecrire ( Vous devez payer : ,prix-(prix*10)/100)
Sinon
ecrire ( Vous devez payer : ,prix)
FinSi
FinSi
FinSi
FIN
Exercice 2 : Indice de masse corporelle
1
Universit libre de Tunis Mme Ksibi jihene
Algorithmique et structure de donn es
crire le pseudo-code dun programme demandant une personne de saisir au clavier son
sexe (H/F), sa taille (en cm) et son poids (en kg) et affichant les messages :
vous devriez surveiller votre alimentation si lindice de masse corporelle
(poids/(taille*taille)) est sup rieur ou gal 25 pour un homme ou 23 pour une
femme.
vous devriez prendre des forces sil est inf rieur ou gal 19 pour un homme
ou 18 pour une femme.
vous tes votre poids de forme sinon.
NB : Les donn es fournies dans cet exercice nont aucune valeur scientifique.
Correction exercice 2 :
Algorithme MasseCorpo
VAR
taille,poids,indice
: entier
sexe
: charact re
phrase_finale : chaine
DEBUT
ecrire ( Quel est votre sexe ? (H/F) )
lire (sexe)
ecrire ( Entrez votre taille (en cm) puis votre poids (en kg) )
lire (taille,poids)
indice (poids/(taille*taille))
Si (sexe = H) Alors
Si ( indice >= 25) Alors
phrase_finale vous devriez surveiller votre alim.
Sinon
Si ( indice <= 19) Alors
phrase_finale vous devriez prendre des forces.
Sinon
phrase_finale ( Vous tes votre poids de forme )
FinSi
2
Universit libre de Tunis Mme Ksibi jihene
Algorithmique et structure de donn es
FinSi
Sinon
Si (indice >= 23) Alors
phrase_finale vous devriez surveiller votre alim
Sinon
Si (indice <= 18) Alors
phrase_finale vous devriez prendre des forces
Sinon
phrase_finale Vous tes votre poids de forme
FinSi
FinSi
FinSi
ecrire (phrase_finale)
FIN
Exercice 3 : Triangles
crire en pseudo-code un programme qui demande lutilisateur de saisir les valeurs des
trois c t s dun triangle et affiche si le triangle est rectangle, isoc le, isoc le rectangle, ou
quilat ral.
Correction exercice 3 :
Algorithme Triangles
VAR
a,b,c
: entier
estRectangle, estIsocele, estEquilateral : bool en
DEBUT
Publicité
ecrire ( veuillez entrer lhypot nuse : )
lire(a)
ecrire ( veuillez entrer les 2 autres cot s : )
3
Universit libre de Tunis Mme Ksibi jihene
Algorithmique et structure de donn es
lire (b,c)
estRectangle aa=bb+c*c
estIsocele a=b OU a=c OU b=c
estEquilateral a=b ET a=c
Si (estEquilateral) Alors
ecrire ( le triangle est equilat ral ! )
Sinon
Si (estIsocele ET estRectangle) Alors
ecrire le triangle est isoc le rectangle !
Sinon
Si (estIsocele) Alors
ecrire ( le triangle est isoc le ! )
Sinon
SI ( estRectangle) Alors
ecrire ( le triangle est rectangle ! )
Sinon
ecrire ( le triangle na pas de propri t s& )
FinSi
FinSi
FinSi
FinSi
FIN
Exercice 4 : Minimum
crire lalgorithme affichant le minimum dune suite de 10 r els saisis au clavier.
Correction exercice 4 :
Algorithme Minimum
VAR boucle : entier
min,val : reel
DEBUT
ecrire ( Entrez un r el : )
4
Universit libre de Tunis Mme Ksibi jihene
Algorithmique et structure de donn es
lire (min)
Pour boucle de 1 9 pas de 1, faire
ecrire ( Entrez un autre r el : )
lire (val)
Si (val<min) Alors
min=val
FinSi
FinPour
ecrire ( le minimum est : , min)
FIN
Exercice 5 : Saisie correcte
Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu ce que la
r ponse convienne. En cas de r ponse sup rieure 20, on fera appara tre un message : Plus
petit ! , et inversement, Plus grand ! si le nombre est inf rieur 10.
Correction exercice 5 :
ALGORITHME SaisieCorrecte
VAR
valeur : entier
debut
R p ter
ecrire ( Entrez un nombre entier : )
lire (valeur)
Si (valeur >20) Alors
ecrire ( Plus petit ! )
FinSi
Si (valeur <10) Alors
ecrire (Plus grand ! )
FinSi
Jusqu ((valeur <20) ET (valeur >10))
FIn
5
Universit libre de Tunis Mme Ksibi jihene
Algorithmique et structure de donn es
Exercice 6 : Table de multiplication
Ecrire un algorithme qui demande un nombre de d part, et qui ensuite crit la table de
multiplication de ce nombre, pr sent e comme suit (cas o l'utilisateur entre le nombre 7) :
Table de 7 :
7 x 1 = 7
7 x 2 = 14
&
7 x 11 = 77
&
7 x 20 = 140
Correction exercice 6 :
Algorithme Multiplication
VAR
table,i : entier
DEBUT
ecrire Entrez la table de multiplication :
lire (table)
Pour i de 1 20 pas de 1, faire
ecrire (table,x, i,=,table*i)
FinPour
FIN
Publicité
Exercice 7 :
Ecrire un algorithme permettant de lire une suite de nombres r els sur le clavier. Le dernier
l ment lire est un z ro.
Lalgorithme doit afficher le plus petit l ment de la suite ainsi que la somme des l ments
lus.
6
Universit libre de Tunis Mme Ksibi jihene
Algorithmique et structure de donn es
Correction exercice 1 :
Algorithme lire_une_suite;
Var
a,s : r els ;
Debut
Repeter
Ecrire(entrer un nombre: ) ;
Lire(a) ;
S<-- s+a ;
Jusqu' (a=0)
Ecrire(la somme des nombres est : ,s) ;
fin
Exercice 8 :
Ecrire un algorithme qui lit les noms des athl tes d sirant participer un marathon et sarr te
lorsquil rencontre deux noms cons cutifs identiques.
Lalgorithme doit afficher , la fin , le nombre de participants.
Correction exercice 8 :
Algorithme lire_une_suite;
Var
Nom1,nom2 : chaine de 30 caract res ;
Compteur i :entier ;
Debut
Ecrire(entrer un nom dathl te : ) ;
Lire(nom1) ;
7
Universit libre de Tunis Mme Ksibi jihene
Algorithmique et structure de donn es
Ecrire(entrer un nom dathl te : ) ;
Lire (nom2) ;
i <-- 2 ;
Tantque(nom1 <> nom2)
Nom1 <-- nom2 ;
Ecrire(entrer un nom dathl te : ) ;
Lire(nom2) ;
i<-- i+1;
Fintantque
Ecrire(le nombre des participants est : ,i) ;
fin
Exercice 9:
Dans un cin ma , on d sire calculer la moyenne d ges de personnes sint ressant voir un
film particulier.
Pour finir, lutilisateur doit r pondre par N la question pos e par lalgorithme :
Encore une autre personne (O/N) ?
Et on doit afficher la moyenne d ges des personnes lecran.
Correction exercice 9:
Algorithme moyenne_age;
Var
i ,age,som :entier ;
Debut
i <-- 0 ;
age <-- 0 ;
Repeter
Ecrire( entrer lage du personne ) ;
Lire(age ) ;
i<-- i+1 ;
Som <-- som+ age ;
8
Universit libre de Tunis Mme Ksibi jihene
Algorithmique et structure de donn es
Ecrire(Encore une autre personne (O/N) ?)
Lire(rep) ;
Jusqu' (rep=N)
Ecrire(la moyenne d ges des personnes est : ,som/i) ;
fin
Exercice 10 :
Ecrire un algorithme permettant de calculer la factorielle dun nombre entier positif N.
N ! = 123&&..N
Correction exercice 4 :
Algorithme factorielle;
Var
i ,N,fact:entier ;
Debut
fact<-- 1 ;
pour i=1 N faire
fact<-- fact*i ;
Finpour i
Ecrire( la factorielle de ,N, est : ,fact ) ;
fin
Exercice 11:
Pour avoir une id e sur le niveau des leves dune classe, on a d cid de calculer la moyenne
de la classe partir des moyennes g n rales de tous les l ves qui sont au nombre de 30.
Moy =
Ecrire un algorithme de r solution.
Correction exercice 11:
Algorithme moyenne_classe;
Publicité
Var
i :entier ;
9
Universit libre de Tunis Mme Ksibi jihene
Algorithmique et structure de donn es
NT ,som: r els
const
nb=30 ;
Debut
Som <-- 0 ;
pour i=1 N faire
Ecrire( entrer la note N ,i, :) ;
Lire(NT) ;
Som<-- som+NT ;
Finpour i
Ecrire( la moyenne de la classe est : ,som/nb ) ;
fin
Exercice 12 :
Ecrire un algorithme qui permet de retrouver le maximum, le minimum ainsi que la somme
dune liste de nombres positifs saisis par lutilisateur. La fin de la liste est indiqu e par un
nombre n gatif. La longueur de la liste nest pas limit e.
Exemple : si la liste des l ments est : 7 3 20 15 2 6 5 -1
Le maximum est 20 , le minimum est 2 .
Correction exercice 12:
Algorithme moyenne_age;
Var
i ,n,som :entier ;
Debut
Ecrire( entrer un nombre ) ;
Lire(n ) ;
max<-- n ;
min <-- n ;
som <-- n ;
Tantque n>0 faire
Ecrire( entrer un nombre) ;
Lire(n ) ;
Si min>n alors
Min <-- n ;
Finsi
Si max<n alors
Max <-- n ;
Finsi
fin tantque
Ecrire(Le maximum est ,max , le minimum est ,min) ;
10
Universit libre de Tunis Mme Ksibi jihene
Algorithmique et structure de donn es
fin
Exercice 13
Ecrire un algorithme qui permet d'afficher la valeur absolue d'un r el saisie au clavier .
|x|= x si x>0
|x|= -x si x<0
Correction exercice 1 3:
Algorithme valeur_absolue;
Var
X :r els;
Debut
Ecrire(entrer un nombre : ) ;
Lire(X) ;
Si X>0 alors
Ecrire(la valeur absolue de X=,X);
Sinon
Ecrire(la valeur absolue de X=,X);
Finsi
fin
Exercice 14 :
Ecrire un algorithme qui permet dafficher la valeur absolue de la diff rence entre deux
nombres r els saisis au clavier.
|x-y|= x y si x>y
|x-y|= -(x y) si x<y
Correction exercice 14 :
Algorithme valeur_absolue;
Var
x,y :r els;
Debut
Ecrire(entrer x : ) ;
Lire(x) ;
Ecrire(entrer y : ) ;
Lire(y) ;
Si x>y alors
Ecrire(la valeur absolue de x-y=,x-y);
Sinon
Ecrire(la valeur absolue de x-y =,y-x);
Finsi
fin
Exercice 15:
On d sire crire un algorithme qui permet dafficher le jour correspondant un chiffre allant
de 1 7 , entr au clavier.
R soudre ce probl me avec deux m thodes : (si imbriqu e , primitive cas).
Correction 1 exercice 15 :
11
Universit libre de Tunis Mme Ksibi jihene
Algorithmique et structure de donn es
Publicité
Algorithme affichage_jour;
Var
jour :entier;
Debut
Ecrire(entrer un chiffre de 1 a 7 : ) ;
Lire(jour) ;
Si jour=1 alors
Ecrire( lundi );
Sinon Si jour=2 alors
Ecrire( mardi );
Sinon Si jour=3 alors
Ecrire( mercredi );
Sinon Si jour=4 alors
Ecrire( jeudi );
Sinon Si jour=5 alors
Ecrire(vendredi);
Sinon Si jour=6 alors
Ecrire(samedi);
Sinon Si jour=2 alors
Ecrire(dimanche);
Sinon
Ecrire(ce nest pas un jour de semaine);
Finsi
Finsi
Finsi
Finsi
Finsi
Finsi
Finsi
fin
Correction 2 exercice 15:
Algorithme affichage_jour;
Var
jour :entier;
Debut
Ecrire(entrer un chiffre de 1 a 7 : ) ;
Lire(jour) ;
Cas jour
1 : Ecrire(LUNDI ) ;
2 : Ecrire(MARDI ) ;
3 : Ecrire(MERCREDI ) ;
4 : Ecrire(JEUDI ) ;
5 : Ecrire(VENDREDI ) ;
6 : Ecrire(SAMEDI ) ;
7 : Ecrire(DIMANCHE ) ;
Sinon
Ecrire( il faut choisir un nombre entre 1 et 7 !!!! ) ;
FinCas
12
Universit libre de Tunis Mme Ksibi jihene
Algorithmique et structure de donn es
fin
Exercice 16 :
Ecrire un algorithme qui permet de saisir deux nombres entiers x ,y et les afficher l cran
dans lordre croissant.
Correction exercice 16 :
Algorithme tri_deux_nombre;
Var
x,y :r els;
Debut
Ecrire(entrer x : ) ;
Lire(x) ;
Ecrire(entrer y : ) ;
Lire(y) ;
Si x>y alors
Ecrire(y, ,x);
Sinon
Ecrire(y, ,x);
Finsi
fin
Exercice 17 :
Ecrire un algorithme qui teste si une ann e est bissextile ou non.
N.B.
Une ann e est bissextile si elle est divisible par 4 et pas par 100 ou si elle est divisible par 400.
Correction exercice 17 :
Algorithme annne_bissextile;
Var
annee :r els;
Debut
Ecrire(entrer lann e : ) ;
Lire(annee) ;
Si ((annee mod 4 =0 et annee mod 100 <> 0) ou annee mod 400 =0 ) alors
Ecrire(lann e que vous avez entrer est bissextile .);
Sinon
Ecrire(lann e que vous avez entrer n est pas bissextile .);
Finsi
fin
13