[BATCH] Ayuda con calculadora

Iniciado por Meine programmen, 4 Febrero 2012, 15:45 PM

0 Miembros y 1 Visitante están viendo este tema.

Meine programmen

Veran, estoy intentando hacer un pequeño programa que resuelva operaciones largas con potencias y raices cuadradas. Ej.: (√9-1)x4². Para esto pense en cambiar las raices por el numero (Ej.:(3-1)x4²) y las potencias hacer que se calculen (Ej.:(3-1)x16) y despues hacer que SET /A calcule el resultado (Ej.:
SET /A OPERACION=(3-1)*16
32
). Pero tengo un problema. Se como hacer que √1 se cambie por 1, √4 se cambie por 2, √9 se cambie por 3, √16 se cambie por 4, √25 se cambie por 5 etc... Pero no se como hacer que √(10-1) se cambie por 3. Habia pensado en escribirlo de manera que el programa lo reconozca (Ej.: √$10-1$) y que antes de cambiar raices por numeros usar SET /A para realizar las operaciones que esten entre "$ $". Pero no se como hacer que el programa saque las operaciones que estan entre las $ y las realice, y todavia menos se como cambiar el resultado por las operaciones. Esto mismo me podria servir para operaciones como (4-2)² (Ej.:$4-2$²) o incluso para operaciones como ((5-3)²)²  si se añaden mas simbolos (Ej.:&$5-3$²&²), el problema en este ultimo caso es que en vez de usar SET /A solamente para calcular el resultado tendria que poner las lineas de comando que permiten calcular potencias y raices y despues SET /A. Muchas gracias de antemano  :)
REMEMBER! Reality is an illusion, the universe is a hologram, BUY GOLD! BYE!!


leogtz

Lo que intentas hacer no es para nada fácil, implica quizás hacer un análisis recursivo descentente, es decir, un análisis sintáctico y hacerlo en Batch simplemente sería muy pero muy pero muy engorroso, además de poco eficiente, deja esa tarea para otro lenguaje.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com