Visual Basic.NET - Problema con las strings de una calculadora

 
Vista:

Problema con las strings de una calculadora

Publicado por CiberRonin (1 intervención) el 30/08/2004 12:55:42
Buenas!!
Estoy creando una calculadora con Visual Basic .NET y me ha surgido un pequeño-gran problema... Como hace poco que estoy en el proyecto, y hace menos todavía que estoy con VB.NET de momento solo tengo la parte de suma y resta. El programa realiza cualquier operación combinada con sumas y restas, excepto si el primer número de la operación és un número negativo, caso en el que da error. Explico el funcionamiento del proceso:
Primero el programa separa mediante términos diferentes aquellas expresiones que estan separadas por el operante suma (+), con lo qual las restas quedan en un bloque. Por ejemplo:
34+56+78-45+67 quedaría después del primer paso en un array de diferentes bloques, que serían:
34 // 56 // 78-45 // 67
Luego el programa separa los términos que están separados por el operador resta (-), con lo qual el anterior bloque (78-45) pasaría a separarse en dos bloques, 78 i 45, que se restarian y sustiruirían el valor (78-45) del anterior array por el valor 33.
Hasta aquí todo funciona bien. Pero al introducir el primer valor negativo, el proceso de separar términos separados por el operador resta (-) separa lo que hay antes del simbolo resta (o sea nada) y separa el número N que viene después, con lo que el negativo deja de existir y el programa da un error.

Bien esto es todo si alguien sabe como puedo solucionar esto por favor que responga el mensaje se lo agradeceré eternamente!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con las strings de una calculadora

Publicado por Edgar (1501 intervenciones) el 30/08/2004 14:01:01
Hola...

Si estas manejando todo como cadenas de caracteres, lo que puedes hacer es comparar los valores con el string vacio (string.Empty), y si este es el caso, reemplazar este valor con 0, de tal manera que si se encuentra con una cadena vacia, la reemplaze con un valor dado y no te dará el error.

Espero haberme explicado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con las strings de una calculadora

Publicado por kikonmx (17 intervenciones) el 31/08/2004 21:46:02
Te recomiendo que investigues sobre la notación prefija ( o postfija ), es una forma de expresar las operaciones ( como la que presentas como ejemplo ) de una manera que es "más sencillo" manejarlos y no tendrías este problema. Se basa en la precedencia de operadores y en el número de operandos que maneja cada uno, aunque no recuerdo exactamente como es la notación prefija, aquí te va un ejemplo.

La operación (45*8)-59

Quedaría de la siguiente forma

-*45 8 59

Te digo, no recuerdo bien pero creo que es correcto el ejemplo que te puse.

Los espacios en blanco los establecí yo como separadores de números, tu puedes establecer tus propios separadores.

Para programarlo, la forma más sencilla es utiliando pilas ( se utilizarían Arrays en Vb.Net )

Si te fijas, este tipo de notación no requiere paréntesis para las expresiones aunque sean muy complejas, todo se basa en la precedencia de operadores y al número de operandos que maneja cada operador.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar