Ir ao conteúdo
  • Cadastre-se

Algoritmo caixa eletrônico


ding_ling

Posts recomendados

Olá, preciso de ajuda com esse algoritmo, eu comecei a fazê-lo mas não consegui entender o raciocínio. Por favor se alguém puder me ajudar eu agradeço muito :rolleyes:

Bits Trocados

Em um pequeno país do planeta Cyber , a moeda vigente é o bit cuja sigla é B$. Nesta moeda existem cédulas de B$50,00, B$10,00, B$5,00 e B$1,00 bits. Você foi contratado para implementar o sistema de saques em um caixa eletrônico e, para isso, você deverá sempre liberar o menor número de notas possíveis para um determinado valor solicitado. O seu algoritmo terá como dado de entrada o valor a ser retirado do caixa e deverá emitir o total de cada nota necessário para compor o valor solicitado (de modo que este total seja o mínimo possível).

O Algoritmo deverá ser encerrado quando o valor a ser retirado for 0(zero).

Obs: Nenhum saque poderá exceder B$1000,00 bits.

Eu tentei fazer mas não sei se está certo por favor alguém me diz se tem algo errado e aonde está o erro, preciso dele pra hoje me ajudem por favor :(

Inicio 
Inteiro valor=1, n50=0, n10=0, n5=0, n1=0;
Escreva ("Digite o valor a ser sacado ou zero para encerrar:");
Leia ("%d", &valor);
se (valor>1000)
Escreva ("Valor Inválido");
senão
Faça
Início
se (valor>=50)
n50++
valor-=50
Fim
senão
Início
se (valor>=10)
n10++
valor-=10
Fim
senão
Início
se (valor>=5)
n5++
valor-=5
Fim
senão
Início
se (valor>=1)
n1++
valor-=1
Fim
Enquanto (valor>0)
Escreva ("Total de notas: %d, %d, %d, %d, n50, n10, n5, n1");
Fim

P.S. Desculpem por ter criado 2 tópicos iguais, foi sem querer.

Link para o comentário
Compartilhar em outros sites

Bom.. seu algoritmo é muito parecido com este

http://forum.clubedohardware.com.br/resolvido-ajuda-algoritmo/655616

vai te ajudar bastante, fique atento que sua ordem parada é de 0, sendo que o limite de dinheiro a ser retirado é de 1000

colocando estas suas condições, se seguir o algoritmo que te passei, vai ficar correto!

qualquer dúvida só perguntar.

Pesquise no tópico e tente fazer, só assim aprenderá fazer! e não conseguindo a resposta de graça!

boa sorte e estudos!

Link para o comentário
Compartilhar em outros sites

o algoritmo que você tem que usar implementa meio que uma recursividade...

o operador MOD (resto da divisao inteira) vai te ajudar muito... a ideia basica é:

var_notas_50=(valor_requerido MOD 50)

valor_requerido=valor_requerido-(50*var_notas_50)

var_notas_valorX=(valor_requerido MOD valorX)

valor_requerido=valor_requerido-(ValorX*var_notas_valorX)

sacou?

Link para o comentário
Compartilhar em outros sites

Obrigada pela ajuda tentei refazer agora podem me dizer se está certo :confused:

Inicio

Inteiro valor, n50, n10, n5, n, TMN;

Faça

Início

Escreva ("Digite o valor a ser sacado ou zero para encerrar:");

Leia ("%d", &valor);

se (valor>1000)

Escreva ("Valor Inválido");

senão

n50= valor/50

n10= (valor%50)/10

n5= ((valor%10)%10)/5

n1= ((valor%10)%10)%5

TMN= n50+n10+n5+n1;

Escreva ("Total de notas de 50: %d", n50);

Escreva ("Total de notas de 10: %d", n10);

Escreva ("Total de notas de 5: %d", n5);

Escreva ("Total de notas de1: %d", n1);

Fim

Enquanto (valor>0)

Fim

Link para o comentário
Compartilhar em outros sites

usando o mod dará certo tambm =]

mas usando varias repetições de enquanto... dará certo tb e pode ser mais fácil para você entender...

você inicializa todas as suas variaveis em 0.. utilizando contadores.. então a sequencia de enquanto seria..

enquanto Valor >=50 faça

nota_50 := nota_50 +1

Valor := valor -50

fim enquanto

entendeu o esquema... e você faz isso com o restante de notas que você quer... sempre na sequencia certa, do maior para o menor! depois da 50 você vai para a de 10 e depois da 5... sempre atualizando o valor total digitado!

espero ter ajudado, enfim veja o algoritmo que indiquei topicos acima =]

valeu

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!