Matrices

Somme des diagonales

Énoncé

Saisir N avec 1 ≤ N ≤ 20, puis remplir une matrice carrée M de N lignes et N colonnes d’entiers. Calculer séparément les sommes des diagonales principale et secondaire et les afficher. Utiliser Saisir, Remplir, Calculer et Afficher.

Exemples et cas limites

Saisissez ces valeurs dans la console pour vérifier votre résultat :

Saisir N, puis les N × N entiers de M, ligne par ligne. Les exemples ne fixent pas les valeurs de votre matrice.

Entrée
N = 3
m[0,0] = 1
m[0,1] = 2
m[0,2] = 3
m[1,0] = 4
m[1,1] = 5
m[1,2] = 6
m[2,0] = 7
m[2,1] = 8
m[2,2] = 9
Sortie attendue
15 15
Entrée
N = 2
m[0,0] = 1
m[0,1] = 2
m[1,0] = 4
m[1,1] = 8
Sortie attendue
9 6
Entrée
N = 1
m[0,0] = -4
Sortie attendue
-4 -4

Complétez les modules marqués par un commentaire dans le code de départ. Les modules déjà écrits permettent de saisir vos données. Exécutez les cas de test et comparez la sortie attendue, ou ouvrez directement l’onglet Correction.

Code algorithmique

diagonales_matrice.algo
1algorithme diagonales_matrice
2debut
3 saisir(n)
4 remplir(m, n, n)
5 calculer(m, n, principale, secondaire)
6 afficher(principale, secondaire)
7fin
8
9procedure saisir(@n : entier)
10debut
11 repeter
12 ecrire("N = ")
13 lire(n)
14 jusqua 1 ≤ n ≤ 20
15fin
16
17procedure remplir(@m : mat, l : entier, c : entier)
18debut
19 pour i de 0 à l - 1 faire
20 pour j de 0 à c - 1 faire
21 ecrire("m[" + convch(i) + "," + convch(j) + "] = ")
22 lire(m[i,j])
23 fin_pour
24 fin_pour
25fin
26
27procedure calculer(m : mat, n : entier, @principale : entier, @secondaire : entier)
28debut
29 // compléter le traitement demandé dans l’énoncé.
30fin
31
32procedure afficher(principale : entier, secondaire : entier)
33debut
34 ecrire_nl(principale, " ", secondaire)
35fin

Méthode

  1. La diagonale principale utilise m[i,i].
  2. La diagonale secondaire utilise m[i,N − 1 − i].
À retenir :

La case centrale appartient aux deux diagonales. Elle compte une fois dans chacune de leurs sommes.