Analise o código da linguagem de programação R a seguir. xpto <- array(c(1:24), dim = c(4, 3, 2)) print (xpto[3, 2, 1]) Na execução desse código, o print produz o valor:
- A)5
Errada, porque o valor 5 esta na primeira linha da segunda coluna, e nao na terceira linha.
- B)7
Certa, pois xpto[3, 2, 1] aponta para a terceira linha da segunda coluna da primeira camada, que vale 7.
- C)10
Errada, porque 10 esta na segunda linha da terceira coluna da primeira camada, nao na posicao pedida.
- D)18
Errada, pois 18 aparece na segunda camada, nao na primeira camada solicitada no indice.
- E)19
Errada, porque 19 pertence a segunda camada, e o enunciado pede explicitamente a primeira camada.
Gabarito: B
Em R, um array multidimensional guarda os valores seguindo a ordem das colunas, isto é, a leitura é feita por coluna e nao por linha. Entao, no comando xpto <- array(c(1:24), dim = c(4, 3, 2)), voce cria um array com 4 linhas, 3 colunas e 2 camadas, preenchido com os numeros de 1 a 24 nessa ordem. Na primeira camada (indice 1), os valores ficam assim: coluna 1 = 1, 2, 3, 4; coluna 2 = 5, 6, 7, 8; coluna 3 = 9, 10, 11, 12. Como o acesso pedido e xpto[3, 2, 1], voce quer o elemento da terceira linha, segunda coluna, primeira camada. Isso corresponde ao numero 7, porque na segunda coluna da primeira camada os valores sao 5, 6, 7, 8, e o terceiro deles e exatamente o 7. Logo, o print mostra 7, que e o gabarito B. Em questoes da FGV, vale sempre lembrar: em R, array e matriz usam preenchimento por coluna, o que costuma confundir quem pensa em ordem visual de linha.