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?
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
Je pense qu'il faut varier tous les indices à la fois !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Je ne sais pas si ça s'appelle diagonale ?tu ne calcules qu'une diagonale, or un carré en compte deux, non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 sommeDiagonale2 = 0; Pour i = 1 à nbLig faire sommeDiagonale2 = sommeDiagonale2 + tab[i][nbLig - i + 1]; FinPour
Partager