UTILIZAR ALGORITMO TIPO PSEUDOCÓDIGO
Faça um programa para um terminal de auto-atendimento bancário que realiza saques em dinheiro. O programa deve solicitar ao usuário qual o valor a ser retirado e deve exibir na tela qual a quantidade de cada cédula será entregue ao usuário. O programa sempre ceve tentar utilizar o menor número possível de cédulas. A máquina possui apenas cédulas de R$ 10, 5 e 1
Soluções para a tarefa
Begin Programa
While(True)
Mensagem("Bem vindo ao banco.")
Mensagem("Para que possa efetuar um saque, por favor, insira seu cartão.")
Ler_Entrada(cartao_inserido)
If (cartao_inserido==True)
Função(perguntar_valor)
Else() ##comentario: o programa retorna ao início do loop.
##comentario: declarações de funções:
End Programa
Begin Função(perguntar_valor)
Mensagem("Qual a quantia deseja retirar?"
Ler_Entrada(valor_a_retirar)
Var(notas_de_10)
Var(notas_de_5)
Var(notas_de_1)
Var(segura_valor)
segura_valor=valor_a_retirar
For(n=0 ; 10*n < segura_valor ; )
notas_de_10=n
n=n+1
segura_valor=valor_a_retirar - notas_de_10
For(n=0 ; 5*n < (segura_valor; )
notas_de_5=n
n=n+1
valor_a_retirar - notas_de_10 - notas_de_5
For(n=0 ; n < segura_valor; )
notas_de_1=n
n=n+1
Mensagem("Voce receberá")
Mensagem(notas_de_10 " notas de 10 reais ")
Mensagem(notas_de_5 " notas de 5 reais ")
Mensagem(notas_de_1 " notas de 1 real ")
End Função(perguntar_valor)
---
---
---
O "motor do programa" é a função pergunta_valor que fica responsável pelas duas tarefas de perguntar a quantidade a ser sacada e de separar as notas na menor quantidade possível.
Para saber a menor quantidade possível, utilizei de exemplos para poder visualizar como dividir as notas.
Ao sacar 39 reais, o menor número de notas serão 3*10 reais + 1*5 reais + 4*1 reais que totalizam 8 notas.
Se ao invés de sair 1 nota de 5 saíssem 9 notas de 1 real, teríamos 3 notas de 10 + 9 notas de 1 que somam 12 notas.
Cada nota de 10 tem o valor de 2 notas de 5 e cada nota de 5 tem o valor de 5 notas de 1.