SóProvas


ID
3180445
Banca
CESGRANRIO
Órgão
Transpetro
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

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? 

Alternativas
Comentários
  • é quase impossível alguém acerta isso na prova.é muita pergunta difícil

    Mas mesmo assim FORÇA e FÈ guerreiros(a)

  • Gabarito: A

    Uma matriz é dita "matriz identidade de ordem n" se, para a posição M[x][y], o valor será 1 se x = y, e o valor será 0 se x != y. Em termos práticos, essa matriz tem o número 1 na diagonal, e o número 0 nas outras posições. Por exemplo, a matriz identidade de ordem 4 seria:

    1 0 0 0

    0 1 0 0

    0 0 1 0

    0 0 0 1

    public static boolean identidade(int mat[][], int n) {

    for(int i=0; i<n; i++) {

    if(mat[i][i]!=1) // verifica se todos os elementos na diagonal são diferentes de 1

    return false; // algum for, a matriz não é identidade

    for(int j=i+1; j<n; j++) // se entrar nesse 'for', a diagonal já foi verificada.

    // agora, verifica os outros elementos

    if(mat[i][j]!=0 || mat[j][i]!=0)

    // se algum outro elemento for diferente de 0, não é matriz identidade

    return false;

    }

    return true; // se chegou nesse ponto, a diagonal é 1, e todos os outros elementos são 0.

    }

  • Questão difícil. Funciona assim:

    • 1 - Verifica se o primeiro elemento da diagonal é 1
    • 2 - Verifica se os elementos abaixo e à direta desse elemento da diagonal é zero, de um por um
    • 3 - Repete (1) e (2) para os próximos elementos da diagonal
  • Força Guerreiro!!!!!!