escrever programa que leia valor de um cheque e passe por extenso
Olá, bom dia, boa tarde...
tipo o usuário vai digitar um numero de 0,01 até 99,99 e o numero que ele digitar tem que passa por extenso.
alguém me dar um help?
tipo o usuário vai digitar um numero de 0,01 até 99,99 e o numero que ele digitar tem que passa por extenso.
alguém me dar um help?
Flavio-pereira
Curtidas 0
Respostas
Eduardo Gonçalves
10/07/2012
Se o valor só pode variar de 0,01 a 99,99 até que fica simples. Uma idéia bem básica de algoritmo é a seguinte:
1-Pegue o valor que o usuário digitou e formate como xx,yy (exemplos: se ele digitou 9,2 formate como 09,20; se ele digitou 0,5, formate como 00,50; se ele digitou 15, formate como 15,00).
2-Crie um vetor de strings de 100 posicoes e armazene os valores por extenso:
vet[0] = ; //essa posição não será usada
vet[1] = um;
vet[2] = dois;
...
vet[99] = noventa e nove;
3- pegue o valor xx,yy. Separe os centavos e procure a descrição no vetor (se for 00 centavos não precisa). Armazene na variável centavos (ex: centavos = vet[20] + centavos;)
4- novamente pegue o valor xx,yy. Separe os reais e procure a descrição no vetor (se for 00 reais não precisa). Armazene na variável reais (ex: reais = vet[9] + Reais;)
5 - Valor_Final = reais + e + centavos;
Observações:
1 - Obviamente você tem que tratar os casos onde só exista o valor de centavos (senão seu valor final pode ficar e cinquenta centavos ao invés de cinquenta centavos. Idem para o caso onde só exista valor em Reais.
2 - O vetor com as descrições poderia ser mais inteligente... na verdade não seria preciso ter uma posição para noventa e nove, bastaria ter noventa e nove. O que quero dizer é que bastaria ter as descrições 1 a 19, 20, 30, 40, 50, 60, 70, 80, 90. Mas aí o código para montar as descrições ficaria mais complicadinho. Você teria que usar esse tipo de estratégia se os cheques pudessem ter qualquer valor, mas se no seu caso é de 0,01 a 99,99 então não precisa!
1-Pegue o valor que o usuário digitou e formate como xx,yy (exemplos: se ele digitou 9,2 formate como 09,20; se ele digitou 0,5, formate como 00,50; se ele digitou 15, formate como 15,00).
2-Crie um vetor de strings de 100 posicoes e armazene os valores por extenso:
vet[0] = ; //essa posição não será usada
vet[1] = um;
vet[2] = dois;
...
vet[99] = noventa e nove;
3- pegue o valor xx,yy. Separe os centavos e procure a descrição no vetor (se for 00 centavos não precisa). Armazene na variável centavos (ex: centavos = vet[20] + centavos;)
4- novamente pegue o valor xx,yy. Separe os reais e procure a descrição no vetor (se for 00 reais não precisa). Armazene na variável reais (ex: reais = vet[9] + Reais;)
5 - Valor_Final = reais + e + centavos;
Observações:
1 - Obviamente você tem que tratar os casos onde só exista o valor de centavos (senão seu valor final pode ficar e cinquenta centavos ao invés de cinquenta centavos. Idem para o caso onde só exista valor em Reais.
2 - O vetor com as descrições poderia ser mais inteligente... na verdade não seria preciso ter uma posição para noventa e nove, bastaria ter noventa e nove. O que quero dizer é que bastaria ter as descrições 1 a 19, 20, 30, 40, 50, 60, 70, 80, 90. Mas aí o código para montar as descrições ficaria mais complicadinho. Você teria que usar esse tipo de estratégia se os cheques pudessem ter qualquer valor, mas se no seu caso é de 0,01 a 99,99 então não precisa!
GOSTEI 0
Davi Costa
10/07/2012
http://www.guj.com.br/java/225445-opensutils-br4j---biblioteca-de-utilitarios-utils/1
http://lib.seven.com.br/ampliar.asp?codartigo=684
att Davi
http://lib.seven.com.br/ampliar.asp?codartigo=684
att Davi
GOSTEI 0