GeraProva GeraProva Provas com IA para professores do Brasil
Computação7º anoBNCC EF07CO02Difícil⏱ medio

— Não deveria parar tão cedo, observou a repórter ao testar o programa que ela mesma escreveu para contar as…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF07CO02

Analisar programas para detectar e remover erros, ampliando a confiança na sua correção.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

— Não deveria parar tão cedo, observou a repórter ao testar o programa que ela mesma escreveu para contar as vogais em suas transcrições. Em cada execução, o resultado final apresentava sempre 1, embora o texto contivesse várias letras 'a'. Ao investigar, ela encontrou este pseudocódigo: funcao contarA(texto): total <- 0 para i de 1 ate comprimento(texto): se texto[i] = 'a' entao total <- total + 1 fim se retornar total fim para A repórter deseja garantir a confiabilidade do resultado, eliminando qualquer erro que impeça a função de processar todos os caracteres. Ela precisa ajustar o código para que o algoritmo contabilize corretamente todas as ocorrências de 'a' antes de encerrar a função. Analise o pseudocódigo apresentado e determine qual ajuste corrige o programa para contabilizar corretamente todas as ocorrências da letra 'a' em 'texto' antes de encerrar a função?

  1. A) Mover a instrução retornar total para após o fim do laço, garantindo que o resultado seja devolvido somente depois de percorrer toda a string
  2. B) Inicializar total com 1 antes do laço para compensar a primeira ocorrência de 'a'
  3. C) Substituir se texto[i] = 'a' por se texto[i] <> 'a' para contar apenas caracteres diferentes de 'a'
  4. D) Alterar o laço para para i de 0 ate comprimento(texto) para ajustar o índice
  5. E) Trocar texto[i] = 'a' por texto[i] = 'A' para considerar apenas letras maiúsculas

✅ Resposta correta: alternativa A

Resolução passo a passo

  1. Leia o pseudocódigo com atenção. O laço 'para i de 1 ate comprimento(texto)' percorre os caracteres da string, e a instrução 'se texto[i] = 'a' entao total <- total + 1' soma 1 sempre que o caractere atual é 'a'. A lógica de contagem está correta.Passo 2: Observe onde está a instrução 'retornar total'. Ela está DENTRO do laço, logo após o 'fim se'. Na primeira iteração, a função já devolve o valor e encerra, sem percorrer o restante do texto. Por isso o resultado é sempre 1 (ou o valor parcial da primeira posição), mesmo com várias letras 'a'.Passo 3: Para corrigir, basta mover 'retornar total' para depois do 'fim para', de modo que o valor só seja devolvido após o término do laço, quando todos os caracteres já foram verificados. Essa é a alternativa A, que coincide com o gabarito oficial.Passo 4: A alternativa B está errada porque inicializar total com 1 adiciona um valor falso e não resolve o retorno antecipado; o resultado continuaria incorreto.Passo 5: A alternativa C está errada porque trocar a condição para 'diferente de a' conta outros caracteres, em vez de contar as letras 'a'.Passo 6: A alternativa D está errada porque o índice 1 já cobre a primeira posição do texto; começar em 0 tentaria acessar uma posição inexistente nesta convenção de índices e não corrige o retorno antecipado.Passo 7: A alternativa E está errada porque o enunciado pede a contagem da letra 'a' minúscula; considerar apenas maiúsculas ignoraria as ocorrências pedidas.

💡 Dica: Verifique a posição da instrução de retorno dentro do laço para garantir que todas as ocorrências sejam contadas.

Alternativa por alternativa

A Correta

O 'retornar total' dentro do laço interrompe a função na primeira iteração; movê-lo para fora permite processar toda a string antes de encerrar.

B Erradaerro: Conceituala que mais engana

Acredita que o problema está no valor inicial do contador e que a primeira ocorrência de 'a' precisa ser compensada. Não percebe que o erro real é a saída antecipada do laço.

Por que engana: O aluno pode retornar o total dentro do laço, fazendo com que a função pare após a primeira iteração, não contando todas as ocorrências.

C Erradaerro: Interpretação

Lê mal o objetivo da função e inverte a condição, passando a contar caracteres diferentes de 'a'. Não observa que a questão pede a contagem exata das ocorrências da letra 'a'.

D Erradaerro: Procedimental

Supõe que a contagem falha por não processar o primeiro caractere e tenta começar o índice em 0. Não percebe que o índice 1 já alcança a primeira posição e que o problema está no retorno dentro do laço.

E Erradaerro: Interpretação

Acha que a diferença entre maiúsculas e minúsculas explica o erro e troca 'a' por 'A'. Ignora que o enunciado trata da letra 'a' e que o retorno precoce continua presente.

Raio-X da questão

Dificuldade Difícil
Bloom Entender
Leitura medio
Discriminação medio
Peso pedagógico medio
Autonomia do enunciado completo
Cobertura da habilidade unica
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 progressao
🎯 Conceito central

controle de fluxo em algoritmos

📌 Objetivo

diagnostico

🧱 Pré-requisitos

estruturas de repetição · condicionais básicas

📚 Reveja

Estude estruturas de repetição e posicionamento correto de comandos de retorno em funções.

⚠️ Erro mais comum

O aluno pode retornar o total dentro do laço, fazendo com que a função pare após a primeira iteração, não contando todas as ocorrências.

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de Análise de programas

🔎 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

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.