Por que sensores bancários verificam a soma dos algarismos de um código de barras? Em algoritmos de validação…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Explorar e construir a solução de problemas por meio de refinamentos, utilizando diversos níveis de abstração desde a especificação até a implementação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Por que sensores bancários verificam a soma dos algarismos de um código de barras? Em algoritmos de validação, soma-se cada dígito de um número para gerar um dígito de controle. Esse processo extrai o último algarismo pelo resto da divisão por 10, acumula esse valor em uma variável soma e reduz o número dividindo-o por 10, repetindo até que ele seja zero. O resultado final, soma de todos os dígitos, é comparado ao dígito de verificação para indicar se o código é válido. Para implementar esse fluxo em um fluxograma, é preciso escolher a ordem correta de inicialização, repetição e atualização de variáveis. A partir do texto-base, identifique o algoritmo que implementa corretamente o procedimento de soma dos dígitos descrito.
- A) Definir soma <- 0; enquanto n > 0 faça: soma <- soma + (n mod 10); n <- n div 10; fim; retornar soma
- B) O laço deixa de processar quando resta um algarismo, e esse algarismo não é incluído no resultado.
- C) A atualização de n mantém apenas o último algarismo, fazendo com que ele seja somado novamente.
- D) A multiplicação dos algarismos e a inicialização da soma em 1 calculam um produto, não uma soma.
- E) A divisão inteira usada para extrair o algarismo obtém o número sem o último algarismo, e não o último algarismo.
✅ Resposta correta: alternativa A
Resolução passo a passo
- O procedimento descrito no texto tem três partes: começar com a soma em zero, repetir enquanto o número for maior que zero, e em cada volta somar o último algarismo (resto da divisão por 10) e remover esse algarismo (divisão inteira por 10). Passo 2: A alternativa A segue exatamente essa ordem: inicializa soma <- 0, o laço continua enquanto n > 0, soma <- soma + (n mod 10) acumula o último algarismo, n <- n div 10 remove esse algarismo, e ao final retorna a soma. Passo 3: Testando com n = 382: primeira volta soma = 2 e n = 38; segunda volta soma = 10 e n = 3; terceira volta soma = 13 e n = 0; o laço para e o resultado é 13, que é 3 + 8 + 2. Passo 4: A alternativa B está errada porque o laço só para com n = 0, então o último algarismo também é processado. Passo 5: A alternativa C está errada porque a atualização n <- n div 10 descarta o último algarismo, e não o mantém. Passo 6: A alternativa D está errada porque a soma é acumulada com adição, e a multiplicação não aparece no procedimento. Passo 7: A alternativa E está errada porque a divisão inteira fornece o número sem o último algarismo, mas é o resto (mod 10) que fornece o próprio algarismo. Passo 8: Como as alternativas B a E são afirmações sobre erros e não algoritmos, a única descrição de algoritmo correta é a A, que coincide com o gabarito oficial.
💡 Dica: Verifique como o resto e a divisão inteira atualizam o número em cada repetição.
Alternativa por alternativa
Em cada repetição, o resto da divisão de n por 10 corresponde ao último algarismo. Esse algarismo é somado, e a divisão inteira por 10 o remove; o processo termina quando todos os algarismos forem percorridos.
O aluno acredita que o laço para quando resta apenas um algarismo, pensando na condição de parada como n > 1 em vez de n > 0.
O aluno acha que atualizar n pela divisão inteira mantém o último algarismo, confundindo o efeito de n div 10 com o de n mod 10.
O aluno confunde soma com produto, supondo que os algarismos são multiplicados e que a inicialização em 1 é a correta para acumular.
O aluno acredita que a divisão inteira por 10 fornece o algarismo extraído, trocando o quociente pelo resto.
Por que engana: Confundir o resto da divisão por 10, que extrai o último algarismo, com a divisão inteira, que remove esse algarismo do número.
Raio-X da questão
Laço e soma de dígitos
avaliacao
Operadores mod e divisão inteira · Variáveis e estruturas de repetição
Revise o uso de mod, divisão inteira, acumuladores e condições de repetição em algoritmos.
Confundir o resto da divisão por 10, que extrai o último algarismo, com a divisão inteira, que remove esse algarismo do número.
ciencia_tecnologia
tomada_decisao
cientifico
Questões parecidas com resolução
- Durante uma campanha de arrecadação, uma escola receberá alimentos e produtos de higiene para montar cestas destinadas a…
- Em um exercício de preparação para períodos de chuva intensa, uma central municipal de Defesa Civil precisa localizar…
- Em ações de fiscalização ambiental no Brasil, imagens de satélite podem ser comparadas em diferentes datas para indicar…
- Uma família criou um programa para organizar as compras do mês. O programa recebe os preços, soma os produtos e…
- — Sem conexão estável no rio, o alerta precisa aparecer no próprio tablet — afirmou a técnica que acompanha sons de aves…
- Falhas em formulários digitais de serviços públicos levaram um setor de tecnologia a testar cinco programas de análise…
🔎 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
