Advertisement
fmbalvarez

Guía 2 - Fraccion y SumaFracciones

May 11th, 2015
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.06 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.IllegalFormatCodePointException;
  5. import java.util.StringTokenizer;
  6.  
  7. /**
  8.  * Created by felipealvarez on 11/5/15.
  9.  * 1. Escribir una función para solicitarle al usuario que ingrese una fracción por
  10.  teclado, con las siguientes especificaciones:
  11.  Debe solicitar que ingrese primero el numerador y luego el denominador,
  12.  validando que los datos ingresados se puedan convertir a enteros (Usar
  13.  Integer.parseInt). Si los datos ingresados son inválidos, porque no se
  14.  pueden convertir a enteros debe mostrar el mensaje correspondiente por pantalla
  15.  y pedirle al usuario que los ingrese nuevamente.
  16.  Debe devolver la fracción creada con los datos ingresados.
  17.  2. Modificar el constructor de Fraccion para que lance la excepción
  18.  IllegalArgumentException en el caso que el denominador sea 0 con
  19.  un mensaje comprensible para el usuario.
  20.  3. Modificar la función del punto 1 para que maneje también la excepción
  21.  agregada al constructor y que en el caso que el constructor la lance
  22.  reemplace el denominador por 1
  23.  4. Escribir un programa para probar la clase Fraccion, con las siguientes
  24.  especificaciones:
  25.  Debe solicitar al usuario que ingrese dos fracciones con la función del punto
  26.  anterior, sumarlas y mostrar el resultado simplificado.
  27.  
  28.  
  29.  if (this.denominador == 0){
  30.  throw new IllegalArgumentException("El denominador no puede ser cero");
  31.  }
  32.  */
  33.  
  34. public class Fraccion {
  35.  
  36.     private int numerador;
  37.     private int denominador;
  38.  
  39.     /**
  40.      * pre: ingresar numerador y denominador separados por una coma
  41.      */
  42.     public Fraccion() throws IOException {
  43.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  44.         String leido = reader.readLine();
  45.         StringTokenizer tokenizer = new StringTokenizer(leido,",");
  46.         String aux[] = new String[2];
  47.         int i = 0;
  48.         while (tokenizer.hasMoreElements()){
  49.             aux[i] = tokenizer.nextToken();
  50.             i++;
  51.         }
  52.         try{
  53.             this.numerador = Integer.parseInt(aux[0]);
  54.             this.denominador = Integer.parseInt(aux[1]);
  55.         } catch (NumberFormatException n){
  56.             System.out.println("Los datos ingresados no pueden ser convertidos a enteros");
  57.         }
  58.         try{
  59.             if (this.denominador == 0){
  60.                 throw new IllegalArgumentException("El denominador no puede ser cero. Se modifico a 1 automaticamente.");
  61.             }
  62.         } catch (IllegalArgumentException l){
  63.             this.denominador = 1;
  64.             System.out.println(l.getMessage());
  65.         }
  66.         System.out.println(this.numerador + "/" + this.denominador);
  67.     }
  68.  
  69.     public int getNumerador() {
  70.         return numerador;
  71.     }
  72.  
  73.     public int getDenominador() {
  74.         return denominador;
  75.     }
  76.  
  77.  
  78. }
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86. /**
  87.  * Created by felipealvarez on 11/5/15.
  88.  *  4. Escribir un programa para probar la clase Fraccion, con las siguientes
  89.  especificaciones:
  90.  Debe solicitar al usuario que ingrese dos fracciones con la función del punto
  91.  anterior, sumarlas y mostrar el resultado simplificado.
  92.  */
  93. public class SumaFracciones {
  94.  
  95.     private Fraccion f1;
  96.     private Fraccion f2;
  97.  
  98.     public SumaFracciones(Fraccion f1, Fraccion f2) {
  99.         this.f1 = f1;
  100.         this.f2 = f2;
  101.     }
  102.  
  103.     public void sumar(){
  104.         int numResultado = ((f1.getNumerador()*f2.getDenominador() + (f1.getDenominador()*f2.getNumerador())));
  105.         int denResultado = (f1.getDenominador()*f2.getDenominador());
  106.         if (numResultado%denResultado == 0){
  107.             int min = Math.min(numResultado,denResultado);
  108.             numResultado = (numResultado/min);
  109.             denResultado = (denResultado/min);
  110.         }
  111.         System.out.println(numResultado + "/" + denResultado);
  112.     }
  113. }
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121. public class Main {
  122.  
  123.     public static void main(String[] args){
  124.  
  125.     Fraccion f = new Fraccion();
  126.         Fraccion f2 = new Fraccion();
  127.         SumaFracciones s = new SumaFracciones(f,f2);
  128.         s.sumar();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement