Calculando o Troco em uma Aplicação Java
Veja neste artigo uma aplicação Java para calcular o troco no pagamento de uma conta. Como resultado será apresentado também o valor inteiro e o valor fracionário do troco dividido em notas e moedas, respectivamente.
Caros Amigos,
Pretendo demonstrar neste artigo uma aplicação Java para calcular o troco no pagamento de uma conta. Como resultado será apresentado também o valor inteiro do troco dividido em notas de R$ 100,00 - R$ 50,00 - R$ 20,00 - R$ 10,00 - R$ 5,00 - R$ 2,00 e R$ 1,00, respectivamente. E ainda, a parte fracionária do troco será dividida em moedas de R$ 0,50 - R$ 0,25 - R$ 0,10 - R$ 0,05 e R$ 0,01, respectivamente.
Implementar a classe principal Java Troco como demonstrado a seguir:
Entendendo o algoritmo implementado no método calculaTroco:
a) os vetores "nota" e "centavos" representam os valores das notas e centavos, respectivamente, usados nos cálculos das quantidades individuais na divisão do troco.
b) inicialmente é verificado se o valor pago é suficiente para o pagamento da conta.
c) a divisão do troco é realizada em duas partes:
c.1) dividindo a parte inteira do troco da maior nota (R$ 100,00) para a menor nota (R$ 1,00) até zerar o valor inteiro do troco. O operador / é usado para calcular a quantidade de notas já o operador % foi utilizado na expressão que calcula a sobra.
c.2) dividindo a parte fracionária do troco da maior moeda (R$ 0,50) para a menor moeda (R$ 0,01) até zerar o valor fracionário do troco. Novamente os operadores / e % são utilizados nas expressões que fazem a divisão da parte fracionária do troco em moedas.
Ao executar a aplicação deve-se informar o valor da conta e o valor pago e o seguinte resultado poderá ser exibido:

Veja também:
1) Separando a Parte Inteira e a Parte Fracionária de Valores do Tipo Real
2) Calculando o Troco em uma Aplicação Delphi
Obrigado e um abraço.
Prof. Omero Francisco Bertol (http://www.pb.utfpr.edu.br/omero/)
Aplicações Java (http://www.pb.utfpr.edu.br/omero/Java/Fontes.HTM)
Pretendo demonstrar neste artigo uma aplicação Java para calcular o troco no pagamento de uma conta. Como resultado será apresentado também o valor inteiro do troco dividido em notas de R$ 100,00 - R$ 50,00 - R$ 20,00 - R$ 10,00 - R$ 5,00 - R$ 2,00 e R$ 1,00, respectivamente. E ainda, a parte fracionária do troco será dividida em moedas de R$ 0,50 - R$ 0,25 - R$ 0,10 - R$ 0,05 e R$ 0,01, respectivamente.
Implementar a classe principal Java Troco como demonstrado a seguir:
import java.text.DecimalFormat;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Troco {
public static void main(String[] args) {
Scanner ler = new Scanner(System.in);
double conta, pago;
try {
System.out.printf("Informe o Valor da Conta: ");
conta = ler.nextDouble();
System.out.printf("Informe o Valor Pago....: ");
pago = ler.nextDouble();
System.out.printf("%s", calculaTroco(conta, pago));
}
catch (InputMismatchException e) {
System.err.printf("\nErro: dados informados inválidos !!!\n");
}
}
public static String calculaTroco(double conta, double pago) {
DecimalFormat formatador = new DecimalFormat("###,##0.00");
if (pago < conta)
return("\nPagamento insuficiente, faltam R$ " +
formatador.format(conta - pago) + "\n");
else {
int nota[] = {100, 50, 20, 10, 5, 2, 1};
int centavos[] = {50, 25, 10, 5, 1};
String result;
double troco;
int i, vlr, ct;
troco = pago - conta;
result = "\nTroco = R$ " + formatador.format(troco) + "\n\n";
// definindo as notas do troco (parte inteira)
vlr = (int)troco;
i = 0;
while (vlr != 0) {
ct = vlr / nota[i]; // calculando a qtde de notas
if (ct != 0) {
result = result + (ct + " nota(s) de R$ " + nota[i] + "\n");
vlr = vlr % nota[i]; // sobra
}
i = i + 1; // próxima nota
}
result = result + "\n";
// definindo os centavos do troco (parte fracionária)
vlr = (int)Math.round((troco - (int)troco) * 100);
i = 0;
while (vlr != 0) {
ct = vlr / centavos[i]; // calculando a qtde de moedas
if (ct != 0) {
result = result + (ct + " moeda(s) de " + centavos[i] +
" centavo(s)\n");
vlr = vlr % centavos[i]; // sobra
}
i = i + 1; // próximo centavo
}
return(result);
}
}
}
Entendendo o algoritmo implementado no método calculaTroco:
a) os vetores "nota" e "centavos" representam os valores das notas e centavos, respectivamente, usados nos cálculos das quantidades individuais na divisão do troco.
b) inicialmente é verificado se o valor pago é suficiente para o pagamento da conta.
c) a divisão do troco é realizada em duas partes:
c.1) dividindo a parte inteira do troco da maior nota (R$ 100,00) para a menor nota (R$ 1,00) até zerar o valor inteiro do troco. O operador / é usado para calcular a quantidade de notas já o operador % foi utilizado na expressão que calcula a sobra.
c.2) dividindo a parte fracionária do troco da maior moeda (R$ 0,50) para a menor moeda (R$ 0,01) até zerar o valor fracionário do troco. Novamente os operadores / e % são utilizados nas expressões que fazem a divisão da parte fracionária do troco em moedas.
Ao executar a aplicação deve-se informar o valor da conta e o valor pago e o seguinte resultado poderá ser exibido:

Veja também:
1) Separando a Parte Inteira e a Parte Fracionária de Valores do Tipo Real
2) Calculando o Troco em uma Aplicação Delphi
Obrigado e um abraço.
Prof. Omero Francisco Bertol (http://www.pb.utfpr.edu.br/omero/)
Aplicações Java (http://www.pb.utfpr.edu.br/omero/Java/Fontes.HTM)

[Este post ainda não foi associado a uma sequência]
Você está em:
canal Java
Omero Francisco Bertol
Space do autor
Técnico Mecânico pelo CEFET, Curitiba/PR. Tecnólogo em Processamento de Dados pela UEM, Maringá/PR. Especialista em Informática pela Universidade Federal do Paraná. Mestre em Informática Aplicada pelo Programa de Pós Graduação em Informática Aplicada da PUC, Curitiba/PR. Professor de Ensino Superior...
Space do autor



0
0
