Пример #1
0
        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);
        }
Пример #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 "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 + "";
            }
        }
Пример #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        = entero * denominadorComun;
            int      n2        = (denominadorComun / otra.denominador) * otra.numerador;
            Fraccion resultado = new Fraccion(n1 - n2, denominadorComun);

            n2       += e2;
            resultado = Simplificar(resultado);
            return(resultado);
        }
Пример #4
0
        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);
        }