Vous êtes sur la page 1sur 8

Auditoire 1ère Année CPI Année Universitaire 2020-2021

TD Algorithmique et Structures de données

Correction Série d’exercices N°7


Enseignante responsable : Olfa JEMAI

Exercice N° 1

Exercice N° 2 :
Procedure Nombres
Var
x, cop, co: entier
pourcent: reel
Debut
cop  0

1
co  0
Repeter
Lire (x)
co  co + 1
Si x mod 2 = 0 alors
cop  cop + 1
FinSi
Jusqu’à x = -1
pourcent  cop * 100 / co
Ecrire (‘Nombre de valeurs paires = ’, cop, ‘et leur pourcentage = ‘, pourcent)
Fin ;
Exercice N° 3
Procedure Second-deg (a, b, c : entier)
Var
delta, x1, x2 : reel
Debut
Si a = 0 Alors
Si b = 0 Alors
Si c = 0 Alors
Ecrire (‘R est la solution’)
Sinon
Ecrire (‘Impossible’)
FinSi
Sinon
x1  - c / b
Ecrire (x1)
FinSi
Sinon
delta  b*b – 4*a*c
Si delta < 0 Alors
Ecrire (‘Pas de solution dans R’)
Sinon
Si delta = 0 Alors
x1  -b / 2*a
Ecrire (‘Solution double ', x1)
Sinon
x1  - b + sqrt(𝑑𝑒𝑙𝑡𝑎) / 2*a
x2  - b – sqrt(𝑑𝑒𝑙𝑡𝑎 )/ 2*a
Ecrire (x1, x2)
FinSi
FinSi
FinSi
Fin
Exercice N° 4 :
Fonction BIN(X :entier) :entier

2
Var R,P :entier
Debut
P←1
BIN ← 0
Repeter
R ← X mod 2
BIN ← BIN + R*P
P ← P*10 ;
X ← X div 2
Jusqu’à X=0
Fin

…………………..

Remarque : on pourra définir un type tableau, ensuite il suffira juste de l’utiliser :

Const
N=100
TYPE
Tab= tableau [N] d’entiers

Exercice N° 5
PROCEDURE Saisi (var T :Tab , Nbr : entier)
VAR i : entier
DEBUT
POUR i de 1 à Nbr Faire
ECRIRE ("donner la valeur",i)
LIRE (T[i])
FinPOUR
FIN

Exercice N° 6
PROCEDURE Affichage (T: Tab , Nbr : entier)
VAR i : entier
Début
ECRIRE ("le contenu du tableau est :")
POUR i de 1 à Nbr Faire
ECRIRE (T[i] ,’’ ’’)
FIN POUR
Fin
Exercice N° 7
PROCEDURE Incrémentation (var T : Tab , Nbr : entier)
VAR i : entier
DEBUT

3
POUR i de 1 à Nbr Faire
SI (T[i] mod 2=0) alors
T[i] T[i]+1
SINON
T[i]  T[i]-1
FIN
FIN POUR
Fin

Exercice N° 8
Remarque : préciser aux étudiants d’utiliser la boucle Tant que et non une boucle Pour, vu que le
nombre de répétition du corps de la boucle n’est pas fixe.

FONCTION Parité ( T : Tab , Nbr : entier) : booléen


VAR i : entier
Paire : booléen
DEBUT
Paire vrai
i 1
TANTQUE (i<=Nbr) ET paire Faire
Si (T[i] mod 2<>0) Alors
Paire faux
FinSI
i i+1
Fin TANTQUE
Parité paire
Fin

Exercice N°9
ALGORITHME Principal
TYPE
Tab= tableau [taille] d’entiers

CONST taille=25
VAR T :Tab
Nbr : entier
x : booléen
PROCEDURE Saisi (var T :Tab , Nbr : entier)
VAR i : entier
DEBUT
POUR i de 1 à Nbr Faire
ECRIRE ("donner la valeur",i)
LIRE (T[i])
FinPOUR
FIN

4
PROCEDURE Affichage (T: Tab , Nbr : entier)
VAR i : entier
Début
ECRIRE ("le contenu du tableau est :")
POUR i de 1 à Nbr Faire
ECRIRE (T[i] ,’’ ’’)
FIN POUR
Fin
PROCEDURE Incrémentation (var T : Tab , Nbr : entier)
VAR i : entier
DEBUT
POUR i de 1 à Nbr Faire
SI (T[i] mod 2=0) alors
T[i] T[i]+1
SINON
T[i]  T[i]-1
FIN si
FIN POUR
Fin

FONCTION Parité ( T : Tab , Nbr : entier) : booléen


VAR i : entier
Paire : booléen
DEBUT
Paire vrai
i 1
TANTQUE (i<=Nbr) ET paire Faire
Si (T[i] mod 2<>0) Alors
Paire faux
FinSI
i i+1
Fin TANTQUE
Parité paire
Fin

DEBUT
REPETER
ECRIRE (“donnez le nombre de valeur à insérer”)
LIRE(Nbr)
JUSQU'A Nbr<=taille et Nbr>0

Saisi (T, Nbr)


{affichage du tableau avant incrémentation}
affichage (T, Nbr)

incrémentation (T, Nbr)

5
ECRIRE(“Suite à l’incrémentation :”)
{affichage du tableau après incrémentation}

affichage (T, Nbr)


xparité (T, Nbr)
SI x=vrai
alors
Ecrire (“toute les valeurs du tableau sont paires”)
SINON
Ecrire (“les valeurs du tableau ne sont pas toutes paires”)
FINSI
Fin

Exercice 10 :
1.
TYPE
Structure Etudiant
nom : Chaîne de caractères
prénom : Chaîne de caractères
age : Entier
num_carte : Entier
Fin Structure Etudiant
2.

Algorithme Gestion_Ecole
Type
Structure Etudiant
nom : Chaîne de caractères
prénom : Chaîne de caractères
age : Entier
num_carte : Entier
Fin Structure Etudiant
Tab : tableau[100] d’Etudiant

Var
N :entier
T :Tab

Fonction Inf(i,j :entier) :booléen


Début

6
Si Tab[i].nom > Tab[j].nom alors
Retourner(vrai)
Sinon
Si Tab[i].nom < Tab[j].nom alors
Retourner(faux)
Sinon
Retourner(Tab[i].prénom>tab[j].prénom)
Finsi
finsi

Fin

Fonction Min(ind :entier) :entier


Var
k :entier
ind_m :entier
Début
ind_m←ind
Pour k de ind+1 à N faire
Si Inf( ind_m,k) alors
ind_m←k
Finsi
Fin pour
Retourner(ind_m)

Fin

Procédure Permuter(i,j :Etudiant)


Var
aux1 :chaîne
aux2 : entier
Début
aux1←i.nom
i.nom ←j.nom
j.nom ←aux1
aux1←i.prénom
i.prénom ←j.prénom
j.prénom ←aux1
Aux2←i.age
i.age ←j.age
j.age ←aux2
Aux2←i. num_carte
i. num_carte ←j.num_carte
j. num_carte ←aux2

Fin

7
Procédure Tri ( var T :tab, n :entier )
Var
i, ind_min :entier
Début
Pour i de 1 à N-1 faire
Ind_min←Min(i+1)
Si Inf(i, ind_min) alors
Permuter(T[i], T[ind_min])
Finsi
Fin pour
Fin

Procédure Saisie (var T :tab , n :entier )


Var
i :entier
Début
Pour i de 1 à N faire
Ecrire("Donner le nom de l’étudiant :")
Lire(T[i].nom)
Ecrire("Donner le prénom de l’étudiant :")
Lire(T[i].prénom)
Ecrire("Donner l‘âge de l’étudiant :")
Lire(T[i].age)
Ecrire("Donner le numéro de la carte d’étudiant :")
Lire(T[i].num_carte)
Fin pour
Fin
Début
Saisie(Tab)
Tri(Tab)
Fin

Vous aimerez peut-être aussi