FC ConcursosFC Concursos

Questão FC52061

Com relação a conceitos de programação Python e R, julgue o item que se segue. O resultado do código R seguinte será "12". f<- function(x) { g <- function(y) { y + z } z <- 4 x + g

Linguagens de Programação

CEBRASPE (CESPE) · 2021

Com relação a conceitos de programação Python e R, julgue o item que se segue.

O resultado do código R seguinte será "12".
f<- function(x) {
g <- function(y) {
y + z
}
z <- 4
x + g(x)
}
z <- 10
f (4)
  1. ERRADO
Mostrar resposta e comentário

Gabarito

Errado

Comentário do professor

Comentário: O gabarito está "ERRADO" porque a execução do código R apresentado não resulta em "12". Vamos analisar o código passo a passo:

1. A função f é definida com um parâmetro x e dentro dela é definida uma função g que recebe um parâmetro y.

2. Dentro da função g, a expressão y + z tenta somar y (que é o argumento passado para g) com a variável z. O valor de z não está definido dentro da função g, então ela irá procurar z no ambiente onde g foi definida, que é na função f.

3. Na função f, z é atribuído o valor 4 (a linha z <- 4), mas este valor só é conhecido dentro da função f. Portanto, quando a função g é chamada, ela usará o valor de z que existe no escopo global, que é 10.

4. Quando chamamos f(4), x se torna 4. Dentro de f, a função g é invocada com g(4). Assim, na função g, a soma y + z se torna 4 + 10, resultando em 14.

5. A função f então retorna x + g(x), ou seja, 4 + 14, resultando em 18.

Portanto, o resultado final da execução do código é 18, e não 12, o que torna a afirmação incorreta.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo