示例#1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnOperar_Click(object sender, EventArgs e)
        {
            double tmp;

            numero1 = new Numero(txtNumero1.Text);
            numero2 = new Numero(txtNumero2.Text);
            String operador = Calculadora.validarOperador(cmbOperacion.Text);

            lblResultado.Text = string.Format("{0}", Calculadora.operar(numero1, numero2, operador));
            if (operador.Equals("+"))
            {
                cmbOperacion.Text = operador;
            }
            if (operador.Equals("/") && numero2.getNumero() == 0)
            {
                lblResultado.Text      = "Error: división por cero.";
                lblResultado.BackColor = Color.DarkRed;
                lblResultado.ForeColor = Color.White;
            }
            else
            {
                lblResultado.BackColor = Color.Gray;
                lblResultado.ForeColor = Color.Black;
            }

            if (!double.TryParse(txtNumero1.Text, out tmp))
            {
                txtNumero1.Text = "0";
            }

            if (!double.TryParse(txtNumero2.Text, out tmp))
            {
                txtNumero2.Text = "0";
            }
        }
示例#2
0
        /// <summary>
        /// Opera matemáticamente los operandos numero1 y numero2 según el operador
        /// </summary>
        /// <param name="numero1"></param>
        /// <param name="numero2"></param>
        /// <param name="operador"></param>
        /// <returns>"double Devuelve el resultado de la operación."</returns>
        public static double operar(Numero numero1, Numero numero2, String operador)
        {
            double retorno = 0, num1, num2;

            num1 = numero1.getNumero();
            num2 = numero2.getNumero();

            switch (operador)
            {
            case "+":
                retorno = num1 + num2;
                break;

            case "-":
                retorno = num1 - num2;
                break;

            case "*":
                retorno = num1 * num2;
                break;

            case "/":
                if (num2 != 0)
                {
                    retorno = num1 / num2;
                }
                break;
            }

            return(retorno);
        }
示例#3
0
        /*
         #region Deprecated por sobrecarga de operador
         * public static double operar(Numero numero1, Numero numero2, string operador)
         * {
         *   switch (Calculadora.validarOperador(operador))
         *   {
         *       case "+":
         *           return (numero1.getNumero() + numero2.getNumero());
         *       case "-":
         *           return (numero1.getNumero() - numero2.getNumero());
         *       case "/":
         *           if(numero2.getNumero() != 0)
         *               return (numero1.getNumero() / numero2.getNumero());
         *           return 0;
         *       case "*":
         *           return (numero1.getNumero() * numero2.getNumero());
         *       default:
         *           return 0;
         *   }
         *
         * }
         #endregion
         */

        /// <summary>
        /// Realiza la operacion con los parametros y el operando pasados
        /// </summary>
        /// <param name="numero1">Primer numero a operar</param>
        /// <param name="numero2">Segundo numero a operar</param>
        /// <param name="operador">Operador(+,-,* o /)</param>
        /// <returns>Resultado de la operacion o 0, en caso de no poder operar</returns>
        public static double operar(Numero numero1, Numero numero2, string operador)
        {
            switch (Calculadora.validarOperador(operador))
            {
            case "+":
                return(numero1 + numero2);

            case "-":
                return(numero1 - numero2);

            case "/":
                if (numero2.getNumero() != 0)
                {
                    return(numero1 / numero2);
                }
                return(0);

            case "*":
                return(numero1 * numero2);

            default:
                return(0);
            }
        }