Exercises on Algorithms and Data Structures

Page 1 sur 13Lecteur de document UniversityLib

Exercises on Algorithms and Data Structures

Computer Science · lab

Voir tous les documents en programmation

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