Jump to content

Archived

This topic is now archived and is closed to further replies.

[tiago]

simulação de caixa eletronico

Recommended Posts

Ae galera eh o segunte, em um trabalho da facul, pediram para ser simulado um caixa eletronico, saque, extraado, depósito e etc....Isto eu ja consegui fazer, mas uma parte do script, na parte de saque o programa tem de liberar o menor numero possível de notas...ou seja, se quiser sacar 375 reais...o programa tem de me liberar 3 notas de 100 uma de 50, uma de 20 e uma de 5este seria o modo que retornaria ao cliente menor numero de notas...Eu ja coloquei o valor das notas em vetores...tipo:vNotas100[]=new int [10];fiz insto com os valores de notas...agora soh tenhu q descobrir como fazer pra liberar o menor numero de notas... alguem me ajuda ae?desde ja valew...

Share this post


Link to post
Share on other sites

Vá subtraindo o valor da nota do valor a ser retirado. Quando o resultado for negativo, você passa para a próxima nota. Exemplo:(100 é a primeira maior nota, então começamos com ela)375-100 = 275275-100 = 175175-100 = 7575-100 = -25 (ops, negativo! Então, partamos para a segunda maior nota: 50)75-50 = 2525-50 = -25 (ops, negativo! Então, partamos para a terceira maior nota: 20)25-20 = 55-20 = -15 (ops, negativo! Então, partamos para a quarta maior nota: 10)5-10 = -5 (ops, negativo! Então, partamos para a quinta maior nota: 5)5-5 = 0 (acabou!)Não conte as operações cujo resultado foi negativo, e você obterá as três de 100, uma de 50, uma de 20 e uma de 5. Certo? ;) Abraços,Graymalkin

Share this post


Link to post
Share on other sites

valew, entendi....isso dentro de um loop neh...vou tentar escrever o script e se der certo posto akifalow, valew

Share this post


Link to post
Share on other sites

Cara naum consegui....será q você podia me dar um exemplo... pode ser em algoritmo mesmo....com dois tipos de notas, coisa bem simples mesmo, soh pra ver se pega no tranco....valew.... teh amis

Share this post


Link to post
Share on other sites

Bom, escrevi o "algoritmo" (se bem que se você trocar as palavras em português pelas palavras em inglês você terá o código todo pronto, porém não em Java ou C++, mas sim em uma outra linguagem...):

 

notasSaída = []                 #guardar as notas que saírão do caixa eletrôniconotas = [100, 50, 20, 10, 5, 1] #notas que podem ser sacadasvalor = 375                     #valor a ser sacadorestante = valor                       #faz uma cópia do valor em "restante"inota = 0                              #índice da nota: 0 é 100, 1 é 50, 2 é 20, 3 é 10, ...enquanto restante>0:                   #enquanto restante for maior que 0  resultado = restante-notas[inota]    #calcula o resultado da subtração entre o valor e a nota  se resultado<0:                      #se for negativo:    inota++                               #incrementa o índice para a próxima nota  senão:                               #se for positivo ou zero:    restante = resultado                  #deixa restante com o novo resultado    notasSaída.adicionar(notas[inota])    #adiciona a nota utilizada nas que devem sair do caixapara nota em notasSaída:               # escreve as notas que devem sair  escreva nota

Sacou? ;)

 

Abraços,

 

Graymalkin

Share this post


Link to post
Share on other sites

Bom, escrevi o "algoritmo" (se bem que se você trocar as palavras em português pelas palavras em inglês você terá o código todo pronto, porém não em Java ou C++, mas sim em uma outra linguagem...):

 

notasSaída = []                 #guardar as notas que saírão do caixa eletrônico
notas = [100, 50, 20, 10, 5, 1] #notas que podem ser sacadas
valor = 375                     #valor a ser sacado

restante = valor                       #faz uma cópia do valor em "restante"
inota = 0                              #índice da nota: 0 é 100, 1 é 50, 2 é 20, 3 é 10, ...
enquanto restante>0:                   #enquanto restante for maior que 0
  resultado = restante-notas[inota]    #calcula o resultado da subtração entre o valor e a nota
  se resultado<0:                      #se for negativo:
    inota++                               #incrementa o índice para a próxima nota
  senão:                               #se for positivo ou zero:
    restante = resultado                  #deixa restante com o novo resultado
    notasSaída.adicionar(notas[inota])    #adiciona a nota utilizada nas que devem sair do caixa

para nota em notasSaída:               # escreve as notas que devem sair
  escreva nota

Sacou? ;)

 

Abraços,

 

Graymalkin

Boa!!!

 

Mas como fazer isso sem a nota de 1 real?

 

vlw!!!

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.