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