Questão nº 65

Questão de Tecnologia da Informação · CESGRANRIO Transpetro PSP-RH-2018.1 (nº 65)

CESGRANRIO2018Analista de Sistemas Júnior - InfraestruturaTecnologia da Informação
Gabarito: Aver comentário ↓

Um programador precisa elaborar um método que diga se uma matriz quadrada recebida como parâmetro é a matriz identidade de ordem n. Esse método recebe uma matriz quadrada (mat) e sua ordem (n) como parâmetros, e retorna true, se a matriz recebida for a matriz identidade de ordem n, ou false, caso contrário.
Qual método executa o que foi especificado acima?

Resposta comentada

Gabarito Alternativa A

Conceito-chave: A matriz identidade de ordem nn tem 1 em toda a diagonal principal (posições i=ji=j) e 0 em todas as outras posições (iji \neq j). Para verificar, é preciso checar todos os elementos, sem exceção, e qualquer desvio já invalida a matriz.

  • (A) Correta: Verifica a diagonal (mat[i][i]1mat[i][i] \neq 1) e, para cada ii, testa os pares simétricos fora da diagonal (mat[i][j]mat[i][j] e mat[j][i]mat[j][i]) com j>ij > i, cobrindo toda a matriz sem repetição; qualquer falha retorna false imediatamente.
  • (B) Incorreta: A armadilha é o uso de produto acumulado (xx e yy). Se houver um 0 na diagonal, xx vira 0; se houver um 1 fora da diagonal, yy vira 1, mas combinações como diagonal com 1 e -1 (produto 1) ou fora com 2 e 0 (produto 0) passariam falsamente.
  • (C) Incorreta: Usa soma em vez de verificação individual. Uma matriz com diagonal toda 1 (soma =n=n) e fora toda 0 (soma =0=0) passa, mas uma matriz com diagonal $2, -1, 0(soma(soma=1 \neq n) ou fora com \1, -1(soma(soma=0$) também passaria erroneamente.
  • (D) Incorreta: Retorna true na primeira condição satisfeita, sem checar o restante. Por exemplo, uma matriz com mat[0][0]=1mat[0][0]=1 e todos os outros elementos errados retornaria true prematuramente.
  • (E) Incorreta: Usa && (E lógico) onde deveria ser || (OU). A condição para false é se qualquer elemento estiver errado (diagonal 1\neq 1 OU fora 0\neq 0); com &&, só retorna false se um elemento for simultaneamente diagonal e fora da diagonal, o que é impossível — então nunca retorna false para matrizes erradas.

Fonte: CESGRANRIO Transpetro PSP-RH-2018.1 Analista de Sistemas Júnior - Infraestrutura. Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho