Faça um programa que, dados dois vetores bidimensionais (matrizes
e
) com dimensões de no máximo
elementos, retorne:
a soma das diagonais de cada matriz
a soma das diagonais de cada matriz
Passo 1
Beleza, vamos recapitular o que o exercício quer. A gente tem duas “matrizes” A e B, cada uma com no máximo 5×5 elementos, e precisa fazer um programa que calcule a soma das duas diagonais de cada matriz. O tópico aqui é “como percorrer matrizes e identificar as diagonais” — em especial a diagonal principal (elementos A[i][i]) e a diagonal secundária (elementos A[i][n−1−i]). Para resolver isso, vamos precisar de:
• Saber percorrer uma matriz com loops (for)
• Entender o que é diagonal principal e diagonal secundária
• Lidar com o caso de matriz de dimensão ímpar, onde o elemento central estaria em ambas as diagonais
• Saber percorrer uma matriz com loops (for)
• Entender o que é diagonal principal e diagonal secundária
• Lidar com o caso de matriz de dimensão ímpar, onde o elemento central estaria em ambas as diagonais
Passo 2
Primeiro vamos lidar com a diagonal principal da matriz A. Supondo que a matriz tenha dimensão n×n (com n ≤ 5), a diagonal principal é composta por todos os elementos A[i][i], para i variando de 0 até n−1.
Em pseudocódigo:
Em pseudocódigo:
somaPrincipalA = 0
para i de 0 até n−1:
somaPrincipalA ← somaPrincipalA + A[i][i]
Passo 3
Agora a diagonal secundária da matriz A. Ela vai de cima à direita até baixo à esquerda, com índice j = n−1−i. Então:
somaSecundariaA = 0
para i de 0 até n−1:
somaSecundariaA ← somaSecundariaA + A[i][n−1−i]
Passo 4
Cuidado com o “meio” quando n for ímpar: o elemento A[k][k] com k = (n−1)/2 aparece nas duas somas, mas só queremos contá-lo uma vez no total. Então, se n for ímpar, subtraímos esse elemento extra uma vez:
se n for ímpar:
centro = A[(n−1)/2][(n−1)/2]
senão:
centro = 0
Passo 5
A soma total das diagonais da matriz A fica então:
somaDiagonaisA = somaPrincipalA + somaSecundariaA − centro
Passo 6
Repetimos exatamente o mesmo processo para a matriz B (com somaPrincipalB, somaSecundariaB, possivelmente subtraindo o centro se B for de ordem ímpar) e obtemos:
somaDiagonaisB = somaPrincipalB + somaSecundariaB − centroB
Resposta
A soma das diagonais da matriz A é
e, de forma análoga, a soma das diagonais da matriz B é
Isso resolve o programa pedindo a soma das diagonais de cada matriz.