示例#1
0
        public Fraccion Multiplicar(Fraccion otra)
        {
            int      n1        = numerador + (entero * denominador);
            int      n2        = otra.numerador + (otra.entero * otra.denominador);
            Fraccion resultado = new Fraccion(n1 * n2, denominador * otra.denominador);

            resultado = Simplificar(resultado);
            return(resultado);
        }
示例#2
0
        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 "*":
                resultado = f1.Multiplicar(f2);
                break;

            case "/":
                resultado = f1.Dividir(f2);
                break;

            default:
                MessageBox.Show("Falta seleccionar la operacion", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
                //break;
            }
            //lblEntero.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 + "";
            }
        }
示例#3
0
        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 / otra.denominador) * otra.numerador;

            n2 += e2;
            Fraccion resultado = new Fraccion(n1 - n2, denominadorComun);

            resultado = Simplificar(resultado);
            return(resultado);
        }
示例#4
0
        public Fraccion Simplificar(Fraccion f)
        {
            Fraccion fraccionSimplificada;
            //agregar la parte enetera 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);

            if (mcd != 0)
            {
                //reducir la fraccion en 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);
        }