daily pastebin goal
85%
SHARE
TWEET

Fracciones.java

alduncin Feb 10th, 2012 307 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Fracciones.java
  2. //package carpeta;
  3.  
  4. import java.util.*;
  5. public class Fracciones
  6. {
  7.     private int numerador, denominador;
  8.     public Fracciones (String dato)
  9.     {
  10.         if(dato.indexOf("/") >= 0)
  11.             {
  12.                 //entra cuando hay un slash en el string
  13.                 this.numerador=Integer.parseInt(dato.substring(0,dato.indexOf("/")));
  14.                 this.denominador=Integer.parseInt(dato.substring(dato.indexOf("/")+1));
  15.             }
  16.         else
  17.             {
  18.  
  19.                 this.numerador=Integer.parseInt(dato);
  20.                 this.denominador=1;
  21.             }  
  22.     }
  23.     public Fracciones()
  24.     {  
  25.     this.numerador=0;
  26.     this.denominador=1;
  27.     }
  28.     public Fracciones (final int n)
  29.     {
  30.         this.numerador=n;
  31.         this.denominador=1;
  32.     }  
  33.     public Fracciones(final int n, final int d)
  34.     {
  35.         if(d==0)
  36.     {
  37.             System.out.println("Error el denominador no puede ser cero");
  38.         return;
  39.     }
  40.         this.numerador=n;
  41.         this.denominador=d;
  42.     }
  43.    
  44.  
  45.     public static Fracciones suma( Fracciones f1 ,Fracciones f2)
  46.     {
  47.         int numerador,denominador;
  48.         numerador =(f1.GetNumerador()*f2.GetDenominador())+
  49.             (f2.GetNumerador()*f1.GetDenominador());
  50.         denominador =f1.GetDenominador()*f2.GetDenominador();
  51.         return new Fracciones(numerador,denominador);    
  52.     }
  53.     public static Fracciones resta( Fracciones f1, Fracciones f2)
  54.     {
  55.         int numerador,denominador;
  56.         numerador=(f1.GetNumerador()*f2.GetDenominador())-
  57.             (f2.GetNumerador()*f1.GetDenominador());
  58.         denominador= f1.GetDenominador()*f2.GetDenominador();
  59.         return new Fracciones(numerador,denominador);    
  60.     }
  61.     public static Fracciones  multiplicacion( Fracciones f1,Fracciones f2)
  62.     {
  63.         int numerador,denominador;
  64.         numerador=f1.GetNumerador()*f2.GetNumerador();
  65.         denominador=f1.GetDenominador()*f2.GetDenominador();
  66.         return new Fracciones(numerador,denominador);
  67.     }
  68.     public static Fracciones division( Fracciones f1,Fracciones f2)
  69.     {
  70.         int numerador,denominador;
  71.         numerador=f1.GetNumerador()*f2.GetDenominador();
  72.         denominador=f1.GetDenominador()*f2.GetNumerador();
  73.         return new Fracciones(numerador,denominador);
  74.     }
  75.  
  76.     public void simpli()
  77.     {
  78.         //simplificacion...    
  79.         int a,b,mod;
  80.         if(this.numerador%this.denominador == 0)
  81.             {
  82.             this.numerador=this.numerador/this.denominador;
  83.             this.denominador=1;
  84.             }
  85.         if(this.numerador>this.denominador)
  86.             {
  87.                 a=this.numerador;
  88.                 b=this.denominador;
  89.             }
  90.         else
  91.             {
  92.                 a=this.denominador;
  93.                 b=this.numerador;
  94.             }
  95.         while(b != 0)
  96.             {
  97.                 mod=a%b;
  98.                 a=b;
  99.                 b=mod;
  100.             }  
  101.         this.denominador=this.denominador/a;
  102.         this.numerador=this.numerador/a;
  103.     }  
  104.  
  105.     public void printf()
  106.     {
  107.         System.out.print(this.numerador+((this.denominador==1)?" ":"/"+this.denominador));  
  108.     }
  109.     public int  GetNumerador()
  110.     {
  111.         return numerador;
  112.     }
  113.     public int GetDenominador()
  114.     {
  115.         return denominador;
  116.     }
  117.  
  118.  
  119.  
  120.  
  121.  
  122.     //main    
  123.     public static void main (String args[])
  124.     {
  125.         Scanner  lector = new Scanner(System.in);
  126.        
  127.         System.out.print("Fraccion n/d o tu numero : ");
  128.        
  129.         String dato;
  130.        
  131.         dato=lector.next();    
  132.  
  133.         Fracciones a = new Fracciones (dato);
  134.  
  135.         //Fracciones b;
  136.         System.out.print("Fraccion o num n/d ");
  137.         dato=lector.next();
  138.  
  139.         Fracciones b = new Fracciones (dato);
  140.  
  141.         Fracciones c = new Fracciones ();
  142.         System.out.println("\n ");
  143.         a.printf();
  144.         System.out.print(" + ");
  145.         b.printf();
  146.         System.out.print(" = ");
  147.         //      c.suma(a,b);
  148.         c = Fracciones.suma(a,b);
  149.         c.printf();
  150.         System.out.print(" es = ");
  151.         c.simpli();
  152.         c.printf();
  153.         System.out.println(" ");
  154.         //resta
  155.         a.printf();
  156.         System.out.print( " - ");
  157.         b.printf();
  158.         System.out.print(" = ");
  159.         //c.resta(a,b);
  160.         c= Fracciones.resta(a,b);
  161.         c.printf();
  162.         System.out.print(" es = ");
  163.         c.simpli();
  164.         c.printf();
  165.         //parametros originales del objeto .-.
  166.         System.out.println(" ");
  167.  
  168.         a.printf();                                                    
  169.         System.out.print(" * ");
  170.         b.printf();
  171.         System.out.print(" = ");
  172.         //c.multiplicacion(a,b);
  173.         c=Fracciones.multiplicacion(a,b);
  174.         c.printf();
  175.         c.simpli();
  176.         System.out.print(" es = ");
  177.         c.printf();
  178.         System.out.println(" ");
  179.         //._.
  180.         a.printf();
  181.         System.out.print(" / ");
  182.         b.printf();
  183.         System.out.print(" = ");
  184.         //c.division(a,b);
  185.         c= Fracciones.division(a,b);
  186.         c.printf();
  187.         c.simpli();
  188.         System.out.print(" es = ");
  189.         c.printf();
  190.         System.out.print("  ");
  191.         //multiplicar restar dividir D:
  192.     }
  193. }
RAW Paste Data
Top