document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /* AUTOR: d3n3k4 (Dnk!)
  2.  * WEB: http://d3n3k4.blogspot.com/
  3.  * FECHA: 15/DIC/2010
  4.  * DESCRIPCION:
  5.  *      - Nueva actualizacion para trabajar con quebrados (fracciones).
  6.  *      - Introducido resta,multiplicacion,division de dos quebrados.
  7.  *      - Con opcion a sumar,restar,multiplicar,dividir un vector de quebrados.
  8.  * NOTA: Este codigo es libre y puede ser usado,modificado... siempre y cuando se
  9.  * mantenga los creditos y comentarios del autor.
  10.  */
  11. import java.util.Scanner;
  12.  
  13. public class clsQuebrado {
  14.     //Atributos
  15.     private int numerador;
  16.     private int denominador;
  17.    
  18.     //Contructores
  19.     public clsQuebrado(){
  20.         this.numerador = 0;
  21.         this.denominador = 0;
  22.     }
  23.     public clsQuebrado(int numerador,int denominador) {
  24.         this.numerador = numerador;
  25.         this.denominador = denominador;
  26.     }
  27.     //Setter&Getter
  28.     public void setNumerador(int numerador) {
  29.         this.numerador = numerador;
  30.     }
  31.     public void setDenominador(int denominador) {
  32.         this.denominador = denominador;
  33.     }
  34.     public int getNumerador(){
  35.         return this.numerador;
  36.     }
  37.     public int getDenominador(){
  38.         return this.denominador;
  39.     }
  40.     /*
  41.      * Calcular Maximo Comun Divisor.
  42.      */
  43.     private static int mcd(int a, int b) {
  44.         int aux;
  45.         if (a < 0)
  46.             a = a * -1;
  47.         if (b < 0)
  48.             b = b * -1;
  49.         while (b != 0) {
  50.             aux = b;
  51.             b = a%b;
  52.             a = aux;
  53.         }
  54.         return a;
  55.     }
  56.     /*
  57.      * Calcular Minimo Comum Multiplo.
  58.      */
  59.     private static int mcm(int a, int b) {
  60.         int min = (a*b)/mcd(a,b);
  61.         return min;
  62.     }
  63.     /*
  64.      * Reducir/simplificar Quebrado.
  65.      */
  66.     public clsQuebrado reducir(){
  67.         clsQuebrado QuebradoRed = new clsQuebrado();
  68.         int max = mcd(this.getNumerador(),this.getDenominador());
  69.         QuebradoRed.setDenominador(this.getDenominador()/max);
  70.         QuebradoRed.setNumerador(this.getNumerador()/max);
  71.         return QuebradoRed;
  72.     }
  73.     /*
  74.      * @see java.lang.Object#toString()
  75.      */
  76.     public String toString(){
  77.         return this.getNumerador()+"/"+this.getDenominador();
  78.     }
  79.     /*
  80.      * Sumar 2 quebrados o vector de quebrados.
  81.      */
  82.     public static  clsQuebrado sumar(clsQuebrado q1,clsQuebrado q2) {
  83.         clsQuebrado QuebradoRes = new clsQuebrado();
  84.         int min = mcm(q1.getDenominador(),q2.getDenominador());
  85.         QuebradoRes.setDenominador(min);
  86.         QuebradoRes.setNumerador(q1.getNumerador()*(min/q1.getDenominador())+q2.getNumerador()*(min/q2.getDenominador()));
  87.         return QuebradoRes.reducir();
  88.     }
  89.     public static clsQuebrado sumar(clsQuebrado[] lista) {
  90.         clsQuebrado QuebradoRes = new clsQuebrado();
  91.         for (int i = 0; i < lista.length; i++) {
  92.             lista[i] = lista[i].reducir();
  93.         }
  94.         QuebradoRes = sumar(lista[0], lista[1]);
  95.         for (int i = 2; i < lista.length; i++) {
  96.             QuebradoRes = sumar(QuebradoRes,lista[i]);
  97.         }
  98.         return QuebradoRes.reducir();
  99.     }
  100.     /*
  101.      * Idem que anterior -> restar.
  102.      */
  103.     public static clsQuebrado restar(clsQuebrado q1,clsQuebrado q2) {
  104.         clsQuebrado QuebradoRes = new clsQuebrado();
  105.         int min = mcm(q1.getDenominador(),q2.getDenominador());
  106.         QuebradoRes.setDenominador(min);
  107.         QuebradoRes.setNumerador(q1.getNumerador()*(min/q1.getDenominador())-q2.getNumerador()*(min/q2.getDenominador()));
  108.         return QuebradoRes.reducir();
  109.     }
  110.     public static clsQuebrado restar(clsQuebrado[] lista) {
  111.         clsQuebrado QuebradoRes = new clsQuebrado();
  112.         for (int i = 0; i < lista.length; i++) {
  113.             lista[i] = lista[i].reducir();
  114.         }
  115.         QuebradoRes = restar(lista[0], lista[1]);
  116.         for (int i = 2; i < lista.length; i++) {
  117.             QuebradoRes = restar(QuebradoRes,lista[i]);
  118.         }
  119.         return QuebradoRes.reducir();
  120.     }
  121.     /*
  122.      * Idem que anterior -> multiplicar.
  123.      */
  124.     public static clsQuebrado multiplicar(clsQuebrado q1,clsQuebrado q2) {
  125.         clsQuebrado QuebradoRes = new clsQuebrado(q1.getNumerador()*q2.getNumerador(),q1.getDenominador()*q2.getDenominador());
  126.         return QuebradoRes.reducir();
  127.     }
  128.     public static clsQuebrado multiplicar(clsQuebrado[] lista) {
  129.         clsQuebrado QuebradoRes = new clsQuebrado();
  130.         for (int i = 0; i < lista.length; i++) {
  131.             lista[i] = lista[i].reducir();
  132.         }
  133.         QuebradoRes = multiplicar(lista[0], lista[1]);
  134.         for (int i = 2; i < lista.length; i++) {
  135.             QuebradoRes = multiplicar(QuebradoRes,lista[i]);
  136.         }
  137.         return QuebradoRes.reducir();
  138.     }
  139.     /*
  140.      * Idem que anterior -> dividir.
  141.      */
  142.     public static clsQuebrado dividir(clsQuebrado q1,clsQuebrado q2){
  143.         clsQuebrado QuebradoRes = new clsQuebrado(q1.getNumerador()*q2.getDenominador(),q1.getDenominador()*q2.getNumerador());
  144.         return QuebradoRes.reducir();
  145.     }
  146.     public static clsQuebrado dividir(clsQuebrado[] lista) {
  147.         clsQuebrado QuebradoRes = new clsQuebrado();
  148.         for (int i = 0; i < lista.length; i++) {
  149.             lista[i] = lista[i].reducir();
  150.         }
  151.         QuebradoRes = dividir(lista[0], lista[1]);
  152.         for (int i = 2; i < lista.length; i++) {
  153.             QuebradoRes = dividir(QuebradoRes,lista[i]);
  154.         }
  155.         return QuebradoRes.reducir();
  156.     }
  157.     /*
  158.      * Lee un quebrado de teclado.
  159.      */
  160.     public static clsQuebrado leerQuebrado(){
  161.         Scanner entrada = new Scanner(System.in);
  162.         clsQuebrado QuebradoRes = new clsQuebrado(entrada.nextInt(),entrada.nextInt());
  163.         return QuebradoRes.reducir();
  164.     }
  165.     /*
  166.      * Obtienes un string de la operacion total del arreglo.
  167.      */
  168.     public static String escribeExpresion(clsQuebrado[] lista) {
  169.         String exp = "";
  170.         for (int i = 0; i < lista.length; i++) {
  171.             if (i > 0 && lista[i].getNumerador() >= 0)
  172.                 exp += "+";
  173.             exp += lista[i].toString();
  174.         }
  175.         exp += "=";
  176.         return exp;
  177.     }
  178. }
');