Programa de cedulas?

8 respostas
N

Alguem tem ai alguma coisa que qdo digito 1230 (preciso de 12 notas de 100 e 3 de 10 reais?

8 Respostas

L

dê uma olhada no anexo!

posso te ajudar com a lógica

[]'s

A

Pense o seguinte:
Você vai pegar esse int e vai dividir ele por 100, ignorando o resto…com isso você vai ter a parte de cedulas de 100 reais…depois você divide de novo por 100 e pega o resto…no final você tem corretamente a divisão das celulas a partir dessa entrada!
entendeu a lógica?? :smiley:

public int[] getMoney(int money) { int qtdNotas[] = new int[1]; /*vai dar um return sendo cada index um qtd de notas*/ if(money != null) { if (money >= 100) { return qtdNotas[0] = money/100; //index 0 notas de 100 return qtdNotas[1] = money%100; //index para notas de 10; else { return qtdNotas[1] = money%100; } }

P

Você quer um programa que faça isso ou tem que desenvolver um? Isso tá com cara de trabalho de faculdade (quem trabalha com ATM costuma ter algum conhecimento prévio), acertei?

L

Complementando o que o akumaldo exemplificou:

Se você precisa (e provavelmente é o caso) fazer a comparação com todas as unidades monetárias,
a lógica é a mesma, ou seja, você vai pegar o valor (que deve ser um valor do tipo double
se você vai trabalhar com valores monetários, devido às casas decimais) e dividir pelas unidades
monetárias, da maior até a menor, pegando sempre os restos.
Lembrando que para valores decimais, não devemos fazer comparações diretas como 100.00 = 100.00, mas sim comparações dentro de uma faixa de valores, como 100.00 > 99.999 ou 100.00 < 100.001… aí vai depender da necessidade de precisão.

P

Galera,

Eu sei que este assunto  foi muito discutido aqui, inclusive com o ótimo tópico/pesquisa aberto pelo Thingol. Sei também que, assim como muitas vezes recorremos a este fórum para sanarmos nossas dúvidas, também temos o "dever" de auxiliar os demais colegas.

 Mas [b]nanda[/b], sinceramente, se a cada exercício que o seu professor passar, você vier aqui no GUJ e simplesmente postar um tópico com esse ar de "alguém tem isso pronto aí ?", eu e vários outros colegas simplesmente passaremos a ignorar seus posts.

 Procure fazer seus exercícios e, quando as dúvidas pintarem, poste-as aqui, que teremos o maior prazer em ajudar.
N

Galera ,dê uma olha nesse codigo acho que minha logica ta certa fiz por div e mod.So que tem um probleminha com a parte decimal tipo qdo coloco250 ele diz2,50 notas de sem e ó é p/ ele resgatar o 2 a parte iinteira.

import javax.swing.JOptionPane;

public class cedulas1

{

public static void main(String args[])

{
double valor,aux1, aux2, aux3 , aux4, aux5, aux6, aux7, aux8, aux9, aux10, n100, n50, n20, n10, n5, n2, n1, n050, n010 ,n005 ,n001;
	valor=Double.parseDouble(JOptionPane.showInputDialog("Digite o salario: "));
	aux1= valor%100;
	aux2= aux1%50;
	aux3=aux2%20;
	aux4=aux3%10;
	aux5=aux4%5;
	aux6=aux5%2;
	aux7=aux6%1;
	aux8=aux7%0.50;
	aux9=aux8%0.10;
	aux10=aux9%0.05;
	n100=valor/100;
	n50=aux1/50;
	n20=aux2/20;
	n10=aux3/10;	
	n5=aux4/5;
	n2=aux5/2;
	n1=aux6/1;
	n050=aux7/0.50;
	n010=aux8/0.10;
	n005=aux9/0.05;
	n001=aux9%0.05;
	JOptionPane.showMessageDialog(null,"Notas de R$100: " +n100);
	JOptionPane.showMessageDialog(null,"Notas de R$50: " +n50);  
	JOptionPane.showMessageDialog(null,"Notas de R$20: " +n20);
	JOptionPane.showMessageDialog(null,"Notas de R$10: " +n10);
	JOptionPane.showMessageDialog(null,"Notas de R$5: " +n5); 
	JOptionPane.showMessageDialog(null,"Notas de R$2: " +n2);		
	JOptionPane.showMessageDialog(null,"Notas de R$1: " +n1);
	JOptionPane.showMessageDialog(null,"Notas de R$0.50: " +n050);  
	JOptionPane.showMessageDialog(null,"Notas de R$0.10: " +n010);
	JOptionPane.showMessageDialog(null,"Notas de R$0.05: " +n005);
	JOptionPane.showMessageDialog(null,"Notas de R$0.01: " +n001); 
	System.exit(0);
	}
	}
R

Supondo que vc possui disponiveis notas de 50, 10, 5 e 1. Vc pode fazer o seguinte:

int qtde50 = 0;
int qtde10 = 0;
int qtde5 = 0;
int qtde1 = 0;


   while (valor>50) {
      valor-=50;
      ++qtde50;
   }
   while (valor>10) {
      valor-=10;
      ++qtde10;
   }
   while (valor>5) {
      valor-=5;
      ++qtde5;
   }
   while (valor>1) {
      valor-=1;
      ++qtde1;
   }
L

ó, vou quebrar teu galho hein … :smiley:
é só terminar…

double valor_monetario = Double.parseDouble(JOptionPane.showInputDialog("Digite o salario: "));
	
double INDICE = 0.0002;
		
long[] qtde = new long[12];
		
if(valor_monetario> (100.00-INDICE)){
	qtde[0] = (long)Math.floor(valor_monetario/(100.00-INDICE));
	valor_monetario = valor_monetario%100.00;
}
		
if(valor_monetario> (50.00-INDICE)){
	qtde[1] = (long)Math.floor(valor_monetario/(50.00-INDICE));
	valor_monetario= valor_monetario%50.00;
}

// termine de fazer para os outros valores...

dê uma olhada na API para conhecer a classe Math, e os métodos dela.

[]'s :thumbup:

Criado 27 de junho de 2006
Ultima resposta 28 de jun. de 2006
Respostas 8
Participantes 6