SoloCodigo

Programación General => Java => Mensaje iniciado por: stormshadow en Sábado 30 de Junio de 2007, 22:05

Título: Help Me! Programa Para Convertir Numeros A Letras
Publicado por: stormshadow en Sábado 30 de Junio de 2007, 22:05
Hola gente!! bueno pues esta vez estoy haciendo un programa donde el usuario ingrese una cantidad, y el programa se la devuelva escrita en letra....
Esto es lo que llevo, solo lo estoy calando con las unidades, pero me gustaria saber porque al ingresar un numero, ya sea el 1, el 2, el 3 etc. m dice error  :( .
Bueno aqui esta el programa:
Código: Text
  1.  
  2. import java.io.*;
  3.  
  4. public class NumToLet
  5. {
  6.   public static void main (String[] args)
  7.   {
  8.     String sNumeros;
  9.     BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
  10.  
  11.     try
  12.     {
  13.       System.out.print("Dame un numero: ");      
  14.       sNumeros = stdin.readLine();
  15.      
  16.       int iIndex = 0;
  17.       int iMedida = 0;
  18.       int iNum = 0;
  19.       String sCantidad = "";
  20.      
  21.       while( iIndex < sNumeros.length() )
  22.       {  
  23.         //Unidades
  24.         iMedida = ((sNumeros.length() - iIndex) - 1);
  25.         iNum = Integer.parseInt (sNumeros.substring (iIndex, iIndex + 1));
  26.         if (iMedida == 1)
  27.         {
  28.           if (iNum == 1)
  29.           {
  30.             sCantidad = sCantidad + "UNO";
  31.           }
  32.           else if (iNum == 2)
  33.           {
  34.             sCantidad = sCantidad + "DOS";
  35.           }
  36.           else if (iNum == 3)
  37.           {
  38.             sCantidad =sCantidad + "TRES";
  39.           }
  40.         }
  41.          
  42.        
  43.       }
  44.  
  45.       System.out.println(" Tu cifra es: " + sCantidad);
  46.       stdin.close();    
  47.  
  48.     }
  49.     catch (Exception e)
  50.     {
  51.       System.out.println("Error");
  52.     }
  53.   }
  54.  
  55. }
  56.  
  57.  
Weno espero m puedan ayudar, de antemano gracias
Título: Re: Help Me! Programa Para Convertir Numeros A Letras
Publicado por: jpaler en Domingo 1 de Julio de 2007, 00:14
bueno... una duda:
¿lo estas haciendo x el reto de hacerlo? o ¿x ignorar q ya existe?

por si algo... te cuento q se llama "rutina del monto escrito" y es muy
utilizado en software de contabilidad para llenar el campito ese de
los cheques...

Salu2 !!!
Título: Re: Help Me! Programa Para Convertir Numeros A Letras
Publicado por: stormshadow en Domingo 1 de Julio de 2007, 05:00
pues no es tanto reto, es un trabajo para la universidad, y no me gusta piratear cosas, asi que pss yo solo pido un poquito de ayuda para ver en que estoy fallando jejeje, espero me puedan ayudar please!!  :P
Título: Re: Help Me! Programa Para Convertir Numeros A Letras
Publicado por: kaidok en Domingo 1 de Julio de 2007, 11:41
Pon el error que te da, por que a simple vista es muy complicado sacarlo...
Título: Re: Help Me! Programa Para Convertir Numeros A Letras
Publicado por: stormshadow en Domingo 1 de Julio de 2007, 19:52
es que en si no hay error!, o sea compila chido y todo, lo ejecuto y me pide la cifra, al introducir yo el numero m dice Error, que es lo que tengo en el catch, porfavor ayuda  :(
Título: Re: Help Me! Programa Para Convertir Numeros A Letras
Publicado por: Henrypunk en Lunes 2 de Julio de 2007, 18:42
Bueno Supongo que la exepcion que atrapa tu  programa es por que el while nunca acaba bueno creo que asi si funcionaria tu programa :
Código: Text
  1. import java.io.*;
  2.  
  3. public class NumToLet
  4. {
  5.   public static void main (String[] args)
  6.   {
  7.     String sNumeros;
  8.     BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
  9.  
  10.     try
  11.     {
  12.       System.out.print("Dame un numero: ");      
  13.       sNumeros = stdin.readLine();
  14.      
  15.       int iIndex = 0;
  16.       int iMedida = 0;
  17.       int iNum = 0;
  18.       String sCantidad = "";
  19.  
  20.    
  21.         iMedida = ((sNumeros.length() - iIndex) - 1);
  22.         iNum = Integer.parseInt (sNumeros.substring (iIndex, iIndex + 1));
  23.         if (iMedida == 1)
  24.         {
  25.           if (iNum == 1)
  26.           {
  27.             sCantidad = sCantidad + "UNO";
  28.           }
  29.           else if (iNum == 2)
  30.           {
  31.             sCantidad = sCantidad + "DOS";
  32.           }
  33.           else if (iNum == 3)
  34.           {
  35.             sCantidad =sCantidad + "TRES";
  36.           }
  37.         }
  38.    
  39.       System.out.println(" Tu cifra es: " + sCantidad);
  40.       stdin.close();    
  41.  
  42.     }
  43.     catch (Exception e)
  44.     {
  45.       System.out.println("Error");
  46.     }
  47.   }
  48.  
  49. }
  50.  
  51.  

En este caso solo funcionaria si ingresas un numero de dos cifras menor que 40, y el numero que de mostraria seria el de las decenas. No entiendo porque utilizas
Código: Text
  1.  
  2.         iMedida = ((sNumeros.length() - iIndex) - 1);
  3.         iNum = Integer.parseInt (sNumeros.substring (iIndex, iIndex + 1));
  4.  
  5.  

supongo que debe ser parte de tu codigo completo bueno espero aberte ayudado :P
Título: Re: Help Me! Programa Para Convertir Numeros A Letras
Publicado por: stormshadow en Martes 3 de Julio de 2007, 20:10
Cita de: "Henrypunk"
No entiendo porque utilizas
Código: Text
  1.  
  2.         iMedida = ((sNumeros.length() - iIndex) - 1);
  3.         iNum = Integer.parseInt (sNumeros.substring (iIndex, iIndex + 1));
  4.  
  5.  
weno si m ayudaste jeje gracias, ahora ya m imprime tu difra es: pero no m aparece la letra jejejeje, y weno eso que m preguntas porque lo utilizo, la iMedida es para recorrer los vectores por ejemplo siempre recorre por 0 1 2 3 cada espacion, y esa opcion lo que hace es ver que hay pero alrevez, alli tu le indicas que dependiendo al numero ingresado lo recorra para ver que hay de el final hacia atras, por ejemplo 3 2 1 0, y ver que hay en el 0 despues en el 1 etc...