— 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
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?
- 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
- B) Inicializar total com 1 antes do laço para compensar a primeira ocorrência de 'a'
- C) Substituir se texto[i] = 'a' por se texto[i] <> 'a' para contar apenas caracteres diferentes de 'a'
- D) Alterar o laço para para i de 0 ate comprimento(texto) para ajustar o índice
- E) Trocar texto[i] = 'a' por texto[i] = 'A' para considerar apenas letras maiúsculas
✅ Resposta correta: alternativa A
Resolução passo a passo
- 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
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.
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.
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'.
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.
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
controle de fluxo em algoritmos
diagnostico
estruturas de repetição · condicionais básicas
Estude estruturas de repetição e posicionamento correto de comandos de retorno em funções.
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.
pensamento_critico
abstrato
Questões parecidas com resolução
- Folhas de caderno e códigos rabiscados se espalham pela mesa de Clara, estudante de informática. Ela tentou fazer um…
- Descreva como construir um algoritmo que conte quantas vezes a letra 'a' aparece em uma frase fornecida pelo usuário.
- — O quarto depoimento nunca toca no totem da praça — avisou uma moradora ao grupo que organizava áudios sobre a memória…
- Pesquisadores acompanham há três anos o avanço do uso de algoritmos para organizar arquivos em bibliotecas municipais. O…
- Avaliar trecho de pseudocódigo que deveria contar números pares de 1 a 10 mas retorna zero identifique provável erro
- Turistas formam fila para pegar equipamentos emprestados na entrada de um parque. No balcão, há um terminal com leitor…
🔎 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
