public ResultadoDeOperacion Division(int dividendo, int divisor) { try { if (Int32.MaxValue < dividendo / dividendo || Int32.MinValue > dividendo * dividendo) { ResultadoDeOperacion cociente = new ResultadoDeOperacion(0, true, "El valor de la operación se encuentra fuera de los límites de procesamiento de la calculadora"); return(cociente); } else { int resultadoOperacion = dividendo / dividendo; ResultadoDeOperacion cociente = new ResultadoDeOperacion(resultadoOperacion, false, ""); return(cociente); } } catch (Exception) { throw; } }
public ResultadoDeOperacion Resta(int minuendo, int substraendo) { try { if (Int32.MaxValue < minuendo - substraendo || Int32.MinValue > minuendo - substraendo) { ResultadoDeOperacion diferencia = new ResultadoDeOperacion(0, true, "El valor de la operación se encuentra fuera de los límites de procesamiento de la calculadora"); return(diferencia); } else { int resultadoOperacion = minuendo - substraendo; ResultadoDeOperacion diferencia = new ResultadoDeOperacion(resultadoOperacion, false, ""); return(diferencia); } } catch (Exception) { throw; } }
public ResultadoDeOperacion Multiplicacion(int factorX, int factorY) { try { if (Int32.MaxValue < factorX * factorY || Int32.MinValue > factorX * factorY) { ResultadoDeOperacion producto = new ResultadoDeOperacion(0, true, "El valor de la operación se encuentra fuera de los límites de procesamiento de la calculadora"); return(producto); } else { int resultadoOperacion = factorX * factorY; ResultadoDeOperacion producto = new ResultadoDeOperacion(resultadoOperacion, false, ""); return(producto); } } catch (Exception) { throw; } }
public ResultadoDeOperacion Suma(int sumandoX, int sumandoY) { try { /*se controlan los posibles errores de overflow*/ if (Int32.MaxValue < sumandoX + sumandoY || Int32.MinValue > sumandoX + sumandoY) { ResultadoDeOperacion suma = new ResultadoDeOperacion(0, true, "El valor de la operación se encuentra fuera de los límites de procesamiento de la calculadora"); return(suma); } else { int resultadoOperacion = sumandoX + sumandoY; ResultadoDeOperacion suma = new ResultadoDeOperacion(resultadoOperacion, false, ""); return(suma); } } catch (Exception) { throw; } }
private void btn_igual_Click(object sender, EventArgs e) { try { /*inicializo el conversor y el operador que me permitiran llevar a delante la logica del calculo*/ Conversiones conversor = new Conversiones(); Operacion operador = new Operacion(); if (txb_visor.Text != "" && lbl_terminoUno.Text != "") { lbl_terminoDos.Text = txb_visor.Text; /*se almacena este dato en el caso de luego querer incorporar alguna * funcionalidad relacionada al recalculo en base a un resultado ya obtenido*/ switch (lbl_operador.Text) { /*se convierte a decimal lo ingresado en el visor. Luego en una variable de tipo * ResultadoDeOPeracion se guarda el resultado de la operacion, ya sea un error o el total numerico*/ case "X": { int factor1 = conversor.Hex_a_Decimal(lbl_terminoUno.Text); int factor2 = conversor.Hex_a_Decimal(lbl_terminoDos.Text); ResultadoDeOperacion producto; producto = operador.Multiplicacion(factor1, factor2); if (!producto.reportaError) { txb_visor.MaxLength = 32; /* Si no da error la operacion se convierte el resultado a hexadecimal*/ txb_visor.Text = conversor.Decimal_a_Hex(producto.resultado); /*y se muestra en pantalla*/ lbl_terminoUno.Text = ""; lbl_operador.Text = ""; txb_visor.Enabled = false; this.ActiveControl = btn_reestablece; btn_reestablece.Focus(); btn_suma.Enabled = false; btn_resta.Enabled = false; btn_division.Enabled = false; btn_multiplicacion.Enabled = false; } else { MessageBox.Show(producto.descripcionError, "Aviso", MessageBoxButtons.OK); /* caso contrario se dispara un aviso*/ } break; } case "/": { Validaciones validador = new Validaciones(); int dividendo = conversor.Hex_a_Decimal(lbl_terminoUno.Text); int divisor = conversor.Hex_a_Decimal(lbl_terminoDos.Text); if (!validador.DivisionPorCero(divisor)) { ResultadoDeOperacion cociente; cociente = operador.Division(dividendo, divisor); if (!cociente.reportaError) { txb_visor.MaxLength = 32; txb_visor.Text = conversor.Decimal_a_Hex(cociente.resultado); lbl_terminoUno.Text = ""; lbl_operador.Text = ""; txb_visor.Enabled = false; this.ActiveControl = btn_reestablece; btn_reestablece.Focus(); btn_suma.Enabled = false; btn_resta.Enabled = false; btn_division.Enabled = false; btn_multiplicacion.Enabled = false; } else { MessageBox.Show(cociente.descripcionError, "Aviso", MessageBoxButtons.OK); } } else { txb_visor.Text = "Error division por cero"; txb_visor.Enabled = false; lbl_terminoUno.Text = ""; lbl_terminoDos.Text = ""; lbl_operador.Text = ""; this.ActiveControl = btn_reestablece; btn_reestablece.Focus(); btn_suma.Enabled = false; btn_resta.Enabled = false; btn_division.Enabled = false; btn_multiplicacion.Enabled = false; } break; } case "+": { int sumando1 = conversor.Hex_a_Decimal(lbl_terminoUno.Text); int sumando2 = conversor.Hex_a_Decimal(lbl_terminoDos.Text); ResultadoDeOperacion suma = operador.Suma(sumando1, sumando2); if (!suma.reportaError) { txb_visor.MaxLength = 32; txb_visor.Text = conversor.Decimal_a_Hex(suma.resultado); lbl_terminoUno.Text = ""; lbl_operador.Text = ""; txb_visor.Enabled = false; this.ActiveControl = btn_reestablece; btn_reestablece.Focus(); btn_suma.Enabled = false; btn_resta.Enabled = false; btn_division.Enabled = false; btn_multiplicacion.Enabled = false; } else { MessageBox.Show(suma.descripcionError, "Aviso", MessageBoxButtons.OK); } break; } case "-": { int minuendo = conversor.Hex_a_Decimal(lbl_terminoUno.Text); int sustraendo = conversor.Hex_a_Decimal(lbl_terminoDos.Text); ResultadoDeOperacion diferencia = operador.Resta(minuendo, sustraendo); if (!diferencia.reportaError) { txb_visor.MaxLength = 32; txb_visor.Text = conversor.Decimal_a_Hex(diferencia.resultado); lbl_terminoUno.Text = ""; lbl_operador.Text = ""; txb_visor.Enabled = false; this.ActiveControl = btn_reestablece; btn_reestablece.Focus(); btn_suma.Enabled = false; btn_resta.Enabled = false; btn_division.Enabled = false; btn_multiplicacion.Enabled = false; } else { MessageBox.Show(diferencia.descripcionError, "Aviso", MessageBoxButtons.OK); } break; } default: break; } } } catch (Exception) { throw; } }