calculadora en visual basic

Tema en 'Programación & Programación Web' iniciado por daviid, 28 Nov 2012.

  1. daviid

    daviid Usuario Nuevo nvl. 1
    187/244

    Registrado:
    7 Dic 2006
    Mensajes:
    119
    Me Gusta recibidos:
    0
    Hola ayuda por favor me pidieron hacer una calculadora en visual basic.
    La unica duda son las parentesis por ejemplo:
    (3*2)/5=

    como hacer que tome las parentesis ayuda, ya realice la calculadora la duda solamente son las parentesis.
     
  2. daviid

    daviid Usuario Nuevo nvl. 1
    16/41

    Registrado:
    7 Dic 2006
    Mensajes:
    119
    Me Gusta recibidos:
    0
    ayuda..
     
  3. El Fin

    El Fin Usuario Habitual nvl.3 ★
    187/244

    Registrado:
    2 Oct 2009
    Mensajes:
    16.562
    Me Gusta recibidos:
    16
    Hace tiempo tuve que hacer algo como eso, pero en flash.

    Yo hice lo siguiente (asumiendo que la operacion es ingresada como String)

    1).- crear una funcion para extrer la operacion que está dentro del paréntesis, en caso de haber paréntesis anidados la función debe regresar solamente la operacion del paréntesis más profundo (que no tenga otros parentesis dentro)
    2).- crear una funcion que resuelva la operacion extraida (esto ya lo deberías tener listo)
    3).- en la operación inicial, se debe reemplazar la cadena extraida por el resultado.
    4).- se debe repetir el proceso hasta que todos los paréntesis sean eliminados
    5).- se resuelve la operación.

    Ejemplo práctico:

    resolver 3*(2+4*(4-3))-5
    1.- al extraer se deberia obtener "(4-3)"
    2.- resolvemos "(4-3)" que da "1"
    3.- se reemplaza "(4-3)" con "1" en la expresion "3*(2+4*(4-3))-5" dando como resultado "3*(2+4*1)-5"
    4.- extraemos nuevamente, obtenemos la cadena "(2+4*1)"
    5.- resolvemos "(2+4*1)", dando comor esultado "6"
    6.- reemplazamos "(2+4*1)" con "6" en la expresion "3*(2+4*1)-5", dando como resultado "3*6-5"
    7.- extraemos paréntesis en "3*6-5", como no existen, la funcion devuelve false.
    8.- como sabemos que no hay más parentesis, resolvemos directamente "3*6-5", que da "13" como resultado.

    Espero te sirva, si tengo tiempo podría hacerlo en visual pero no estoy muy acostumbrado a trabajar con string en ese lenguaje.

    Saludos.