Auteur : Mohamed Messabihi
Matière : Introduction à l'algorithmique k [email protected]
+ https://sites.google.com/site/informatiquemessabihi/
Université Abou Bakr Belkaïd - Tlemcen Faculté des sciences 1ère L.M.D. MI 2014-2015
8 TP : Les Tableaux
8.1 Gérer un tableau
1. Écrire une fonction lire_Tab qui prend en entrée trois paramètres ; un tableau tab d'entiers, un entier qui stockera la dimension du tableau et un entier NMAX. La fonction lit la dimension N et les éléments du tableau tab. La dimension N doit être inférieure à NMAX.
Exemple :
Pour un appel par lire_Tab(T, &N, 10) ; la fonction se comportera comme suit :
Donnez la dimension du tableau (max = 10): 11 La dimension du tableau doit être inférieur à 10.
Donnez la dimension du tableau (max = 10): 4 Elément[0] : 43
Elément[1] : 55 Elément[2] : 67 Elément[3] : 79
2. Ecrire la fonction ecrire_Tab(T, N) à deux paramètres TAB et N qui ache les N élements du tableau T d'entiers.
Exemple :
Le tableau T lu dans l'exemple ci-dessus sera aché par l'appel : ecrire_Tab(T, N) ; et sera présenté comme suit :
43 55 67 79
3. Écrire la fonction somme_Tab qui calcule la somme des N éléments d'un tableau T d'en- tiers. N et T sont fournis comme paramètres ; la somme est retournée comme résultat.
4. A l'aide des fonctions ci-dessus, écrire un programme qui lit un tableau A d'une dimension inférieure ou égale à 100 et ache le tableau et la somme des éléments du tableau.
8.2 Autour du maximum
On souhaite déterminer le maximum de N éléments d'un tableau tab d'entiers de trois façons diérentes.
Écrire les fonctions suivante :
1. la fonction valeur_Max qui retourne la valeur maximale
2. la fonction idice_Max qui retourne l'indice de l'élément maximal 3. la fonction adresse_Max qui retourne l'adresse de l'élément maximal Écrire un programme pour tester les trois fonctions.
B [email protected] Page 1
8.3 Gérer un tableau deux dimensions
1. Écrire la fonction LIRE_DIM à quatre paramètres L, LMAX, C, CMAX qui lit les dimensions L et C d'une matrice à deux dimensions. Les dimensions L et C doivent être inférieures à LMAX respectivement CMAX.
2. Écrire la fonction LIRE_MATRICE à quatre paramètres MAT, L, C, et CMAX qui lit les composantes d'une matrice MAT du type int et de dimensions L et C.
3. Implémenter les fonctions en choisissant bien le type des paramètres et utiliser un dialogue semblable à celui de LIRE_TAB.
4. Écrire la fonction ECRIRE_MATRICE à quatre paramètres MAT, L, C et CMAX qui ache les composantes de la matrice de dimensions L et C.
5. Écrire la fonction SOMME_MATRICE du type long qui calcule la somme des éléments d'une matrice MAT du type int. Choisir les paramètres nécessaires.
6. Écrire un petit programme qui teste la fonction SOMME_MATRICE.
8.4 Les matrices
1. Écrire une fonction ADDITION_MATRICE qui eectue l'addition de deux matrices.
2. Écrire une fonction MULTI_MATRICE qui eectue la multiplication d'une matrice par un entier x.
3. Écrire une fonction TRANSPO_MATRICE à cinq paramètres MAT, L, LMAX, C, CMAX qui eectue la transposition de la matrice MAT en utilisant la fonction PERMUTER.
TRANSPO_MATRICE retourne une valeur logique qui indique si les dimensions de la matrice sont telles que la transposition a pu être eectuée
4. Écrire une fonction MULTI_2_MATRICES qui eectue la multiplication de deux matrices MAT1 (dimensions N et M) et MAT2 (dimensions M et P) en une troisième matrice MAT3 (dimensions N et P) :
5. Écrire un programme qui permet de tester toutes les fonctions ci-dessus.
8.5 Recherche de Points-cols
Écrire un programme permettant de rechercher dans une matrice donnée A les éléments qui sont à la fois un maximum sur leur ligne et un minimum sur leur colonne. Ces éléments sont appelés des points-cols. Acher les positions et les valeurs de tous les points-cols trouvés.
Exemples : 3 est un point-cols :
3 2 1 6 5 4 9 8 1
Méthode : Établir deux matrices d'aide MAX et MIN de même dimensions que A, telles que :
M AXij =
1 siAij est un maximum sur la ligne i 0 sinon
M INij =
1 si Aij est un minimum pour la colonnej 0 sinon
B [email protected] Page 2