Para solicitar desarrollo de software y/o aplicaciones personalizadas, escríbenos al formulario de contacto




Breaking News





¡BUSCA MÁS CONTENIDO AQUÍ!

Curso de JAVA: Como sumar, restar, multiplicar y dividir fracciones




En el presente POST estaremos estudiando las operaciones con números fraccionarios, resulta muy útil cuando trabajamos en proyectos de software matemáticos, haciendo uso de una clase que nos permitirá manejar este tipo de números y aplicar las operaciones matemáticas básicas como lo son: suma, resta, multiplicación y división.

En este tutorial estudiaremos el proceso de creación de las funciones que nos permitirá realizar operaciones entre números fraccionarios, te recomiendo que visites la siguiente entrada, Cómo crear la clase fracción  donde creamos la clase fracción en java desde 0, aquí encontrara lo atributos y métodos que se necesitan para crear números fraccionarios.

Te comparto un software desarrollado en Java donde se implementa la clase fracción Calculator EC.

No siendo mas comencemos!!!


operaciones con fracciones en java
operaciones con fraccionarios java


Explicación por Videotutorial:





Explicación por Foto-Tutorial:

Estaremos trabajando sobre dos clases, la clase fraccion.java esta clase contendrá las funciones que estaremos creando y atributos esenciales para trabajar con fracciones y la clase   operacionesConFraccionarios.java esta será nuestra clase principal, donde llamaremos las funciones para realizar las operaciones.

1.  Antes de comenzar con la creación de la función sumar estaremos repasando el método que utilizaremos para resolver la suma entre dos fracciones, es importante que comprendamos el proceso de resolución para así tener una mejor comprensión cuando estemos creando la función. 

Para sumar dos números fraccionarios aplicaremos el método de multiplicación en cruz.
método multiplicación en cruz
multiplicación en cruz
Por ejemplo, tenemos.
Multiplicamos el numerador de la primera fracción(1) por el denominador de la segunda fracción(5) el resultado de esta multiplicación es 5, igualmente multiplicamos el denominador de la primera fracción(2) por el numerador de la segunda fracción(3) el resultado de esta multiplicación es 6. Por ultimo multiplicamos ambos denominadores 2 y 5 obtendremos un resultado de 10.  



Al sumar los números que tenemos del lado de numerador(5+6) nos daría un resultado de 11 por lo tanto el resultado final de la fracción seria.


suma de dos números fraccionarios haciendo uso de la clase fraccion.java

Teniendo en cuenta el método de resolución de multiplicación en cruz al sumar números fraccionarios procederemos con la creación de la función sumar

Creamos una función de tipo fraccion la cual llevara como parámetro una variable de tipo fraccion llamada f1, encerraremos las líneas de código dentro de un bloque try{} catch(Exception ex){}, esto lo hacemos con el fin de capturar los posibles errores que puedan presentarse en la ejecución de la función.

En la parte del try{}, ira todo el código que deseamos ejecutar en este caso serán las operaciones para realizar la suma entre una fracción A y otra B.

Creamos un objeto(aux) de la clase fraccion.java. Al crear una instancia de la clase fraccion, esta nos pide como parámetro dos valores de tipo entero haciendo referencia al numerador y denominador.

fraccion aux = new fraccion(numerador*f1.denominador+denominador*f1.numerador, denominador*f1.denominador);

En la línea de código anterior estamos realizando la operación de sumar dos números fraccionarios.

numerador*f1.denominador+denominador*f1.numerador


En la primera sección realizamos la operación que determinara el valor del numerador, para esto multiplicamos en cruz, multiplicamos el numerador de la primera fracción por el denominador de la segunda. Igualmente multiplicamos el denominador de la primera fracción por el numerador de la segunda, por ultimo sumamos ambos productos y así determinaremos el valor final del numerador. 

denominador*f1.denominador

En la segunda sección realizamos la operación que determinara el valor del denominador, para esto multiplicaremos el denominador de la primera fracción por el denominador de la segunda, y de esta manera obtendremos el valor final del denominador.
Por último y si no hubo errores en la ejecución del código, se ejecutara la línea de código que nos permitirá simplificar la fracción, llamaremos al método simplificar(si deseas saber cómo crear esta método te recomiendo visitar el siguiente post Cómo crear la clase fracción) y de esta manera obtendremos el resultado final de la operación. 

public fraccion sumar(fraccion f1){
    
    try{
          fraccion aux = new fraccion(numerador*f1.denominador+denominador*f1.numerador, denominador*f1.denominador);
          aux.simplificar();
          return aux;
        }catch(Exception ex){
            System.out.println(ex);
            return null;
        }
        
}


2. Lo siguiente que realizaremos será la función restar a la cual le aplicaremos el anterior método de resolución que es la multiplicación en cruz solo debemos tener en cuenta que el signo de la operación cambiara, si realizamos el ejemplo anterior, quedaría de la siguiente manera.  

resta de dos fracciones haciendo uso de la clase fraccion.java


Creamos la función restar la cual tendrá prácticamente la misma estructura que la anterior, lo único diferente que tiene esta función es el signo menos, ya que aquí estaremos restando las fracciones.  

public fraccion restar(fraccion f1){
    
    try{
          fraccion aux = new fraccion(numerador*f1.denominador-(denominador*f1.numerador), denominador*f1.denominador);
          aux.simplificar();
          return aux;
        }catch(Exception ex){
            System.out.println(ex);
            return null;
        }
        
}

3. La siguiente función que crearemos será la que nos permita realizar una multiplicación entre dos números fraccionarios para esto debemos tener en cuenta el método de resolución que aplicaremos.

Para multiplicar dos números fraccionarios debemos multiplicar el numerador de la primera fracción por el numerador de la segunda fracción, igualmente debemos multiplicar ambos denominadores.




Por ejemplo, si tenemos:




Multiplicamos el numerador de la Fracción 1 (3) por el numerador de la Fracción 2(5) obtendremos un total de 15, igualmente multiplicamos ambos denominadores el resultado seria 6.

Multiplicación de fraccionarios haciendo uso de la clase fraccion.java
multiplicación de fraccionarios


El resultado al multiplicar ambas fracciones seria 15/6, al simplificar la fracción el resultado final seria 5/2.

Una vez aclarado el proceso de resolución de la operación pasaremos a la creación de la función.

La estructura de la función es similar a las dos anteriores que ya hemos visto, tenemos en un bloque try catch las operaciones que realizaremos, iniciamos creando un objeto de tipo fraccion el cual almacenara el resultado final de la multiplicación entre las fracciones.



fraccion aux = new fraccion(numerador*f1.numerador, denominador*f1.denominador);


En la sección del numerador(numerador*f1.numerador) multiplicamos los numeradores de ambas fracciones y de esta manera obtenemos el resultado del lado del numerador, en la sección del denominador(denominador*f1.denominador) multiplicaremos los denominadores de ambas fracciones.

Por ultimo llamaremos el método simplificar() y de esta manera obtener el resultado final de la operación. 

public fraccion multiplicar(fraccion f1){
    
    try{
          fraccion aux = new fraccion(numerador*f1.numerador, denominador*f1.denominador);
          aux.simplificar();
          return aux;
        }catch(Exception ex){
            System.out.println(ex);
            return null;
        }
        
}

4. Por ultimo crearemos la función dividir,  el método de resolución de esta operación consiste en realizar una multiplicación en cruz, en el cual multiplicamos el numerador de la fracción 1 por el denominador de la fracción 2, el resultado que obtengamos ira del lado del numerador. igualmente multiplicamos el denominador de la fracción 1 por el numerador de la fracción 2, el resultado que obtengamos de este producto ira del lado del denominador.



método para dividir dos números fraccionarios
método para dividir fracciones


Por ejemplo:
dividir dos números fraccionarios, haciendo uso de la clase fraccion.java
Dividimos las fracciones

Multiplicamos el numerador de la fracción 1 (1) por el denominador de la fracción 2 (4), esto sería igual a 4. Igualmente realizamos la multiplicación entre el denominador de la fracción 1 (3) y el numerador de la fracción 2 (15), el resultado final al dividir estas dos fracciones seria de 4/15.

Aplicando este método de resolución pasaremos a la creación de a función la cual llevara la misma estructura de las que ya hemos trabajado anteriormente.

Solamente cambiaremos la línea de código donde creamos el objeto aux, dentro de los parámetros que este requiere haremos las operaciones, en la sección del numerador(numerador*f1.denominador) multiplicamos el numerador de la primera fracción por el denominador de la segunda. Igualmente en la sección del denominador(denominador*f1.numerador) realizamos la multiplicación respectiva.

El resto de líneas de código quedaran iguales como lo hemos hecho en las otras funciones.


fraccion aux = new fraccion(numerador*f1.denominador, denominador*f1.numerador);

El código final de la función dividir quedaría de la siguiente manera. 
public fraccion dividir(fraccion f1){
    
    try{
          fraccion aux = new fraccion(numerador*f1.denominador, denominador*f1.numerador);
          aux.simplificar();
          return aux;
        }catch(Exception ex){
            System.out.println(ex);
            return null;
        }
        
}

5.Una vez hayamos creado todas las funciones, iremos a la clase principal OperacionesConFraccionarios.java en la cual realizaremos las operaciones, lo primero que haremos será  crear, los objetos que contendrán los valores de las fracciones y por ultimo llamamos las funciones de suma, resta, multiplicación y división e imprimimos un mensaje de salida.


package operacionesconfraccionarios;

public class OperacionesConFraccionarios {

    public static void main(String[] args) {

        fraccion F1 = new fraccion(1, 2);
        fraccion F2 = new fraccion(-3, 2);
        
        System.out.println(F1.sumar(F2));
        System.out.println(F1.restar(F2));
        System.out.println(F1.multiplicar(F2));
        System.out.println(F1.dividir(F2));                        
        
    }
    
}


6.Las clases quedarían de la siguiente manera.

 
Clase fraccion.java
package operacionesconfraccionarios;

public class fraccion {
    
    int numerador, denominador;

    public fraccion (int num, int den){
    
        numerador=num;
        denominador=den;
    
    }
    
    public int getNumerador(){
        return numerador;
    }
    
    public int getDenominador(){
        return denominador;
    }
    
    
    public fraccion sumar(fraccion f1){
    
        try{
        fraccion aux = new fraccion(numerador*f1.denominador+denominador*f1.numerador, denominador*f1.denominador);
        aux.simplificar();
        return aux;
        }catch(Exception ex){
            System.out.println(ex);
            return null;
        }
        
    }

    
    public fraccion restar(fraccion f1){
    
        try{
        fraccion aux = new fraccion(numerador*f1.denominador-(denominador*f1.numerador), denominador*f1.denominador);
        aux.simplificar();
        return aux;
        }catch(Exception ex){
            System.out.println(ex);
            return null;
        }
        
    
    }
    
    public fraccion multiplicar(fraccion f1){
    
        try{
        fraccion aux = new fraccion(numerador*f1.numerador, denominador*f1.denominador);
        aux.simplificar();
        return aux;
        }catch(Exception ex){
            System.out.println(ex);
            return null;
        }        
    
    }
    
 
    public fraccion dividir(fraccion f1){
    
        try{
        fraccion aux = new fraccion(numerador*f1.denominador, denominador*f1.numerador);
        aux.simplificar();
        return aux;
        }catch(Exception ex){
            System.out.println(ex);
            return null;
        }          
    
    }
    
    
    public int mcd(){
    
        int num=numerador, den=denominador;
        
        if(num==0){
            return 1;
        }else{
            
            if(num<0){
                num=num*-1; 
            }

            if(den<0){
                den = den * -1; 
            }
            
            
            if(den>num){
                int aux = num;
                num=den;
                den=aux;
            }
            
            int mcd=1;
                           
            while(den!=0){
                
                mcd=den;   
                den = num % den;  
                num = mcd;  
            
            }

            return mcd;
            
        }
         
    }
    
    
    public void simplificar(){
    
        int mcd = mcd();
        
        numerador = numerador / mcd;
        denominador = denominador / mcd;        
                
        if(numeradornum<0 && denominador<0){
        
            numerador=numerador*-1;         
            denominador=denominador*-1;            
        
        }else if (numerador >=0 && denominador>0){
            
            numerador=numerador*-1;         
            denominador=denominador*-1;              
        
        }
        
    
    }
    
    
    
    @Override
    public String toString(){
        
        if(denominador!=0){
        
                simplificar();
                if(denominador!=1){        
                    return numerador+"/"+denominador;
                }else{
                    return numerador+"";
                }
        }else{
            
            return "El denominador debe ser distinto de 0";
        
        }
        
    }
    
    
    
}



Clase OperacionesConFraccionarios.java
package operacionesconfraccionarios;

public class OperacionesConFraccionarios {

    public static void main(String[] args) {

        fraccion F1 = new fraccion(1, 2);
        fraccion F2 = new fraccion(-3, 2);
        
        System.out.println(F1.sumar(F2));
        System.out.println(F1.restar(F2));
        System.out.println(F1.multiplicar(F2));
        System.out.println(F1.dividir(F2));                        
        
    }
    
}



NOTA:
Resulta muy útil tener conocimiento previo de lo que se quiere hacer, por eso en este tutorial hemos hecho énfasis en la resolución de las operaciones teniendo en cuenta y conociendo los métodos que se aplicaran, para que de esa manera podamos tener una mejor comprensión en el desarrollo de las funciones.

Si tienes alguna  otra forma de implementar esta clase no dudes en compartirla, y así poder compartir opiniones sobre el tema.

Si deseas descargar el vídeo, junto con el código fuente del presente tema, sólo debes dirigirte a nuestra Zona de Descargas, y dar clic sobre el icono "Curso de JAVA Parte 22".

¿Quieres aprender a realizar aún más cosas y personalizar tus programas hechos en el lenguaje de programación JAVA?, si tu respuesta es "Sí", puedes acceder a todos los tips de JAVA que hemos estado publicando en este blog, dando clic aquí.
 
Suscríbete a nuestro blog, vía Email o RSS; además puedes seguirnos a través de nuestras redes sociales como: FacebookTwitterYouTube y Google+

Si te fue de gran ayuda este material, no olvides compartirlo con tus amigos. 
Si tienes dudas o sugerencias al respecto; puedes dejarnos tus comentarios.
Bendiciones...

No hay comentarios.