O procedimento abaixo preenche uma matriz quadrada n × n com...

Próximas questões
Com base no mesmo assunto
Q80235 Algoritmos e Estrutura de Dados
O procedimento abaixo preenche uma matriz quadrada n × n com:

• −1 nos elementos abaixo da diagonal principal;
• 0 nos elementos da diagonal principal;
• 1 nos elementos acima da diagonal principal.

procedure PreencheMatriz;
var
   i, j: integer;
begin
   for i:= 1 to n do
      for j := 1 to n do
         if i > j then matriz[i,j] := ?
         else if i < j then matriz[i,j] := ?
         else matriz[i,j] := ?
end;

Os valores que devem ser respectivamente colocados no primeiro, segundo e terceiro comandos de atribuição, marcados no código com uma interrogação (?), para o preenchimento correto da matriz são:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa Correta: E - -1, 1, 0

Explicação:

A questão aborda a estrutura e manipulação de uma matriz, especificamente uma matriz quadrada de dimensão n × n. Para resolver a questão, é necessário entender a disposição dos elementos em relação à diagonal principal da matriz:

  • Diagonal principal: São os elementos onde o índice da linha (i) é igual ao índice da coluna (j).
  • Elementos abaixo da diagonal principal: São os elementos onde o índice da linha (i) é maior que o índice da coluna (j).
  • Elementos acima da diagonal principal: São os elementos onde o índice da linha (i) é menor que o índice da coluna (j).

Com base na descrição da matriz fornecida na questão:

  • -1 nos elementos abaixo da diagonal principal.
  • 0 nos elementos da diagonal principal.
  • 1 nos elementos acima da diagonal principal.

Vamos analisar como os valores são atribuídos na matriz, de acordo com as condições:

Condições e atribuições:

  • Se i > j, a matriz deve receber -1.
  • Se i < j, a matriz deve receber 1.
  • Se i = j (diagonal principal), a matriz deve receber 0.

A substituição dessas condições no código ficaria assim:

if i > j then matriz[i,j] := -1
else if i < j then matriz[i,j] := 1
else matriz[i,j] := 0

Por isso, a alternativa correta é a E - -1, 1, 0.

Agora, vamos justificar por que as outras alternativas estão incorretas:

Alternativa A - 1, -1, 0
Está incorreta porque atribui 1 aos elementos abaixo da diagonal principal (i > j) e -1 aos elementos acima da diagonal principal (i < j), o que é oposto ao descrito na questão.

Alternativa B - 1, 0, -1
Está incorreta porque atribui 1 aos elementos abaixo da diagonal principal (i > j) e 0 aos elementos acima da diagonal principal (i < j), não considerando a descrição correta.

Alternativa C - 0, -1, 1
Está incorreta porque coloca 0 nos elementos abaixo da diagonal principal (i > j) e -1 nos elementos da diagonal principal (i = j), o que está incorreto conforme a descrição da questão.

Alternativa D - -1, 0, 1
Embora esteja parcialmente correta, está incorreta porque atribui 0 aos elementos acima da diagonal principal (i < j) e 1 aos elementos da diagonal principal (i = j), o que está errado.

Espero que esta explicação tenha ajudado a esclarecer o raciocínio por trás da matriz e a identificar as atribuições corretas. Se tiver mais dúvidas, sinta-se à vontade para perguntar!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

i são as linhas da matriz

j são as colunas da matriz

se i for maior que j, ou seja, se a linha for maior que a coluna, eu estou abaixo da diagonal principal, logo essa posição deve ser -1

se i for menor que j, ou seja, se a linha for menor que a coluna, eu estou acima da diagonal principal, logo essa posição deve ser 1

e se caso nenhuma dessas condições acima seja verdadeira, eu tenho que linha é igual a coluna que é igual a diagonal principal, logo essa posição deve ser 0

 

ALTERNATIVA E

Supondo:

n = 5

A impressão ficaria assim:

01111

-10111

-1-1011

-1-1-101

-1-1-1-10

Logo:

[1,0] = -1 -> equivale ao "IF" imprime menos um;

[0,1] = 1 -> equivale ao "ELSE IF" que imprime um;

[0,0] = 0 -> equivale ao "ELSE" que irá imprimir zero;


Resposta: alternativa E.



Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo