calculadora en visual basic

Discussion in 'Programación & Programación Web' started by daviid, Nov 28, 2012.

  1. daviid

    daviid Usuario Nuevo nvl. 1
    187/244

    Joined:
    Dec 7, 2006
    Messages:
    119
    Likes Received:
    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

    Joined:
    Dec 7, 2006
    Messages:
    119
    Likes Received:
    0
  3. El Fin

    El Fin Usuario Habitual nvl.3 ★
    187/244

    Joined:
    Oct 2, 2009
    Messages:
    16,562
    Likes Received:
    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.