public Fraccion Dividir(Fraccion otra) { int n1 = numerador + (entero * denominador); int n2 = otra.numerador + (otra.entero * otra.denominador); Fraccion resultado = new Fraccion(n1 * otra.denominador, n2 * denominador); resultado = Simplificar(resultado); return(resultado); }
private void lblCalcularResultado_Click(object sender, EventArgs e) { Fraccion f1 = new Fraccion((int)numEntero1.Value, (int)numNumerador1.Value, (int)numDenominador1.Value); Fraccion f2 = new Fraccion((int)numEntero2.Value, (int)numNumerador2.Value, (int)numDenominador2.Value); Fraccion resultado = null; switch (cboOperacion.Text) { case "+": resultado = f1.Sumar(f2); break; case "-": resultado = f1.Restar(f2); break; case "x": resultado = f1.Multplicar(f2); break; case "/": resultado = f1.Dividir(f2); break; default: MessageBox.Show("Falta Seleccionar la Operacion", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; //break; } //lblResultado.Text = resultado.ToString(); lblLinea.Text = "______"; if (resultado.Entero == 0) { lblResultadoEntero.Text = ""; } else { lblResultadoEntero.Text = resultado.Entero + ""; } if (resultado.Numerador == 0) { lblResultadoNumerador.Text = ""; lblResultadoDenominador.Text = ""; lblLinea.Text = " "; } else { lblResultadoNumerador.Text = resultado.Numerador + ""; lblResultadoDenominador.Text = resultado.Denominador + ""; } }
public Fraccion Restar(Fraccion otra) { int denominadorComun = denominador * otra.denominador; int e1 = entero * denominadorComun; int n1 = (denominadorComun / denominador) * numerador; n1 += e1; int e2 = entero * denominadorComun; int n2 = (denominadorComun / otra.denominador) * otra.numerador; Fraccion resultado = new Fraccion(n1 - n2, denominadorComun); n2 += e2; resultado = Simplificar(resultado); return(resultado); }
public Fraccion Simplificar(Fraccion f) { Fraccion fraccionSimplificada; //Agregar la parte entera a la fraccion int n = (f.Entero * f.Denominador) + f.Numerador; int d = f.Denominador; int e = 0; bool negativo = false; if (n < 0) { negativo = true; n *= -1; } //Calcular el Max Comun divisor int mcd = MaximoComunDivisor(n, d); //Reducir la fraccion en base al MCD n = n / mcd; d = d / mcd; if (n >= d) { e = n / d; n = e % d; } if (negativo && e > 0) { e *= -1; } if (negativo && e == 0) { n *= -1; } fraccionSimplificada = new Fraccion(e, n, d); //regresar la fraccion reducida return(fraccionSimplificada); }