Analise o código da linguagem de programação R a seguir. mat <- matrix(c(16:1), ncol = 4, nrow = 4) print (diag(mat)[1:3]) A saída (output) do print será:
- A)[1] 16 11 6;
Correta, porque a diagonal principal da matriz é 16, 11, 6, 1 e o recorte [1:3] mantém apenas 16, 11, 6.
- B)[1] 1 6 11;
Errada, porque os valores não seguem a ordem crescente e o preenchimento da matriz em R não é por linha.
- C)[1] 11 6 1;
Errada, porque inverte a leitura da diagonal e ignora a ordem em que a matriz foi montada.
- D)[1] 16 11 6 1;
Errada, porque inclui o quarto elemento da diagonal, mas o código limita a saída aos três primeiros.
- E)[1] 1 6 11 16.
Errada, porque mistura a diagonal com uma ordem invertida e ainda traz quatro elementos, o que o código não faz.
Gabarito: A
Em R, a função matrix() monta a matriz preenchendo os valores por coluna, e não por linha. Isso é uma pegadinha clássica para quem olha a sequência 16:1 e imagina uma matriz “de cima para baixo” no formato tradicional. Aqui, os números entram na ordem 16, 15, 14, 13 na primeira coluna, depois 12, 11, 10, 9 na segunda, e assim por diante. Quando você usa diag(mat), o R pega a diagonal principal da matriz, isto é, os elementos da posição (1,1), (2,2), (3,3) e (4,4). Nesse caso, a diagonal fica 16, 11, 6 e 1. Como o código ainda faz [1:3], ele seleciona só os três primeiros elementos dessa diagonal. Então o print mostra 16 11 6. Simples assim: diagonal da matriz, depois recorte dos três primeiros valores. Por isso, o gabarito A está correto. A banca costuma explorar justamente a combinação entre preenchimento por coluna e leitura de diagonal, então vale guardar esse detalhe como quem guarda senha de Wi-Fi: uma vez esquecido, a questão vai embora.