TD N°11
Structures de données : Tableau 1D
(Correction)
1. Déclarer un tableau de 9 réels et l’initialiser avec la valeur 0.
Algo Ex1
TYPE
Tab9 = TABLEAU [1..9] DEel;
VAR
t1 : Tab;
i : entier;
Debut
Pour i=1 A 9 Faire
t1[i]0;
FinPour;
FIN.
2. Écrire l’algorithme d’un sous-programme RemplirTableau qui remplit un tableau de 9 notes (réelles)
avec des valeurs demandées à l’utilisateur.
// Le paramètre T est de type Résultat sinon les valeurs saisies seront perdues
//Les valeurs initiales du tableau n'ont pas d'importance car ils seront écrasées.
PROCEDURE RemplirTableau (Résultat T : Tab9)
Var i = Entier;
Debut
Pour i=1 A 9 Faire
Ecrire("Donnez la note N° ", i);
Lire(T[i]);
FinPour
FIN.
3. Écrire l’algorithme d’un sous-programme AfficheTableau qui permet d’afficher les 9 valeurs
contenues dans le tableau.
PROCEDURE AfficheTableau (Donnée T : Tabl9)
Var i = Entier;
Debut
Pour i=1 A 9 Faire
Ecrire(T[i]);
FinPour
FIN.
4. Écrire l’algorithme d’un sous-programme RechercheMin qui permet de retourner l’indice de la plus
petite valeur contenue dans le tableau.
FONCTION RechercheMin(Donnée T : Tab) : Entier
VAR
Imin , i : entier;
Debut
Imin = 1;
Pour i=2 A 9 Faire
Si T(i)<T(Imin) Alors
Imini;
FinSi
FinPour
RETOURNE Imin;
FIN.
5. Écrire l’algorithme d’un sous-programme SommeTableau calculant la somme des valeurs du tableau
précédent : SommeTableau = 126.
FONCTION SommeTableau(Donnée T : Tab) : Réel
VAR
i : entier;
S : Réel;
Debut
S = 0;
Pour i=1 A 9 Faire
S S + T[i] ;
FinPour
RETOURNE S;
FIN.
6. Écrire l’algorithme d’un sous-programme permettant de renverser le contenu d’un tableau contenant
des caractères.
Avant exécution :
T1 :
A
B
C
D
E
F
G
I
Après exécution :
T2 :
I
G
F
E
D
C
B
A
Solution 1 : Conserver le tableau T1 et mettre le résultat dans T2.
PROCEDURE Renverser(Donnée T1 : Tableau [1..9] de Caractère , Résultat T2 : Tableau [1..9] de Caractère )
VAR
i : entier ;
Debut
Pour i = 1 A 9 Faire
T2[i]=T1[10-i]
FinPour
FIN
Solution 2 :Ecraser le contenu du tableau T1.
PROCEDURE Renverser(DonnéeRésultat T1 : Tableau [1..9] de Caractère)
VAR
i : entier ;
C : Caractère
Debut
Pour i = 1 A 4 Faire
C=T1[i];
T1[i]T1[10-i];
T1[10-i] C;
FinPour
FIN
Structures de données : Tableau 2D
(Exercices de TD)
7. Soit M une matrice carrée de taille 5x5 contenant des entiers. Écrire la déclaration et l’initialisation
d’une telle structure de données.
Algo Ex7
TYPE
Mat = TABLEAU [1..5] [1..5] DE Entier;
VAR
m : Tab;
i,j : entier;
Debut
Pour i=1 A 5 Faire
Pour i=1 A 5 Faire
Mat[i][j]0;
FinPour;
FinPour
FIN.
8. Écrire un algorithme RemplirMatrice qui propose à l’utilisateur de remplir une matrice M de taille
5x5
PROCEDURE RemplirMatrice (Résultat M : Mat)
VAR
i,j : entier;
Debut
Pour i=1 A 5 Faire
Pour j=1 A 5 Faire
Lire(Mat[i][j]);
FinPour;
FinPour
FIN
9. Écrire deux procédures d’affichage d’une matrice 2D de taille 5*5 :
o Affichage_2D_ligne : qui affichera la matrice ligne par ligne.
o Affichage_2D_colonne : qui affichera la matrice colonne par colonne.
PROCEDURE Affichage2DLigne (Donnée M : Mat)
VAR
i,j : entier;
Debut
Pour i=1 A 5 Faire
Pour i=1 A 5 Faire
Ecrire(M[i][j]);
FinPour;
FinPour
FIN
PROCEDURE Affichage2DColonne (Donnée M : Mat)
VAR
i,j : entier;
Debut
Pour i=1 A 5 Faire
Pour i=1 A 5 Faire
Ecrire(M[j][i]);
FinPour;
FinPour
FIN
10. Écrire trois fonctions permettant sur matrice 2D de taille 5*5:
o De calculer la somme des éléments d’une ligne (le numéro de la ligne étant passé en
paramètre).
o De calculer la somme des éléments d’une colonne (le numéro de la colonne étant passé en
paramètre)
o De calculer la somme des éléments de la diagonale (dans la mesure la matrice est bien
carrée)
FONCTION SommeLigne(M : Mat, NumLigne : entier) : Entier;
VAR
i,S : entier;
Debut
S0;
Pour i=1 A 5 Faire
S S+M[NumLigne][i];
FinPour
RETOURNE S;
FIN.
FONCTION SommeCol(M : Mat, NumCol : entier) : Entier;
VAR
i,S : entier;
Debut
S0;
Pour i=1 A 5 Faire
S S+M[i][NumCol];
FinPour
RETOURNE S;
FIN.
FONCTION SommeDiag(M : Mat) : Entier;
VAR
i,S : entier;
Debut
S0;
Pour i=1 A 5 Faire
S S+M[i][i];
FinPour
RETOURNE S;
FIN.
1 / 5 100%
Study collections
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !