Questão de Algoritmos e Estrutura de Dados — Algoritmos — FAURGS 2018
Algoritmos e Estrutura de Dados›Algoritmos
Código
qq336716
Banca
FAURGS
Órgão
TJ-RS
Ano
2018
Nível
Médio
Cargo
Técnico em Eletrônica
A multiplicação (M) de dois números positivos maiores ou iguais a zero (A e B), realizada através de operações de somas, foi implementado da seguinte forma:1: M := 0;2: ENQUANTO (A≠0) FAÇA3: M := M + A;4: A := A - 1;5: FIM-ENQUANTOO algoritmo, conforme implementado, não realiza a multiplicação. Assinale a alternativa abaixo que melhor identifica o erro de lógica do algoritmo.
Aapenas na linha 1.
Bapenas na linha 3.
Cnas linhas 1 e 4.
Dnas linhas 2 e 3.
Enas linhas 3 e 4.
Revelar gabarito e comentário▾
GabaritoB — apenas na linha 3.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Algoritmo de multiplicação por somas
Gabarito: letra B. O algoritmo tenta calcular A*B por somas sucessivas, mas na linha 3 soma o próprio A (que está sendo decrementado) em vez de somar B. Com isso, calcula a soma dos números de A até 1, não a multiplicação. O erro está exclusivamente na linha 3.
Alternativa A — ❌ Incorreta
A linha 1 (inicialização de M=0) está correta. O erro não está aí.
Alternativa B — ✅ Correta ⟵ GABARITO
Exatamente: na linha 3, o comando correto deveria ser M := M + B para acumular B repetidamente A vezes. Como está somando A, o resultado é a soma dos números de A até 1, não a multiplicação desejada.
Alternativa C — ❌ Incorreta
As linhas 1 e 4 estão corretas: a inicialização e o decremento de A estão adequados. O erro é só na linha 3.
Alternativa D — ❌ Incorreta
A linha 2 (condição do loop) está correta: enquanto A≠0, repete. A linha 3 está errada, mas a linha 2 não. Portanto, não são ambas.
Alternativa E — ❌ Incorreta
A linha 3 está errada, mas a linha 4 (decremento) está correta. Logo, não são ambas.
PEGA ESSA DICA!
Em multiplicação por somas sucessivas, a variável que controla o número de iterações (geralmente o multiplicador) é decrementada, enquanto a outra variável (multiplicando) é acumulada. Verifique sempre qual variável está sendo somada no corpo do laço.