Ivan é programador e trabalha em uma transportadora de cargas que só transporta lotes em grupos de 10 kg, 100 kg ou l tonelada. Ele precisa construir um programa que determine rapidamente
(sem usar divisões) se um determinado número é divisível por 10 ou por 100 ou por 1000. Como
seria o fluxograma das informações de entrada e saída desse programa? ( 50 pontos pra quem mi ajuda preciso urgente )
Soluções para a tarefa
Considerando que as quantidades de cargas sempre serão agrupadas em lotes de 10 kg, 100 kg ou 1000 kg, então não há como as cargas envolverem, por exemplo, números decimais nem com variações nas casas das unidades.
Isso significa que os valores de entrada serão sempre divisíveis por 10, pois o algarismo da unidade é 0. Além disso, devemos escolher convenientemente apenas uma categoria: a maior possível, o que implica dizer que mesmo que 400 kg possam ser agrupados em 40 lotes de 10 kg, escolheremos 4 lotes de 100 kg no lugar.
Nesse sentido, montamos um fluxograma cuja lógica consiste em subtrair do valor de entrada n o maior número constante possível (1000, 100 ou 10 kg) e escolher, com base no valor resultante da subtração, qual é o melhor valor fixo a ser subtraído na próxima iteração.
Seja o exemplo, n = 1510 kg. O primeiro passo para determinar a categoria é subtrair k = 1000 enquanto n for maior que 0. Isso só ocorrerá uma vez, restando 510 kg.
Como a subtração novamente por 1000 resultará em um número negativo n = -490, então a bifurcação escolhida será "NÃO" na decisão n == 0, restituímos a última operação somando 1000 ao negativo (ficando 510 kg) e adicionamos 1 ao valor de c.
Depois disso, transformamos k em 100 (valor de l) e subtraímos pelo novo k até n ficar menor que 0 novamente: n = -10. Quando isso acontecer, o valor de c que antes era 1 agora vai ser 2, ele vai cair na decisão "NÃO" e o k passa a valer 10 (valor de m).
Finalmente, somamos 100 ao valor de -10 ficando 90 e subtraímos de 10 em 10 até 0, momento em que o programa retorna que a categoria final é 10 kg e chega ao fim.
Olá!
Você pode fazer o fluxograma da seguinte maneira:
Início
|
Verifica se apenas o algarismo das unidades é 0 => Se sim, então a categoria é 10 kg.
|
Se não
|
Verifica se apenas o algarismo das dezenas é 0 => Se sim, a categoria é 100 kg.
|
Se não
|
Verifica se apenas o algarismo das centenas é 0 => Se sim, categoria é 1000 kg.
Espero ter ajudado!!