salut tout le monde!
Comment peut on faire l'algorithme qui permet de calculer la somme de chaque ligne d'un tableau multidimensionnel ou bien de chaque colonne ou diagonale?
Version imprimable
salut tout le monde!
Comment peut on faire l'algorithme qui permet de calculer la somme de chaque ligne d'un tableau multidimensionnel ou bien de chaque colonne ou diagonale?
Siu,
Poser la question ainsi, c'est déjà y répondre. :)
Bonjour,
Comment parcourir une ligne (colonne) dans un matrice à deux dimensions ? En fixant un indice et en faisant varier l'autre.
Et dans une matrice à trois dimensions ? En fixant deux indices et en faisant varier le troisième.
Tu dois pouvoir généraliser, non ?
Pour les diagonales, procède de la même manière...
C'est-à-dire :roll:
Je pense qu'il faut varier tous les indices à la fois !
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 tab[nbLig][nbCol] : tableau bidimensionnel sommeDiagonale = 0; Pour i = 1 à nbLig faire sommeColonne = 0; sommeLigne = 0; sommeDiagonale = sommeDiagonale + tab[i][i]; Pour j = 1 à nbCol faire sommeLigne = sommeLigne + tab[i][j]; sommeColonne = sommeColonne + tab[j][i]; FinPour afficher(sommeLigne); afficher(sommeColonne); FinPour afficher(sommeDiagonale);
Oulà mon garçon, t'es sur de tes indices ? 8O8OCode:
1
2 sommeLigne = sommeLigne + tab[i][j]; sommeColonne = sommeColonne + tab[j][i];
C'est-à-dire qu'en observant comment ça marche en deux et trois dimensions, il est facile de généraliser ;)
Par ailleurs, ta solution me semble approximative, car outre le fait qu'elle ne fonctionne que pour les matrices carrées (mais comment calculer la somme d'une diagonale d'une matrice non carrée ?), tu ne calcules qu'une diagonale, or un carré en compte deux, non ?
Ah bon ! Je suis un peu dépassé car j'ai jamais entendu parler de diagonale pour les matrices non carrées. :roll:
Je ne sais pas si ça s'appelle diagonale ?Citation:
tu ne calcules qu'une diagonale, or un carré en compte deux, non ?
Code:
1
2
3
4
5 sommeDiagonale2 = 0; Pour i = 1 à nbLig faire sommeDiagonale2 = sommeDiagonale2 + tab[i][nbLig - i + 1]; FinPour