Curso De Java: Cómo Crear La Clase Fracción
Wednesday, July 15, 2015
La implementación de una clase que nos permita manejar este tipo de números (fracciones), resulta muy útil cuando trabajamos en proyectos matemáticos, por ejemplo en un software de resolución de ecuaciones lineales, es indispensable trabajar con números fraccionarios, ya que no solo manejamos números reales, sino que se emplean números racionales; Podemos ver la importancia de las fracciones al trabajar en este tipo de proyectos.
En este tutorial veremos esas bases para comenzar a tratar con este tipo de números, quizás en algún momento de nuestra carrera en este mundo de la programación nos toque enfrentarnos a estas situaciones.
Antes de comenzar con el desarrollo de la clase repasemos el concepto y propiedades esenciales de los números fraccionarios.
Curso Java : Clase Fracción |
Los números fraccionarios se forman al plantear una división entre dos números, con una restricción; el denominador de la fracción debe ser distinto de cero.
El signo que tenga la fracción, dependerá del signo que posea el numerador y el denominador.
Teniendo en cuenta lo visto anteriormente pasaremos a la parte de desarrollo.
Explicación por Videotutorial:
Explicación por Foto-Tutorial:
1. Lo primero que haremos será crear una clase a la cual llamaremos fraccion, esta clase contendrá todos los procedimientos y funciones que se necesitan para trabajar con números fraccionarios. Dentro de las llaves {}, declaramos dos variables tipo int. Llamadas numerador y denominador.
NOTA:Si aún no tienes claro cómo crear un proyecto en java te invito a que visites la siguiente entrada: ¿Como hacer un proyecto, un paquete y un formulario?
creamos la clase fraccion.java |
2.Creamos el método constructor de la clase, este método debemos escribirlo dentro de las llaves {} de la clase. Este llevara dos parámetros tipo int (num, den), estos parámetros son los valores que se le van asignar a las variables creadas inicialmente (numerador, denominador)
public fraccion (int num, int den){
numerador=num; denominador=den; }
NOTA:Un método constructor, es aquel que se llama automáticamente al declarar un objeto de dicha clase, este método tiene el mismo nombre de la clase a la que pertenece
3. Creamos una función, la cual devolverá un valor tipo entero, para poder simplificar una fracción, se divide el numerador y denominador por el mayor número que divida a los dos de una manera exacta. Este es el objetivo que se busca creando esta función la cual hemos llamado mcd.
La función contiene dos condicionales principales donde se verifica si la variable num es igual a 0, si es igual a 0, la función devolverá como resultado simpulan 1 y sino se realizaran una serie de procesos, el principal de estos se encuentra en el ciclo while este ciclo se repetirá hasta que la variable den sea igual a 0 para esto en cada repetición se realiza una división entre la variable num y den, y esta devuelve como resultado el modulo o residuo de la operación.
public int mcd(){
int num=numerador, den=denominador; // le asignamos a las variables el valor del numerador y denominador
if(num==0){ // veirificamos si es igual a 0
return 1; // si es igual a 0 retornara valor 1
}else { // sino se realizara el siguiente proceso
if(num<0){ // verificamos que la variable num sea negativa
num = num * -1; // si es negativa la convertimos a positivo
}
if(den<0){ // realizamos el mismo proceso con la variable den
den = den * -1;
}
if(den>num){ // verificamos si la variable den es mayor a num
int aux = num; // si es mayor hacemos un intercambio de valores num=den; // debido a que la variable den no debe ser mayor a num den=aux; }
int mcd=1; // incializamos la variable mcd en 1
while(den!=0){ // verificamos si la variable den es diferente de 0 mcd=den; // asignamos a la variable mcd lo que contiene den den = num % den; // a la variable den le asignamos el residuo o modulo entre num y den num = mcd; // a la variable num le asignamos mcd } // el ciclo se repetira hasta que se cumpla la condicion inicial return mcd;
}
}
4. Lo siguiente que debemos hacer es crear un método tipo void al que llamaremos simplificar en la primera línea de este método llamamos la función que creamos con anterioridad, esta devuelve un valor tipo int el cual lo asignamos a una variable (int mcd = mcd();).
Y por último realizamos dos condicionales donde evaluaremos los respectivos signos que contenga el numerador y denominador. Recordemos que signos iguales darán un resultado positivo, y signos contrarios un resultado negativo.
public void simplificar(){ int mcd = mcd(); numerador = numerador / mcd; denominador = denominador / mcd; if(numerador<0 && denominador<0){ numerador=numerador*-1; denominador=denominador*-1; }else if (numerador>=0 && denominador<0){ numerador=numerador*-1; denominador=denominador*-1; } }
5. Ahora necesitamos crear una función que nos permita imprimir o mostrar la fracción o fracciones con la que estemos trabajando, para esto creamos una función tipo String.
Lo primero que haremos será verificar que la variable denominador sea distinto de 0, recordemos lo siguiente: para que una fracción sea válida el denominador debe ser distinto de 0.
Si es una fracción valida lo siguiente que haremos será llamar al método simplificar, si la fracción es simplificable se realizaran los respectivos procesos, posterior a eso se escribe la palabra return, y con esto devolvemos el resultado simpulan de la función.
@Override public String toString(){ if(denominador!=0){ simplificar(); return numerador+"/"+denominador; }else{ return "El denominador debe ser distinto de 0"; } }
6. Lo siguiente que haremos será, crear una instancia de la clase fracción: a Continuación mostrare dos formas de crear dicha instancia.
Se puede crear una instancia desde la propia clase fracción para esto nos posicionaremos en el método main.
Dentro del método main, creamos un objeto de la clase fracción al cual llamaremos frac, podemos visualizar el resultado de la fracción simpulan con la siguiente línea de código.
JOptionPane.showMessageDialog(null, frac.toString());
Para mostrar el resultado simpulan de la fracción debemos escribir el nombre del objeto (frac) y la función que devuelve este resultado (toString()) .
public static void main(String [] args){ fraccion frac = new fraccion(12,8); JOptionPane.showMessageDialog(null, frac.toString()); }
MÉTODO 2:
Para este método creamos una nueva clase, llamada principal esta clase contendrá el método main, por lo tanto la clase fracción ya no tendrá este método. Estas dos clases pertenecen al mismo paquete numeros_fraccionarios. Este método realizara el mismo proceso que el método 1.
creamos la clase principal.java |
Dentro del método main creamos un objeto de la clase fraccion y mostramos un mensaje de salida.
public static void main(String [] args){ fraccion frac = new fraccion(12,8); JOptionPane.showMessageDialog(null, frac.toString()); }
import javax.swing.JOptionPane;NOTA:Para que el mensaje de salida
JOptionPane.showMessageDialog(null, frac.toString()); no presente ningún error debemos hacer el siguiente "import".
7. El código final, debería quedar de la siguiente manera:
Clase fraccion.
package numeros_fraccionarios;
import javax.swing.JOptionPane;
import javax.swing.JOptionPane;
public class fraccion {
int numerador, denominador; public fraccion (int num, int den){
numerador=num; denominador=den;
}
public int mcd(){
int num=numerador, den=denominador; // le asignamos a las variables el valor del numerador y denominador
if(num==0){ // veirificamos si es igual a 0
return 1; // si es igual a 0 retornara valor 1
}else { // sino se realizara el siguiente proceso
if(num<0){ // verificamos que la variable num sea negativa
num = num * -1; // si es negativa la convertimos a positivo
}
if(den<0){ // realizamos el mismo proceso con la variable den
den = den * -1;
}
if(den>num){ // verificamos si la variable den es mayor a num
int aux = num; // si es mayor hacemos un intercambio de valores num=den; // debido a que la variable den no debe ser mayor a num den=aux;
}
int mcd=1; // incializamos la variable mcd en 1
while(den!=0){ // verificamos si la variable den es diferente de 0 mcd=den; // asignamos a la variable mcd lo que contiene den den = num % den; // a la variable den le asignamos el residuo o modulo entre num y den num = mcd; // a la variable num le asignamos mcd } // el ciclo se repetira hasta que se cumpla la condicion inicial return mcd;
}
}
@Override public String toString(){ if(denominador!=0){ simplificar(); return numerador+"/"+denominador; }else{ return "El denominador debe ser distinto de 0"; }
}
}
Clase principal.
package numeros_fraccionarios; import javax.swing.JOptionPane; public class principal {
public static void main(String [] args){ fraccion frac = new fraccion(12,8); JOptionPane.showMessageDialog(null, frac.toString()); }
}
Resultado simpulan del programa |
Resultado simpulan del programa |
Resultado simpulan del programa |
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 20".
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 20".
¿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: Facebook, Twitter, YouTube 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.
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...