Questão
ID 66260Disciplina: Tecnologia da Informação
Assuntos: Conceitos Básicos de Lógica de Programação, Python
Ano: 2025 Banca: PERFIL - ENADE Órgão: Primeiro Simulado Pnd
Uma professora de programação para iniciantes, Carla, está ensinando o conceito de funções. Seus alunos entendem como criar e chamar funções simples, mas lutam com a ideia de escopo de variáveis. Eles frequentemente tentam acessar, de fora de uma função, uma variável que foi criada dentro dela, ou modificam variáveis globais de dentro de funções, gerando efeitos colaterais inesperados e dificultando a depuração. Para solidificar esse conceito, ela recorre a uma analogia apresentada em um livro de didática da programação: "Pense em uma função como uma 'oficina'. As variáveis criadas dentro da oficina (escopo local) são as ferramentas e peças que pertencem apenas àquele espaço. Quando o trabalho na oficina termina (a função retorna), as ferramentas são guardadas e não estão acessíveis do lado de fora. As variáveis criadas fora de todas as oficinas (escopo global) são como um 'almoxarifado central'. Qualquer oficina pode 'ver' o que está no almoxarifado, mas é uma péssima prática uma oficina ir lá e modificar uma ferramenta sem um processo formal, pois isso pode confundir todas as outras oficinas que dependem daquela ferramenta. A maneira correta de uma oficina entregar seu trabalho é através de um 'balcão de devolução', que é o comando `return`. E a maneira correta de receber o material para trabalhar é através da 'porta de entrada', que são os parâmetros da função." Carla então apresenta dois trechos de código em Python para a turma analisar:
Código 1: `resultado = 0 def soma(a, b): resultado = a + b soma(5, 3) print(resultado)`
Código 2: `def soma(a, b): resultado_local = a + b return resultado_local resultado_global = soma(5, 3) print(resultado_global)`
Considerando a analogia e os princípios de escopo de variáveis, qual análise pedagógica sobre os dois códigos está correta?