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:
    1. Traço: soma dos elementos da diagonal principal.
    2. Soma da diagonal secundária.
    3. Soma do triângulo superior: soma dos elementos com \mathrm{j}>\mathrm{i}.
    4. 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:
  • Traço (diagonal principal):
\text{trace}=\sum_{i=0}^{N-1} \mathrm{m}[i][i].
  • Diagonal secundária:
\text{sec}=\sum_{i=0}^{N-1} \mathrm{m}[i][\,N-1-i\,].
  • Triângulo superior (estrito):
\text{upper}=\sum_{i=0}^{N-1}\sum_{\substack{j=0\\\ j>i}}^{N-1}\mathrm{m}[i][j].
  • Triângulo inferior (estrito):
\text{lower}=\sum_{i=0}^{N-1}\sum_{\substack{j=0\\\ i>j}}^{N-1}\mathrm{m}[i][j].
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 ..):
  • Inicialize somas:
    • \text{trace} \leftarrow 0
    • \text{sec} \leftarrow 0
    • \text{upper} \leftarrow 0
    • \text{lower} \leftarrow 0
    • \text{symmetric} \leftarrow \text{true} (booleano)
  • Loop duplo:
    • Para i indo de 0 até N-1:
      • Para j indo de 0 até N-1:
        • 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):
\mathrm{m} = \begin{pmatrix} 1 & 2 & 3 & 4\\[4pt] 2 & 5 & 6 & 7\\[4pt] 8 & 6 & 9 & 10\\[4pt] 4 & 11 & 12 & 13 \end{pmatrix}
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):
  • Liste os pares com j>i:
    • i=0: (0,1)=2,\; (0,2)=3,\; (0,3)=4. Soma parcial =2+3+4=9.
    • i=1: (1,2)=6,\; (1,3)=7. Soma parcial =6+7=13.
    • i=2: (2,3)=10. Soma parcial =10.
    • i=3: não há j>3.
  • Soma total:
    • 9+13=22
    • 22+10=32
      Logo \text{upper}=32.

Passo 9

Cálculo do triângulo inferior (soma dos elementos com i>j):
  • Liste os pares com i>j:
    • i=1: (1,0)=2. Soma parcial =2.
    • i=2: (2,0)=8,\; (2,1)=6. Soma parcial =8+6=14.
    • i=3: (3,0)=4,\; (3,1)=11,\; (3,2)=12. Soma parcial =4+11+12=27.
  • Soma total:
    • 2+14=16
    • 16+27=43
      Logo \text{lower}=43.

Passo 10

Verificação de simetria para a matriz do exemplo:
  • Teste os pares com j>i comparando \mathrm{m}[i][j] com \mathrm{m}[j][i]:
    • (0,1): \mathrm{m}[0][1]=2 e \mathrm{m}[1][0]=2 → iguais.
    • (0,2): \mathrm{m}[0][2]=3 e \mathrm{m}[2][0]=8 → diferentes! Aqui já podemos concluir que a matriz NÃO é simétrica.
    • (Podemos parar aqui porque uma diferença basta; se quisesse listar todas, continuaríamos:)
    • Por exemplo (2,3): \mathrm{m}[2][3]=10 e \mathrm{m}[3][2]=12 também são diferentes.
  • Conclusão: a matriz do exemplo não é simétrica.
  • Em termos do algoritmo, a variável \text{symmetric} teria sido marcada como \text{false} ao encontrar a primeira desigualdade.

Resposta

trace = 28
sec = 20
upper = 32
lower = 43
simétrica? Não

Exercícios relacionados