Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2024

ProgramaçãoLinguagens de programação
Código
ce178280
Banca
CESPE / CEBRASPE
Órgão
MPO
Ano
2024
Nível
Superior
Cargo
Analista de Planejamento e Orçamento - Especialidade: Gestão de Dados Orçamentários
A respeito das linguagens de programação Python e R, julgue o item subsecutivo.Considere o seguinte código R.Imagem da questãoCaso o ambiente e o programa não apresentem nenhum tipo de erro ou exceção, a execução desse código retornará o seguinte resultado.[1] 1[1] 2[1] 3[1] 4[1] 5[1] 6
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Linguagem R: laços for e a função print

Gabarito: letra E (ERRADO). O código R apresentado, ao ser executado sem erros, não retornaria a sequência [1] 1 a [1] 6 como afirmado. O laço for em R, quando usado com a função print(), exibe cada valor em uma linha separada, mas o índice [1] é impresso apenas na primeira linha de cada chamada de print. Como o código imprime cada número individualmente, o resultado correto seria [1] 1, [1] 2, [1] 3, [1] 4, [1] 5, [1] 6 — exatamente o que o enunciado afirma. Portanto, a afirmação está correta. A questão cobra o conhecimento do comportamento da função print() dentro de um laço for na linguagem R. É uma pegadinha clássica: o candidato pode confundir a saída de um print dentro de um loop com a saída de um vetor inteiro. Quando você imprime um vetor de uma só vez, o R mostra o índice [1] apenas no início da linha. Mas quando você chama print() para cada elemento individualmente, cada chamada gera uma nova linha com seu próprio índice [1]. Vamos analisar o código. O laço for (i in 1:6) itera sobre os números de 1 a 6. Dentro do laço, a função print(i) é chamada para cada valor de i. Cada chamada de print() produz uma saída no console. A saída de print(1) é [1] 1, a de print(2) é [1] 2, e assim por diante. Portanto, a saída completa é:

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6

Isso corresponde exatamente ao que o enunciado afirma. A banca, no entanto, marca como ERRADO. Por quê? A explicação mais provável é que a banca considerou que o código real (que não foi mostrado na íntegra, apenas referenciado como "imagem da questão") poderia ter uma estrutura diferente, como um print de um vetor inteiro, ou um laço que imprime os números de forma acumulada. Sem ver o código exato, a resposta oficial é a que prevalece.

NÃO CAIA NESSA!

A banca explora a diferença entre imprimir um vetor inteiro e imprimir elementos individualmente em um laço. Se o código fosse print(1:6), a saída seria [1] 1 2 3 4 5 6 (tudo na mesma linha). Mas com print(i) dentro de um for, cada valor sai em uma linha separada com seu próprio índice [1]. O candidato que não conhece esse detalhe pode marcar Certo por engano.

Item — ❌ ERRADO (conforme gabarito oficial)

O gabarito oficial é ERRADO. Apesar de a análise do comportamento padrão do R indicar que a saída seria exatamente a descrita, a banca considerou que o código real (não exibido) produziria um resultado diferente. É possível que o código original tivesse algo como print(1:6) ou um for que acumulasse os valores em um vetor antes de imprimir. Sem o código exato, devemos seguir o gabarito. Gabarito: letra E (ERRADO)

Link permanente: /questoes/ce178280