Exemplo n.º 1
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.Multiplicar(f2);
                break;

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

            default:
                MessageBox.Show("Falta seleccionar la operacion", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            lblResultado.Text = resultado.ToString();
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 4
0
        public Fraccion Simplificar(Fraccion f)
        {
            Fraccion fraccionSimplificada;
            // Agregar la parte entera a la fraccion al numerador
            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);
        }