— Ontem eram so duas opcoes de marmita; hoje ja tem vegetariana, sem lactose e sem gluten! — reclamou a…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Construir soluções de problemas usando a técnica de decomposição e automatizar tais soluções usando uma linguagem de programação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
— Ontem eram so duas opcoes de marmita; hoje ja tem vegetariana, sem lactose e sem gluten! — reclamou a voluntaria que faz as etiquetas no mutirao de distribuicao. No tablet, ela usa uma linguagem simples: pode ler dados (READ), repetir comandos (REPEAT), tomar decisoes (IF) e criar funcoes (FUNCTION). Cada etiqueta deve mostrar: nome do tipo de marmita e um numero em sequencia para aquele tipo (ex.: Vegetariana 1, Vegetariana 2...). A cada mutirao, os tipos e quantas unidades de cada tipo mudam, e esses valores sao informados no inicio. Na semana passada, ela resolveu copiando e colando um bloco de comandos para cada tipo. Agora quer reorganizar o programa para reduzir repeticao e conseguir usar o mesmo codigo mesmo quando surgirem novos tipos, mudando so os dados de entrada. Com base no texto, identifique a divisao do programa em partes que melhor generaliza a solucao para qualquer quantidade de tipos e unidades, com menos mudancas no codigo.
- A) Criar uma FUNCTION geraEtiqueta(tipo, numero) e chama-la em REPEAT conforme os tipos e quantidades lidos no inicio.
- B) Criar um programa separado para cada mutirao, porque os tipos mudam e isso impede reaproveitar o mesmo codigo.
- C) Criar um bloco de comandos para cada tipo, copiando e editando o texto sempre que aparecer um tipo novo.
- D) Criar uma FUNCTION que imprime todas as etiquetas com tipos e numeros fixos dentro dela, executando-a uma vez por dia.
- E) Criar uma variavel diferente para cada etiqueta (etq1, etq2, etq3...), evitando usar repeticao no programa.
✅ Resposta correta: alternativa A
Resolução passo a passo
- O problema pede uma divisão do programa que generalize a solução para qualquer quantidade de tipos e unidades, reduzindo repetição de código e mudando apenas os dados de entrada.
- Cada etiqueta segue o mesmo padrão: nome do tipo mais um número em sequência para aquele tipo. Logo, a parte que se repete é a criação de uma etiqueta, que depende de dois dados: o tipo e o número. Isso sugere uma FUNCTION geraEtiqueta(tipo, numero), que recebe esses dados e produz a etiqueta.
- Os tipos e as quantidades mudam a cada mutirão, mas são informados no início, ou seja, são dados de entrada. O programa pode lê-los (READ) e, para cada tipo, usar REPEAT para chamar a função tantas vezes quanto a quantidade informada, variando o número de 1 até a quantidade.
- Com isso, mudar tipos ou quantidades exige apenas alterar os dados de entrada, sem copiar blocos. A alternativa A é a única que combina função reutilizável, repetição e leitura dos dados.
- Por que as outras estão erradas: B cria um programa por mutirão, o que duplica código em vez de reaproveitá-lo; C repete o erro da semana passada, copiando blocos para cada tipo; D fixa tipos e números dentro da função, impedindo que mudem sem editar o código; E cria uma variável para cada etiqueta, o que não escala e contraria o objetivo de evitar repetição.
💡 Dica: Pense em como usar funções e repetições para generalizar o código.
Alternativa por alternativa
Decompoe (funcao + repeticao) e generaliza com parametros; novos tipos entram pelos dados, sem reescrever blocos.
O aluno acredita que, como os tipos mudam a cada mutirão, o código não pode ser reaproveitado, e que é preciso um programa novo para cada evento.
O aluno entende que basta copiar e editar um bloco para cada tipo novo, mantendo a abordagem que a voluntária já tentou e que gerou repetição.
Por que engana: O aluno pode confundir a necessidade de criar funções reutilizáveis com a criação de blocos separados para cada tipo, levando a código repetitivo.
O aluno confunde função com algo fixo: acha que os tipos e números devem ficar embutidos na função, e que a execução é diária, ignorando que os dados são informados no início de cada mutirão.
O aluno acredita que criar uma variável separada para cada etiqueta elimina a repetição, sem perceber que o código continua crescendo a cada etiqueta e não se adapta a novas quantidades.
Raio-X da questão
funções e repetições em programação
avaliacao
conceito de função em programação · estrutura de repetição
Estude como funções e estruturas de repetição ajudam a evitar código repetitivo.
O aluno pode confundir a necessidade de criar funções reutilizáveis com a criação de blocos separados para cada tipo, levando a código repetitivo.
pensamento_critico
cotidiano
Questões parecidas com resolução
- — Se a pessoa com senha 12 desistir, a gente precisa tirar essa linha e chamar a proxima sem confundir os pedidos —…
- Na tenda de um ecoponto montado na praça, voluntários registram as doações de recicláveis para a cooperativa. O registro…
- — Chegaram mais doações. Como vamos etiquetar rápido? — perguntou uma voluntária do ponto de arrecadação. O coordenador…
- "Por que a inscricao do doador da erro, mas a do entregador passa?" perguntou Joao, enquanto o grupo cadastrava pessoas…
- Na organização de uma feira de troca de livros e brinquedos do bairro, quatro estudantes ficaram responsáveis por…
- No fim de semana da feira de ciências do bairro, a equipe de organização percebeu um problema repetido: dezenas de…
Todas as questões de Estratégias de solução de problemas - Decomposição
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
