| |||
Calculadora Gráfica en Java Saludos actualmente estoy trabajando con una calculadora en java, la cual realiza las operaciones básica(Sumar restar, Multiplicar y Dividir). Estoy guardando todo en una cadena, pero mi problema Viene al querer mostrar el resultado, ya que no encuentro como convertir una cadena de tipo: "11+23*65/2" A una operación para mostrar el resultado, espero me ayuden, Saludos! |
| |||
Respuesta: Calculadora Gráfica en Java Suponiendo que la calculadora es tan basica que no permita introducir parentesis ni numeros negativos, y que la cadena introducida es válida, lo que tienes que hacer tratar la cadena de izquierda a derecha, obteniendo un número, el operador que le sigue, el siguiente número, efectuar la operacion para obtener nuevamente un número. Y ahora seguir iterando (extraer operador, extraer número, operar) hasta acabar la cadena. El "despiece" de la cadena, lo puedes hacer "a mano" explorando la cadena caracter a caracter, construyendo el número operando, a base de potencias de 10, cada vez que lo encontrado sea un dígito... O puedes usar la clase StringTokenizer que te dará cada una de las partes (operandos y operadores) como tokens, limitando tu algoritmo a discriminar cada operador para aplicar la operacion requerida. |
| |||
Respuesta: Calculadora Gráfica en Java Esto creo que iría en programación en general, vas a tener que construir un algoritmo que lo calcule de izquierda a derecha como dice luis_vega, cuando estudiaba hice una de la siguiente manera, tenia las variables: creas o buscas una funcion split() funcion split() ----> devuelve un vector con los terminos de la operacion, operadores y operandos ["14","+","3","*","2.0","-","4"] terminos = split(string) valor = termino[0] valor_temporal simbolo = + simbolo_temporal para tratar el tema de la prioridad de la multiplicación, entonces hacía así, recorres todo el vector y vas asignando a valor_ temporal y a signo_temporal el resultado de las multiplicaciones, y cuando llegas a un + o - operas valor con valor_temporal con el ultimo signo que habias dejado en signo y as'i hasta que llegas al final mas o menos asi lo hice yo Salut |
Etiquetas: |