Numeros por Extenso de 0 a 1000

4 respostas
C
import javax.swing.JOptionPane;

public class extenso {

	public static void main( String[] args ) {

		String Num  [ ]  ;
		String Num2 [ ]  ;
		String E;

		Num [0] = "zero";
		Num [1] = "um";
		Num [2] ="dois";
		Num [3] = "três";
		Num [4] = "quatro";
		Num [5] = "cinco";
		Num [6] = "seis";
		Num [7] = "sete";
		Num [8] = "oito";
		Num [9] = "nove";

		Num2 [20] =  "Vinte " ;
		Num2 [30] =  "trinta" ;
		Num2 [40] =  "Quarenta" ;
		Num2 [50] =  "Cinquenta";
		Num2 [60] =  "Sessenta"; 
		Num2 [70] =  "Setenta" ;
		Num2 [80] =  "Oitenta" ;
		Num2 [90] =  "Noventa" ;




		String Numdigitado = JOptionPane.showInputDialog ("Digite um número entre 0 a 1000");
		int intN ;
		int N = Integer.parseInt(Numdigitado) ;

		if ((intN < 0) && (intN > 1000))

			E ="Erro! Número Inválido.";

		else
			E ="" + Numdigitado;

		JOptionPane.showMessageDialog(null,E,"Resposta",JOptionPane.INFORMATION_MESSAGE);
		System.exit(0);

		if (intN <= 20) 
		{
		JOptionPane.showInputDialog(null,Num[intN]);
			
			if ((intN <=10) && (intN < 0))
			{
			JOptionPane.showInputDialog(null,Num[intN]);
			}
			
	}
			
		

		//d1 = NumDigitado.substring (0,1);
		//d2 = NumDigitado.substring (1,2);
		//int n1, n2;

		//n1 = Integer.parseInt (d1);
		//n2 = Integer.parseInt (d2);



		JOptionPane.showInputDialog(null, Num2 [] + " e ", Num []) ;

		//}
	}
}

galera eu começei a fazer esse código para tentar exibir na tela o numero digitado pelo usuario por extenso..só que me atrapalhei ja todo e nao saiu mais dai!

alguem pode me auxiliar ?

Grato!

4 Respostas

Roger75

Você está fazendo a comparação com o intN

if (intN <= 20)

O correto seria fazer com N, não?

Além disso, mesmo que usasse o intN não ia dar certo neste trecho:

if ((intN <=10) && (intN < 0))

Você está exigindo que o número seja negativo (intN < 0)

C
import javax.swing.JOptionPane;

public class extenso {

	public static void main( String[] args ) {

		String Num  [ ]  ;
		String Num2 [ ]  ;
		String E;

		Num [0] = "zero";
		Num [1] = "um";
		Num [2] ="dois";
		Num [3] = "três";
		Num [4] = "quatro";
		Num [5] = "cinco";
		Num [6] = "seis";
		Num [7] = "sete";
		Num [8] = "oito";
		Num [9] = "nove";

		Num2 [20] =  "Vinte " ;
		Num2 [30] =  "trinta" ;
		Num2 [40] =  "Quarenta" ;
		Num2 [50] =  "Cinquenta";
		Num2 [60] =  "Sessenta"; 
		Num2 [70] =  "Setenta" ;
		Num2 [80] =  "Oitenta" ;
		Num2 [90] =  "Noventa" ;




		String Numdigitado = JOptionPane.showInputDialog ("Digite um número entre 0 a 1000");
		int N ;
		int Nm = Integer.parseInt(Numdigitado) ;

		if ((N < 0) && (N > 1000))

			E ="Erro! Número Inválido.";

		else
			E ="" + Numdigitado;

		JOptionPane.showMessageDialog(null,E,"Resposta",JOptionPane.INFORMATION_MESSAGE);
		System.exit(0);

		if (N <= 20) 
		{
		JOptionPane.showInputDialog(null,Num[N]);
			
			if ((N <=10) && (N < 0))
			{
			JOptionPane.showInputDialog(null,Num[N]);
			}
			
	}
			
		

		//d1 = NumDigitado.substring (0,1);
		//d2 = NumDigitado.substring (1,2);
		//int n1, n2;

		//n1 = Integer.parseInt (d1);
		//n2 = Integer.parseInt (d2);



		JOptionPane.showInputDialog(null, Num2 [] + " e ", Num []) ;

		//}
	}
}

CORRETO ALTEREII ...SÓ Q TEM AS LINHAS Q ESTAO COMENTADAS ESTAO DAND ERRO E O ULTIMO JOPTIONPANE NOA FUNFA !

V

Continua errado,

olha só:

String Numdigitado = JOptionPane.showInputDialog ("Digite um número entre 0 a 1000"); 
   int N ;  
   int Nm = Integer.parseInt(Numdigitado)

Captura o número beleza, aí você cria uma variavel int N e outra int Nm, a Nm está recebendo o valor digitado pelo o usuario, beleza até aí.

agora…

if ((N < 0) && (N > 1000))  {

Aí começa o erro, voce esta comparando uma variavel que não tem valor nenhum, int N; não recebe nada até agora, ai que começa o erro, dá uma corrigida que voce consegue…

C
mudei totalmente meu codigo por este ! 

import java.util.HashMap;
import java.util.Map;

import javax.swing.JOptionPane;

public class extenso {

	public static void main( String[] args ) {

		Map<Integer, String> numeros = new HashMap<Integer, String>();


		numeros.put(0, "zero");
		String numDigitado ;

		numDigitado = JOptionPane.showInputDialog("Digite um numero entre 0 a 1000");

		int cont = 1;
		for (String cent : new String[] {"", "cento", "duzentos", "trezentos", "quatrocentos", "quinhentos", "seiscentos", "setecentos", "oitocentos", "novecentos"}) {
			String centena = "";
			if ("cento".equals(cent)) {
				numeros.put(cont++, "cem");
				centena = "cento e ";
			} else {
				if (!"".equals(cent)) {
					numeros.put(cont++, cent);
					centena = cent + " e ";
				}
			}
			numeros.put(cont++, centena +  "um");
			numeros.put(cont++, centena + "dois");
			numeros.put(cont++, centena + "tres");
			numeros.put(cont++, centena + "quatro");
			numeros.put(cont++, centena + "cinco");
			numeros.put(cont++, centena + "seis");
			numeros.put(cont++, centena + "sete");
			numeros.put(cont++, centena + "oito");
			numeros.put(cont++, centena + "nove");
			numeros.put(cont++, centena + "dez");
			numeros.put(cont++, centena + "onze");
			numeros.put(cont++, centena + "doze");
			numeros.put(cont++, centena + "treze");
			numeros.put(cont++, centena + "quatorze");
			numeros.put(cont++, centena + "quinze");
			numeros.put(cont++, centena + "dezesseis");
			numeros.put(cont++, centena + "dezessete");
			numeros.put(cont++, centena + "dezoito");
			numeros.put(cont++, centena + "dezenove");

			for (String decimal : new String[] {"vinte", "trinta", "quarenta", "cinquenta", "sessenta", "setenta", "oitenta", "noventa"}) {
				numeros.put(cont++, decimal);

				for(int i = 1; i <= 9; i++) {
					numeros.put(cont++, centena + decimal + " e " + numeros.get(i));						
				}
			}
		}
		
		JOptionPane.showMessageDialog(null, "O numero por extenso é: " +  numeros.get(Integer.parseInt(numDigitado)));
		System.exit(0);
	}
}

AGORA FICOU SHOW DE BOLA, E OBRIGADO PELA ATENÇÃO, ESPERO Q ESSE CODIGO AJUDEM UM DIA !

Criado 3 de setembro de 2010
Ultima resposta 3 de set. de 2010
Respostas 4
Participantes 3