Objetivo: condicionais sobre índices i, j.
Descrição: leia uma matriz \mathrm{N} \times \mathrm{N} (use \mathrm{N}=4 ). Calcule:
Traço (soma da diagonal principal).
Soma da diagonal secundária.
Soma do triângulo superior (elementos com \mathrm{j}>\mathrm{i} ).
Soma do triângulo inferior (elementos com i > j).
Critérios:
for duplo e ifs com condições sobre i e j.
Extensão: verificar se a matriz é simétrica ( \mathrm{m}[\mathrm{i}][\mathrm{j}]==\mathrm{m}[\mathrm{j}][\mathrm{i}] ).
Passo 1
O que o problema pede e o que temos de informação:
Temos uma matriz quadrada de tamanho N\times N com N=4.
Precisamos calcular:
Traço: soma dos elementos da diagonal principal.
Soma da diagonal secundária.
Soma do triângulo superior: soma dos elementos com \mathrm{j}>\mathrm{i}.
Soma do triângulo inferior: soma dos elementos com \mathrm{i}>\mathrm{j}.
Extensão: verificar se a matriz é simétrica, isto é, se para todo par de índices vale \mathrm{m}[\mathrm{i}][\mathrm{j}] == \mathrm{m}[\mathrm{j}][\mathrm{i}].
Requisito de implementação/método: usar um laço duplo (for aninhado) e condicionais (ifs) sobre i e j.
Nada será calculado ainda — só identifiquei claramente o que se pede.
Passo 2
Convencionalmente vamos usar indexação começando em zero (zero-based), muito comum em linguagens como C, Java, Python: os índices i e j variam em
i=0,1,2,3\qquad\text{e}\qquad j=0,1,2,3,
porque N=4. Esclarecimento de notação:
\mathrm{m}[i][j] é o elemento da linha i e coluna j.
Diagonal principal: posições onde i=j.
Diagonal secundária: posições onde i+j=N-1, isto é, para N=4 onde i+j=3.
Triângulo superior (estrito): posições onde j>i.
Triângulo inferior (estrito): posições onde i>j.
Passo 3
Fórmulas matemáticas que vamos implementar com os loops:
Explicação rápida: essas somas percorrem os pares de índices apropriados; por exemplo, o traço pega apenas i=j, a secundária pega os pares com i+j=3, etc.
Passo 4
Como implementar com um for duplo e ifs (pseudocódigo comentado, cada variável matemática entre ..):
Se i==j então adicionar \mathrm{m}[i][j] a \text{trace}.
Se i+j==N-1 então adicionar \mathrm{m}[i][j] a \text{sec}.
Se j>i então adicionar \mathrm{m}[i][j] a \text{upper}.
Se i>j então adicionar \mathrm{m}[i][j] a \text{lower}.
Para testar simetria de forma eficiente: só teste quando j>i (ou i<j), comparar \mathrm{m}[i][j] com \mathrm{m}[j][i]; se diferente, marque \text{symmetric} \leftarrow \text{false}.
Observação: testar simetria apenas para j>i evita verificar pares duas vezes e economiza comparações. Todos os passos usam apenas comparações simples entre índices, como exigido.
Passo 5
Exemplo concreto (escolhi uma matriz 4\times4 para exemplificar passo a passo; você pode substituir pelos seus números). Matriz escolhida (cada linha é uma linha da matriz):
Eu explico: escolhi essa matriz para ter alguns elementos iguais simetricamente e pelo menos um par que não bate, assim a verificação de simetria fica demonstrativa.]
Passo 6
Cálculo do traço com a matriz do exemplo:
Diagonal principal são \mathrm{m}[0][0],\mathrm{m}[1][1],\mathrm{m}[2][2],\mathrm{m}[3][3], isto é 1,5,9,13.
Somando passo a passo:
1+5=6
6+9=15
15+13=28
Logo \text{trace}=28.
Passo 7
Cálculo da diagonal secundária com a matriz do exemplo:
Para N=4, índices com i+j=3: (0,3),(1,2),(2,1),(3,0).
Os elementos são \mathrm{m}[0][3]=4,\; \mathrm{m}[1][2]=6,\; \mathrm{m}[2][1]=6,\; \mathrm{m}[3][0]=4.
Somando:
4+6=10
10+6=16
16+4=20
Logo \text{sec}=20.
Passo 8
Cálculo do triângulo superior (soma dos elementos com j>i):