Télécharger la présentation
Publié parAmbrosine Bois Modifié depuis plus de 9 années
1
8PRO100 Éléments de programmation Les tableaux multi-dimensionnels
2
Tableau à deux dimensions
Tableau de 3 lignes et 2 colonnes: 1 . . 5 12 3 54 23 11 1 T[0][0] int T[0][1] int 2 T[1][0] int T[1][1] int T[2][0] int T[2][1] Déclaration en C: int T[3][2]; . .
3
Tableau à deux dimensions
. . Un tableau à deux dimension est un tableau de tableaux. Par exemple dans la déclaration int T[3][2]; on a que T est un tableau contenant 3 éléments et chaque élément T[i] est un tableau de 2 entiers. { T[0][0] int T[0] T[0][1] int { T[1][0] int T[1] T[1][1] int { T[2][0] int T[2] T[2][1] . .
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érieur à 2.
5
Initialiser un tableau n×m
int ligne, col, Tab[100][80]; for (ligne=0; ligne<100; ligne++) for (col=0; col<80; col++) Tab[i][j]=0;
6
Étude de cas 10.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, suivits des entiers de la table données ligne par ligne.
7
Étude de cas 10.1 Exemple 3 4
8
Étude de cas 10.1 #define MAXLIGNE 1000 #define MAXCOL 80 main(){
int n, m; int TAB[MAXLIGNE][MAXCOL] cin>> n >>m; liremat(TAB, n, m) ecriremat(TAB, n, m) }
9
Étude de cas 10.1 void liremat(int T[MAXLIGNE][MAXCOL], int n, int m){
int ligne, col; for (ligne=0; ligne < n; ligne++) for (col=0; col < m; col++) cin>> T[ligne][col]; }
10
Étude de cas 10.1 void ecriremat(int T[MAXLIGNE][MAXCOL], int n, int m){ int ligne, col; for (ligne=0; ligne<n; ligne++){ for (col=0; col<m; col++) cout<< T[ligne][col]; cout<<endl; }
11
Étude de cas 10.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ées ligne par ligne.
12
Étude de cas 10.2 Exemple 3
13
Étude de cas 10.2 #define MAX 100 main(){ int n; int mat1[MAX][MAX];
cin>>n; liremat(mat1, n, n); liremat(mat2, n, n); multmat(mat1, mat2, mat3, n); ecriremat(mat3, n, n); }
14
Étude de cas 10.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] }
15
Étude de cas 10.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); }
16
Étude de cas 10.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; }
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.