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 = Simplifcar(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 (cboOperaccione.Text) { case "+": resultado = f1.Sumar(f2); break; case "-": resultado = f1.Restar(f2); break; case "x": resultado = f1.Multiplicar(f2); break; case "/": resultado = f1.Dividir(f2); break; default: MessageBox.Show("falta seleccionar la operacion", " error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } LblLinea.Text = "___________"; if (resultado.Entero == 0) { LblEnteroRe.Text = ""; } else { LblEnteroRe.Text = resultado.Entero + ""; } if (resultado.Numerador == 0) { LblNumeradorRe.Text = ""; LblDenominadorRe.Text = ""; LblLinea.Text = ""; } else { LblNumeradorRe.Text = resultado.Numerador + ""; LblDenominadorRe.Text = resultado.Denominador + ""; } //LblNumeradorRe.Text = resultado.ToString(); }
public fraccion Restar(fraccion otra) { int denominadorComun = denominador * otra.denominador; int e1 = entero * denominadorComun; int n1 = (denominadorComun / denominador) * numerador; n1 += e1; int e2 = otra.entero * denominadorComun; int n2 = (denominadorComun / denominador) * otra.numerador; n2 += e2; fraccion resultado = new fraccion(n1 - n2, denominadorComun); resultado = Simplifcar(resultado); return(resultado); }
public fraccion Simplifcar(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; } //reducir la fraccion //calcular el maximo comun divisor int mcd = MaximoComunDivisor(n, d); if (mcd != 0) { //Reducir la fraccion con base al MCD n = n / mcd; d = d / mcd; if (n >= d) { e = n / d; n = n % 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); }