La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

8PRO107 Éléments de programmation Les tableaux multidimensionnels.

Présentations similaires


Présentation au sujet: "8PRO107 Éléments de programmation Les tableaux multidimensionnels."— Transcription de la présentation:

1 8PRO107 Éléments de programmation Les tableaux multidimensionnels

2 Tableau à deux dimensions............ tab2d[2][0] tab2d[1][1] tab2d[1][0] tab2d[0][1] tab2d[0][0]............ int tab2d[2][1] 512 354 2311 Tableau de 3 lignes et 2 colonnes: 0 1 2 01 Déclaration en C++: int tab2d[3][2]; int

3 Tableau à deux dimensions Un tableau à deux dimension est un tableau de tableaux. Par exemple dans la déclaration int tab2d[3][2]; on a que tab2d est un tableau contenant 3 éléments et chaque élément tab2d[i] est un tableau de 2 entiers............. tab2d[2][0] tab2d[1][1] tab2d[1][0] tab2d[0][1] tab2d[0][0]............ int tab2d[2][1] { { { tab2d[0] tab2d[2] tab2d[1] int tab2d

4 Tableau à plusieurs dimensions En principe, on peut déclarer des tableaux possédant un nombre de dimensions arbitraire. En pratique, on utilise rarement des tableaux de dimension supérieure à 2.

5 Initialiser un tableau n×m int ligne, col, tab2d[100][80] ; for ( ligne = 0; ligne < 100; ligne++ ) for ( col = 0; col < 80; col++ ) tab2d[ligne][col] = 0 ;

6 Étude de cas 1 Description du problème: Lire une table d’entiers de n lignes et m colonnes. Afficher la table telle qu’elle était à l’entrée. Spécification de l’entrée: deux entiers représentant n et m, respectivement, suivis des entiers de la table donnés ligne par ligne.

7 Étude de cas 1 Exemple 3 4 12 1 45 67 3 54 5 65 2 31 11 3

8 Étude de cas 1 #define MAXLIGNE 100 #define MAXCOL 80 int main () { int n, m ; int mat[MAXLIGNE][MAXCOL] ; std::cin >> n >> m ; liremat(mat, n, m) ; ecriremat(mat, n, m) ; return 0 ; }

9 Étude de cas 1 void liremat ( int mat[MAXLIGNE][MAXCOL], int n, int m ) { int ligne, col ; for ( ligne = 0; ligne < n; ligne++ ) for (col=0; col < m; col++) std::cin >> mat[ligne][col] ; }

10 Étude de cas 1 void liremat ( int mat[MAXLIGNE][MAXCOL], int n, int m ) { int ligne, col ; for ( ligne = 0; ligne < n; ligne++ ) { for (col=0; col < m; col++) { std::cin >> mat[ligne][col] ; }

11 Étude de cas 1 void ecriremat ( int mat[MAXLIGNE][MAXCOL], int n, int m ) { int ligne, col ; for ( ligne = 0; ligne < n; ligne++ ) { for ( col = 0; col < m; col++ ) std::cout << mat[ligne][col] ; std::cout << std::endl ; }

12 Étude de cas 2 Description du problème: Lire deux matrices d’entiers n×n, les multiplier et afficher la matrice résultante. Spécification de l’entrée: Un entier représentant n suivis des entiers des matrices donnés ligne par ligne.

13 Étude de cas 2 Exemple 3 12 1 45 3 54 5 2 31 11 23 54 76 12 45 87 51 23 64

14 Étude de cas 2 #define MAX 100 int main () { int n ; int mat1[MAX][MAX] ; int mat2[MAX][MAX] ; int mat3[MAX][MAX] ; std::cin >> n ; liremat(mat1, n, n) ; liremat(mat2, n, n) ; multmat(mat1, mat2, mat3, n) ; ecriremat(mat3, n, n) ; return 0 ; }

15 Étude de cas 2 void multmat ( int mat1[][MAX], int mat2[][MAX], int mat3[][MAX], int n ) { int i, j ; for ( i = 0; i < n; i++ ) for ( j = 0; j < n; j++ ) calculer le produit de la i-ème ligne et de la j-ième colonne mettre le résultat dans mat3[i][j] }

16 Étude de cas 2 void multmat ( int mat1[][MAX], int mat2[][MAX], int mat3[][MAX], int n ) { int i, j ; for ( i = 0; i < n; i++ ) for ( j = 0; j < n; j++ ) mat3[i][j] = lparc(mat1, mat2, i, j, n) ; }

17 Étude de cas 2 int lparc ( int m1[][MAX], int m2[][MAX], int i, int j, int n ) { int k, somme ; somme = 0 ; for ( k = 0; k < n; k++ ) somme = somme + m1[i][k] * m2[k][j] ; return somme ; }


Télécharger ppt "8PRO107 Éléments de programmation Les tableaux multidimensionnels."

Présentations similaires


Annonces Google