← Questões de Programação

Programação · FGV · 2023

Questão comentada de Programação

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á:

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.

Continue treinando

Questões relacionadas