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.

Calculando o Troco no Java

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:

  1. 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.
  2. inicialmente é verificado se o valor pago é suficiente para o pagamento da conta.
  3. a divisão do troco é realizada em duas partes:
    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.
    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

Prof. Omero Francisco Bertol: http://www.pb.utfpr.edu.br/omero/
Aplicações Java: (http://www.pb.utfpr.edu.br/omero/Java/Fontes.HTM)

Links Úteis

Saiba mais sobre Java ;)

  • Guias de Linguagem Java:
    Neste Guia de Referência você encontrará todo o conteúdo que precisa para começar a programar com a linguagem Java, a sua caixa de ferramentas base para criar aplicações com Java.
  • Enums no Java:
    Aprenda nesse microexemplo como criar e utilizar enums no Java. Confira como esse poderoso recurso permite a definição de um conjunto limitado de valores para uma variável.
  • Números mágicos: O que são e como corrigir:
    Confira o que são números mágicos e como reconhecer a presença dessa má prática de programação em códigos. Veja ainda quais recursos da linguagem Java podem ser utilizados para corrigir esse problema.

Artigos relacionados