Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* AUTOR: d3n3k4 (Dnk!)
- * WEB: http://d3n3k4.blogspot.com/
- * FECHA: 15/DIC/2010
- * DESCRIPCION:
- * - Nueva actualizacion para trabajar con quebrados (fracciones).
- * - Introducido resta,multiplicacion,division de dos quebrados.
- * - Con opcion a sumar,restar,multiplicar,dividir un vector de quebrados.
- * NOTA: Este codigo es libre y puede ser usado,modificado... siempre y cuando se
- * mantenga los creditos y comentarios del autor.
- */
- import java.util.Scanner;
- public class clsQuebrado {
- //Atributos
- private int numerador;
- private int denominador;
- //Contructores
- public clsQuebrado(){
- this.numerador = 0;
- this.denominador = 0;
- }
- public clsQuebrado(int numerador,int denominador) {
- this.numerador = numerador;
- this.denominador = denominador;
- }
- //Setter&Getter
- public void setNumerador(int numerador) {
- this.numerador = numerador;
- }
- public void setDenominador(int denominador) {
- this.denominador = denominador;
- }
- public int getNumerador(){
- return this.numerador;
- }
- public int getDenominador(){
- return this.denominador;
- }
- /*
- * Calcular Maximo Comun Divisor.
- */
- private static int mcd(int a, int b) {
- int aux;
- if (a < 0)
- a = a * -1;
- if (b < 0)
- b = b * -1;
- while (b != 0) {
- aux = b;
- b = a%b;
- a = aux;
- }
- return a;
- }
- /*
- * Calcular Minimo Comum Multiplo.
- */
- private static int mcm(int a, int b) {
- int min = (a*b)/mcd(a,b);
- return min;
- }
- /*
- * Reducir/simplificar Quebrado.
- */
- public clsQuebrado reducir(){
- clsQuebrado QuebradoRed = new clsQuebrado();
- int max = mcd(this.getNumerador(),this.getDenominador());
- QuebradoRed.setDenominador(this.getDenominador()/max);
- QuebradoRed.setNumerador(this.getNumerador()/max);
- return QuebradoRed;
- }
- /*
- * @see java.lang.Object#toString()
- */
- public String toString(){
- return this.getNumerador()+"/"+this.getDenominador();
- }
- /*
- * Sumar 2 quebrados o vector de quebrados.
- */
- public static clsQuebrado sumar(clsQuebrado q1,clsQuebrado q2) {
- clsQuebrado QuebradoRes = new clsQuebrado();
- int min = mcm(q1.getDenominador(),q2.getDenominador());
- QuebradoRes.setDenominador(min);
- QuebradoRes.setNumerador(q1.getNumerador()*(min/q1.getDenominador())+q2.getNumerador()*(min/q2.getDenominador()));
- return QuebradoRes.reducir();
- }
- public static clsQuebrado sumar(clsQuebrado[] lista) {
- clsQuebrado QuebradoRes = new clsQuebrado();
- for (int i = 0; i < lista.length; i++) {
- lista[i] = lista[i].reducir();
- }
- QuebradoRes = sumar(lista[0], lista[1]);
- for (int i = 2; i < lista.length; i++) {
- QuebradoRes = sumar(QuebradoRes,lista[i]);
- }
- return QuebradoRes.reducir();
- }
- /*
- * Idem que anterior -> restar.
- */
- public static clsQuebrado restar(clsQuebrado q1,clsQuebrado q2) {
- clsQuebrado QuebradoRes = new clsQuebrado();
- int min = mcm(q1.getDenominador(),q2.getDenominador());
- QuebradoRes.setDenominador(min);
- QuebradoRes.setNumerador(q1.getNumerador()*(min/q1.getDenominador())-q2.getNumerador()*(min/q2.getDenominador()));
- return QuebradoRes.reducir();
- }
- public static clsQuebrado restar(clsQuebrado[] lista) {
- clsQuebrado QuebradoRes = new clsQuebrado();
- for (int i = 0; i < lista.length; i++) {
- lista[i] = lista[i].reducir();
- }
- QuebradoRes = restar(lista[0], lista[1]);
- for (int i = 2; i < lista.length; i++) {
- QuebradoRes = restar(QuebradoRes,lista[i]);
- }
- return QuebradoRes.reducir();
- }
- /*
- * Idem que anterior -> multiplicar.
- */
- public static clsQuebrado multiplicar(clsQuebrado q1,clsQuebrado q2) {
- clsQuebrado QuebradoRes = new clsQuebrado(q1.getNumerador()*q2.getNumerador(),q1.getDenominador()*q2.getDenominador());
- return QuebradoRes.reducir();
- }
- public static clsQuebrado multiplicar(clsQuebrado[] lista) {
- clsQuebrado QuebradoRes = new clsQuebrado();
- for (int i = 0; i < lista.length; i++) {
- lista[i] = lista[i].reducir();
- }
- QuebradoRes = multiplicar(lista[0], lista[1]);
- for (int i = 2; i < lista.length; i++) {
- QuebradoRes = multiplicar(QuebradoRes,lista[i]);
- }
- return QuebradoRes.reducir();
- }
- /*
- * Idem que anterior -> dividir.
- */
- public static clsQuebrado dividir(clsQuebrado q1,clsQuebrado q2){
- clsQuebrado QuebradoRes = new clsQuebrado(q1.getNumerador()*q2.getDenominador(),q1.getDenominador()*q2.getNumerador());
- return QuebradoRes.reducir();
- }
- public static clsQuebrado dividir(clsQuebrado[] lista) {
- clsQuebrado QuebradoRes = new clsQuebrado();
- for (int i = 0; i < lista.length; i++) {
- lista[i] = lista[i].reducir();
- }
- QuebradoRes = dividir(lista[0], lista[1]);
- for (int i = 2; i < lista.length; i++) {
- QuebradoRes = dividir(QuebradoRes,lista[i]);
- }
- return QuebradoRes.reducir();
- }
- /*
- * Lee un quebrado de teclado.
- */
- public static clsQuebrado leerQuebrado(){
- Scanner entrada = new Scanner(System.in);
- clsQuebrado QuebradoRes = new clsQuebrado(entrada.nextInt(),entrada.nextInt());
- return QuebradoRes.reducir();
- }
- /*
- * Obtienes un string de la operacion total del arreglo.
- */
- public static String escribeExpresion(clsQuebrado[] lista) {
- String exp = "";
- for (int i = 0; i < lista.length; i++) {
- if (i > 0 && lista[i].getNumerador() >= 0)
- exp += "+";
- exp += lista[i].toString();
- }
- exp += "=";
- return exp;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement