elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ayuda con algoritmo de suma de octales
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con algoritmo de suma de octales  (Leído 5,252 veces)
Legnak

Desconectado Desconectado

Mensajes: 61


("Programador");


Ver Perfil
Ayuda con algoritmo de suma de octales
« en: 23 Julio 2013, 17:44 pm »

Hola, me han mandado a hacer un algoritmo de suma de octales, sé que en Java simplemente con el Integer.parseInt todo se hace muy fácil, pero el profesor me ha dicho que quiere todo a pie ._., por tanto no puedo usar esa función, esto es lo que llevo hecho de ese algoritmo, pero de momento solo me suma pequeñas cifras, espero puedan ayudarme a mejorar este código

Código
  1. package programa;
  2.  
  3. import java.util.Scanner;
  4.  
  5.  
  6. public class Programa {
  7.  
  8.  
  9.    static int a, b;
  10.    public static void main(String[] args)
  11.    {  
  12.       Scanner leer = new Scanner(System.in);
  13.  
  14.       System.out.println("Introduzca el primer octal");
  15.       String valor = leer.nextLine();
  16.       try
  17.       {
  18.            int valord = Integer.parseInt(valor, 8 );
  19.       }
  20.       catch (NumberFormatException e)
  21.       {
  22.           System.out.println("El primer número debe ser octal");
  23.       }
  24.  
  25.       System.out.println("Introduzca el segundo octal");
  26.       String valorb = leer.nextLine();
  27.  
  28.       try
  29.       {
  30.  
  31.            int valordb = Integer.parseInt(valorb, 8 );
  32.       }
  33.       catch (NumberFormatException e)
  34.       {
  35.           System.out.println("El segundo número debe ser octal");
  36.       }
  37.       String res = "";
  38.       int val;
  39.       int mayor = valor.length() >  valorb.length() ? valor.length() : valorb.length();
  40.       int acarreo = 0;
  41.       boolean seguir = true;
  42.       for (int cont = mayor-1; cont >= 0; cont--)
  43.       {
  44.           val = 0;
  45.           try
  46.           {
  47.               a = Character.getNumericValue(valor.charAt(cont));
  48.  
  49.           }
  50.           catch (StringIndexOutOfBoundsException e)
  51.           {  
  52.                a  = 0;
  53.                seguir = false;
  54.  
  55.           }
  56.  
  57.           try
  58.           {
  59.  
  60.               b = Character.getNumericValue(valorb.charAt(cont));
  61.  
  62.  
  63.            }
  64.           catch (StringIndexOutOfBoundsException e)
  65.           {  
  66.                b = 0;
  67.                seguir = false;
  68.  
  69.           }
  70.  
  71.  
  72.  
  73.               val = a + b;
  74.               if (acarreo > 0)
  75.               {  
  76.                  val += acarreo;
  77.                  acarreo = 0;
  78.               }
  79.               if (val >= 10)
  80.                  acarreo =  val/10;
  81.  
  82.               if (val > 7)
  83.  
  84.                      val -= 8;
  85.  
  86.                 res += val;
  87.  
  88.  
  89.  
  90.               if (!seguir)
  91.               {
  92.                   if (val > 0) res += val;
  93.                   else if (acarreo > 0) res += val;
  94.               }
  95.  
  96.  
  97.       }    
  98.  
  99.  
  100.       res = new StringBuffer(res).reverse().toString();
  101.       System.out.println(res);
  102.  
  103.    }
  104. }
  105.  

Saludos y gracias de antemano


En línea

Slider324

Desconectado Desconectado

Mensajes: 45


Ver Perfil
Re: Ayuda con algoritmo de suma de octales
« Respuesta #1 en: 24 Julio 2013, 02:54 am »

puedes cambiar:

Código:
leer.nextLine();

Código:
por alguna de esta para ya no necesitar convertir a integer, double etc.. y no usar parse para convertir, para usar numeros grandes te recomiendo double saludos

Código:
leer.nextDouble();
leer.nextInt();
leer.nextFloat();


En línea

Legnak

Desconectado Desconectado

Mensajes: 61


("Programador");


Ver Perfil
Re: Ayuda con algoritmo de suma de octales
« Respuesta #2 en: 24 Julio 2013, 03:11 am »

hermano lo que pasa es que para validar que sean enteros de 8 bits uso la función Integer.parseInt y esa usa como parámetro un String, así que no tengo opción :xD
gracias por comentar ;D
En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Ayuda con algoritmo de suma de octales
« Respuesta #3 en: 24 Julio 2013, 18:18 pm »

En vez de hacer un código modo hacker, simplemente enfocate en crear dos funciónes. Una que convierta de octal a decimal y otra a decimal a octal. Luego de esos sumar, multiplicar y dividir con octal seria muy facil...

También tienes el método estático valueOf de la clase Integer que hace exactamente lo mismo que parseInt, excepto que este retorna un Wrapper. Pero utilizarlo seria un insulto hacia al profesor jejeje, seguro te hecha xD.

Saludos.
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
Legnak

Desconectado Desconectado

Mensajes: 61


("Programador");


Ver Perfil
Re: Ayuda con algoritmo de suma de octales
« Respuesta #4 en: 27 Julio 2013, 04:09 am »

el problema es que el profesor quiere que la suma sea "a pie", con el asunto del acarreo y eso D:
En línea

Legnak

Desconectado Desconectado

Mensajes: 61


("Programador");


Ver Perfil
Re: Ayuda con algoritmo de suma de octales
« Respuesta #5 en: 27 Julio 2013, 04:24 am »

ya le he avanzado, el bug que tiene por el momento es que no puedo sumar dos números de distintas cifras, acá lo dejo por si alguien me quiere ayudar  :silbar:


Código
  1. public String sumar(String valor, String valorb)
  2.    {
  3.  
  4.        int a, b;
  5.        String res = "";
  6.       int val = 0;
  7.       int recorrido = valor.length() >  valorb.length() ? valor.length() : valorb.length();
  8.  
  9.       int acarreo = 0;
  10.  
  11.       for (int cont = recorrido-1; cont >= 0; cont--)
  12.       {
  13.  
  14.           val = 0;
  15.           try
  16.           {
  17.               a = Character.getNumericValue(valor.charAt(cont));
  18.  
  19.           }
  20.           catch (StringIndexOutOfBoundsException e)
  21.           {  
  22.  
  23.                a  = 0;
  24.  
  25.  
  26.           }
  27.  
  28.           try
  29.           {
  30.  
  31.               b = Character.getNumericValue(valorb.charAt(cont));
  32.  
  33.  
  34.            }
  35.           catch (StringIndexOutOfBoundsException e)
  36.           {  
  37.                b = 0;
  38.  
  39.           }
  40.  
  41.  
  42.               val = a + b;
  43.  
  44.  
  45.               if (acarreo > 0)
  46.               {
  47.                   val += acarreo;
  48.                   acarreo = 0;
  49.               }
  50.  
  51.  
  52.  
  53.               if (val > 7)
  54.               {
  55.                  acarreo = 1;
  56.                   val -= 8 ;
  57.               }
  58.  
  59.                 res += val;
  60.  
  61.  
  62.       }    
  63.  
  64.  
  65.       if (acarreo > 0)
  66.       {
  67.            res = res + "" + acarreo ;
  68.       }
  69.  
  70.     res  = new StringBuffer(res).reverse().toString();
  71.        return res;
  72.    }
En línea

Legnak

Desconectado Desconectado

Mensajes: 61


("Programador");


Ver Perfil
Re: Ayuda con algoritmo de suma de octales
« Respuesta #6 en: 27 Julio 2013, 05:36 am »

listo, ya lo terminé  >:D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA URGENTE!!!!!!!!! Suma de Cadena de Caracteres o palabras
Ejercicios
pcvsoft 6 14,122 Último mensaje 4 Enero 2008, 18:56 pm
por BeatLord
ayuda!!! No me sale una suma.
Programación Visual Basic
cneangel 4 3,044 Último mensaje 12 Octubre 2009, 22:44 pm
por cneangel
ayuda con suma
ASM
karmi 2 5,985 Último mensaje 18 Marzo 2011, 18:54 pm
por Eternal Idol
Algoritmo: Suma N numeros pares implementando ciclo while
Programación C/C++
LauraD 6 24,395 Último mensaje 12 Abril 2014, 16:07 pm
por leosansan
Ayuda suma en TASM
ASM
BetoRoGa 1 4,170 Último mensaje 18 Octubre 2015, 06:31 am
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines