Vous êtes sur la page 1sur 2

Langa

e C - Travaux Diriges no 6
| Li en e Informatique |

Le but de e Td est d'implementer des tableaux a deux dimensions dans le m^eme esprit
qu'avaient ete implementes des tableaux a une dimension a la sean e pre edente. Pour sim-
pli er, on suppose que les elements de es tableaux sont des entiers de type int. On onsidere
deux fa ons de sto ker en memoire les elements du tableau.
1. Les elements sont sto kes dans un tableau a une dimention ayant une taille appropriee.
On de nit la stru ture Array2d ontenant un nombre de lignes, un nombre de olonnes
et un pointeur vers une zone memoire de la fa on suivante.

typedef stru t {
int* tab; // Pointeur vers le tableau
int lin; // Nombre de lignes du tableau
int ol; // Nombre de olonnes du tableau
} Array2d;

2. Les elements sont sto kes ligne par ligne. Chaque ligne est sto kee dans un tableau
separe. Il y a en plus un ve teur qui ontient les adresses des tableaux pour ha une
des lignes. On de nit la stru ture Array2D ontenant un nombre de lignes, un nombre
de olonnes et un pointeur vers le ve teur de la fa on suivante.

typedef stru t {
int** ve ; // Pointeur vers le ve teur
int lin; // Nombre de lignes du tableau
int ol; // Nombre de olonnes du tableau
} Array2D;

I Exer i e 1 Pour ha un des deux types Array2d et Array2D,


1. Implementer un allo ateur permettant d'^etre utilise de la maniere suivante

Array2d a = array2dAllo (10, 5);


Array2D b = array2DAllo (5, 10);

2. Implementer des fon tions pour liberer la memoire.


3. Implementer un a esseur permettant d'^etre utilise de la maniere suivante. Cet a -
esseur e e tue un ontr^ole sur les indi es qui lui sont passes en parametre.

array2dA ess(a, 2, 4) = array2DA es(b, 4, 2);

1
4. 
E rire une fon tion de saisie.
5. 
E rire une fon tion permettant d'e hanger deux lignes d'un tableau.
6. 
E rire une fon tion permettant d'e hanger deux olonnes d'un tableau.

I Exer i e 2 
E rire des fon tions de manipulation de matri es. Le type des matri es est
un des deux types de tableaux pre edents. On le de nit par exemple par
typedef Array2D Matrix;

Les operations a de nir sont


1. la somme et la di eren e de deux matri es.
2. le produit de deux matri es.