• Jueves 14 de Noviembre de 2024, 04:11

Autor Tema:  Numeros Romanos A Binarios!!  (Leído 1633 veces)

stormshadow

  • Nuevo Miembro
  • *
  • Mensajes: 20
    • Ver Perfil
Numeros Romanos A Binarios!!
« en: Martes 19 de Junio de 2007, 06:45 »
0
Hola gente que tal, bueno pues abro el post, para ver si me pueden auxiliar, pasa que tengo que hacer un programa, donde el usuario al dar un numero en romano, lo imprima en numero binario, eh encontrado algunas cosillas, por ejemplo un switch, la verdad necesito ayuda porque no entiendo mucho, pero mas que nada, les queria preguntar como convierto de cadena entero, que creo yo que es lo que tengo que hacer, y pues si me pueden dar alguna idea porfavor, muchas gracias de antemano  :rolleyes:

stormshadow

  • Nuevo Miembro
  • *
  • Mensajes: 20
    • Ver Perfil
Re: Numeros Romanos A Binarios!!
« Respuesta #1 en: Jueves 21 de Junio de 2007, 17:49 »
0
Bueno que tal gente, pss esto es lo que llevo de mi programa, pero todavia tengo algunas fallas  :( , por ejemplo, si ingreso VIII si m imprime valor: 8, pero al ingresar XVIII se supone que m tiene que dar 18 y alli truena el programa, m podrian ayudar porfavor? se los agradeceria mucho.
Código: Text
  1.  
  2. import java.io.*;
  3.  
  4. public class NumerosRomanos
  5. {
  6.   public static void main (String[] args)
  7.   {
  8.     String sRomano;
  9.     BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
  10.  
  11.     try
  12.     {
  13.       System.out.print("Ingresa numero romano:");      
  14.       sRomano = stdin.readLine();
  15.      
  16.       int iValor  = 0;
  17.       int iIndex = 0;
  18.  
  19.       while( iIndex < sRomano.length() )
  20.       {
  21.  
  22.  
  23.         if( sRomano.substring(iIndex, iIndex + 1).equals("I") )
  24.         {
  25.           if( sRomano.length() >= iIndex + 2)
  26.           {
  27.             if( sRomano.substring(iIndex + 1, iIndex + 2).equals("V") )
  28.             {
  29.               iValor += 4;
  30.               iIndex += 2;
  31.             }
  32.             else if( sRomano.substring(iIndex + 1, iIndex + 2).equals("X"))
  33.             {
  34.               iValor += 9;
  35.               iIndex += 2;
  36.             }
  37.             else if( sRomano.substring(iIndex + 1, iIndex + 2).equals("I"))
  38.             {
  39.               if( sRomano.length() >= iIndex + 3)
  40.               {
  41.                 if( sRomano.substring(iIndex + 2, iIndex + 3).equals("I"))
  42.                 {  
  43.                   iValor += 3;
  44.                   iIndex += 3;
  45.                 }
  46.               }
  47.               else
  48.               {
  49.                 iValor += 2;
  50.                 iIndex += 2;
  51.               }
  52.             }
  53.           }
  54.           else
  55.           {
  56.             iValor += 1;
  57.             iIndex += 1;
  58.           }
  59.         }
  60.         else if( sRomano.substring(iIndex, iIndex + 1).equals("V") )
  61.         {
  62.           iValor +=5;
  63.           iIndex +=1;
  64.          
  65.         }
  66.         else if( sRomano.substring(iIndex, iIndex + 1).equals("X") )
  67.         {
  68.           if( sRomano.length() >= iIndex + 2)
  69.           {  
  70.             if( sRomano.substring(iIndex + 1, iIndex + 2).equals("L") )
  71.             {  
  72.               iValor += 40;
  73.               iIndex += 2;
  74.             }
  75.             else if( sRomano.substring(iIndex + 1, iIndex + 2).equals("C"))
  76.             {
  77.               iValor += 90;
  78.               iIndex += 2;
  79.             }
  80.             else if( sRomano.substring(iIndex + 1, iIndex + 2).equals("X"))
  81.             {
  82.              
  83.               if( sRomano.length() >= iIndex + 3)
  84.               {
  85.                 if( sRomano.substring(iIndex + 2, iIndex + 3).equals("X"))
  86.                 {
  87.                   iValor += 30;
  88.                   iIndex += 3;
  89.                 }
  90.               }
  91.               else
  92.               {
  93.                 iValor += 20;
  94.                 iIndex += 2;
  95.               }
  96.             }
  97.          
  98.           }
  99.           else
  100.           {
  101.             iValor += 10;
  102.             iIndex += 1;
  103.           }  
  104.         }
  105.      
  106.       }
  107.  
  108.       System.out.println(" Valor : " + iValor);
  109.       stdin.close();    
  110.  
  111.     }
  112.     catch (Exception e)
  113.     {
  114.       System.out.println("Error");
  115.     }
  116.   }
  117.  
  118. }
  119.  
  120.