Considere o pseudocódigo: dados = ['A','A','B','A','B'] contagem = {} para cada x em dados: se x não em…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Utilizar conceitos iniciais de uma linguagem de programação na implementação de algoritmos escritos em linguagem corrente e/ou matemática.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Considere o pseudocódigo: dados = ['A','A','B','A','B'] contagem = {} para cada x em dados: se x não em contagem: contagem[x] = 0 contagem[x] = contagem[x] + 1 Imprima contagem['A']. Qual é o valor impresso?
- A) Atribuir 0 a freq[r] e incrementar diretamente.
- B) 3
- C) Incrementar freq[r] de qualquer forma, mesmo que não existisse.
- D) Usar freq[r] = 1 antes de verificar se r está em freq.
- E) Trocar a condição para if r not in freq:
✅ Resposta correta: alternativa B
Resolução passo a passo
- A lista dados tem cinco elementos, nas posições 1 a 5: A, A, B, A, B. Passo 2: O laço percorre os elementos em ordem e atualiza o dicionário contagem. Passo 3: Na primeira iteração (x = 'A'), 'A' não está em contagem, então contagem['A'] recebe 0 e depois é incrementado para 1. Passo 4: Na segunda iteração (x = 'A'), 'A' já está em contagem, então o zeramento não ocorre e o valor passa de 1 para 2. Passo 5: Na terceira iteração (x = 'B'), 'B' é criado com 0 e incrementado para 1, sem alterar 'A'. Passo 6: Na quarta iteração (x = 'A'), o valor de 'A' passa de 2 para 3. Passo 7: Na quinta iteração (x = 'B'), o valor de 'B' passa de 1 para 2, sem alterar 'A'. Passo 8: Ao final, contagem['A'] vale 3, e esse é o valor impresso. Passo 9: O gabarito B está correto. Sobre as alternativas erradas: A faz o zeramento valer a cada iteração, o que levaria a 1, e não a 3. C remove a verificação, mas não há erro de chave aqui porque o uso da chave antes de existir gera erro, o que a questão não descreve. D começa a contagem em 1 para cada nova chave, o que daria 4 e não 3. E apenas reescreve a condição 'se x não em contagem' com outra sintaxe equivalente, então não muda o resultado, que continua sendo 3.
💡 Dica: Analise o pseudocódigo e conte as ocorrências de 'A'.
Alternativa por alternativa
O aluno acredita que a atribuição de 0 acontece em todas as iterações, e não só quando a chave ainda não existe. Assim, a contagem de 'A' seria sempre reiniciada e ficaria em 1.
O laço percorre a lista e incrementa contagem['A'] uma vez para cada ocorrência; 'A' aparece três vezes, logo o valor é 3.
O aluno entende que a verificação de existência da chave é desnecessária e que o incremento funciona sem inicializar o valor. Não percebe que a inicialização é o que garante um valor numérico antes do incremento.
Por que engana: Confundir a contagem de elementos ao não inicializar corretamente a chave no dicionário, resultando em um erro de referência.
O aluno acha que a primeira ocorrência deve começar em 1 antes do incremento, o que acrescentaria uma unidade extra ao contador. Assim, a contagem de 'A' seria 4, e não 3.
O aluno acredita que trocar a forma de escrever a condição muda o comportamento do programa. Não percebe que 'se x não em contagem' e 'if x not in contagem' têm o mesmo significado.
Raio-X da questão
contagem de elementos
avaliacao
estruturas de repeticao · dicionarios em python
Revisar como funciona a contagem de elementos em listas.
Confundir a contagem de elementos ao não inicializar corretamente a chave no dicionário, resultando em um erro de referência.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Em um dia de trabalho, uma entregadora que usa um aplicativo recebe R$ 12 por entrega. Ela gasta R$ 3 por entrega com…
- Em uma gráfica, a quantidade de tinta adicional é registrada em função de uma medida-padrão q. Para um pedido, a…
- Em uma gráfica, uma máquina imprime livros a uma taxa constante. Se trabalha sozinha, produz 120 páginas por hora…
- — O desconto só incide sobre as oficinas, não sobre a entrada — explicou a atendente a um visitante. Na feira municipal…
- Uma associação de ambulantes realizou uma pesquisa sobre o gasto mensal com internet móvel. Os dados foram organizados…
- Uma secretaria municipal recebeu R$ 390 para inscrever dois agentes em um curso, ambos com o mesmo número de oficinas…
🔎 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
