Ver la Versión Completa : arbol expresiones artimeticas
halizia
18-07-2006, 09:18:15
hola,
quisiera saber si hay programas que dada una expresion del tipo a+b*c generen el árbol sintáctico y las evaluen correctamente.
Gracias
Arcioneo
18-07-2006, 09:59:51
:D hola,
quisiera saber si hay programas que dada una expresion del tipo a+b*c generen el árbol sintáctico y las evaluen correctamente.
Gracias
Pues no los hay pero si hay muchos libros donde vienen los algoritmos de como hacer un analizador sintactico y que ademas te evalue las expresiones.
Te recomiendo uno llamado "Estructuras de datos en C y C++"
Ñuño Martínez
18-07-2006, 17:55:37
También tienes el YACC (http://dinosaur.compilertools.net/) y el Bison (http://www.gnu.org/software/bison/), que no es exactamente lo que pides pero puede ayudarte (o a otra persona que haya llegado hasta aquí buscando algo parecido).
Y también te puedes mirar el libro "C: Manual de referencia" de Hervert Schildt, que incluye un Analizador Matemático Recursivo Descendente. El nombre puede asustar, pero es muy fácil entender cómo funciona.
halizia
23-07-2006, 14:58:25
yo lo que me refiero es que por ejemplo, el usuario introduzca una expresion del tipo: a+5*b dónde de valores a 'a' y a 'b' y me devuelva el valor correspondiente, por ejemplo si a=2 y b=3 el resultado seria 17
no sé si me explico bien
Saludos
Arcioneo
02-08-2006, 09:27:06
yo lo que me refiero es que por ejemplo, el usuario introduzca una expresion del tipo: a+5*b dónde de valores a 'a' y a 'b' y me devuelva el valor correspondiente, por ejemplo si a=2 y b=3 el resultado seria 17
no sé si me explico bien
Saludos
La verdad que no te explicas bien, suena extrañamente simple tu pregunta
o que quieres es que haga las operaciones por orden, por la precedencia de los signos no?
A bueno, pues el algoritmo viene en el libro que te dije, es muy sencillo y esta en un solo capitulo todo el codigo.
O si no busca, la palabra, PREFIJO, POSFIJO, e INFIJO, que son los ordenes en que tienes que convertir la expresion para que se haga correctamente.:cool:
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.