← Questões de Programação

Programação · FGV · 2024

Questão comentada de Programação

Considere inicialmente o seguinte código, escrito utilizando a linguagem de programação R: v <- 1:10 i <- 3 f <- 6 Tomando por base esse contexto, assinale a opção que apresenta um código que produz resultado equivalente a: p <- i for (q in (f+1):length(v)) { v[p] <- v[q] p <- p+1 } for (q in p:length(v)) v[q] <- NA length(v) <- p-1

Gabarito: B

A questão explora manipulação de vetores em R, especialmente a ideia de remover um trecho interno e compactar o restante. No código dado, os elementos entre i e f sao descartados, e os elementos que vieram depois sao deslocados para preencher o espaco, sem deixar “buracos” no vetor final. Em R, isso e feito de forma bem direta com indexacao negativa: voce nega o intervalo de posicoes que deseja excluir e o vetor resultante fica apenas com os elementos restantes. O ponto central e perceber que i = 3 e f = 6, entao o trecho removido e o intervalo de posicoes 3 a 6. O codigo equivalente precisa, portanto, construir um novo vetor com todos os elementos exceto esses indices. A alternativa B faz exatamente isso com v <- v[-c(i:f)], que elimina as posicoes de i ate f. Como o intervalo removido e interno, os demais elementos sao preservados na ordem original. As outras alternativas tentam usar subtracao, fatias ou repeticao de indices, mas nao realizam exclusao de trecho. Em R, o uso de indice negativo e um recurso classico e muito cobrado em prova para remover elementos de vetores, data frames e listas. A banca costuma testar esse detalhe porque ele parece simples, mas basta inverter o sinal do indice para mudar completamente o resultado.

Continue treinando

Questões relacionadas