• Domingo 17 de Noviembre de 2024, 20:44

Autor Tema:  Acceso A Operadores En Tiempo De Ejecución  (Leído 1160 veces)

javi2

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Acceso A Operadores En Tiempo De Ejecución
« en: Domingo 9 de Mayo de 2004, 00:41 »
0
Resulta que estoy interesado en hacer un programa que simule el funcionamiento de un autómata, y tengo que escribir funciones lógicas durante la ejecución del mismo. Lo he intentado de algunas formas poco ingeniosas y no ha salido.

Mi pregunta es las siguiente:

¿Se puede acceder a un operador del C en tiempo de ejecución?

Durante la ejecución del programa éste pediría los valores de dos variables enteras (x e y). Acto seguido el usuario escribe una operación con x e y, p.e.   z = x + y. El programa lo almacena en la variable z (declarada en el código del programa junto con x e y).  Y finalmente el programa muestra el valor de la variable z en la pantalla.

¿Cómo puedo hacer algo así?               gracias.

Ruben3d

  • Miembro HIPER activo
  • ****
  • Mensajes: 710
  • Nacionalidad: es
    • Ver Perfil
    • Web personal
Re: Acceso A Operadores En Tiempo De Ejecución
« Respuesta #1 en: Domingo 9 de Mayo de 2004, 23:44 »
0
Hola.

El lenguaje C no permite interpretar código en tiempo de ejecución. Para hacer lo que quieres tendrás que realizar un parser que procese la fórmula y la introduzca en un árbol de evaluación, en el que cada hoja es un número (o una variable) y cada nodo no hoja es una operación (construido según la prioridad de los operadores). Ya sólo te restaría resolver el árbol y hacer lo que quisieras con el resultado.

Un saludo.

Ruben3d

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Acceso A Operadores En Tiempo De Ejecución
« Respuesta #2 en: Lunes 10 de Mayo de 2004, 15:50 »
0
Eso es..
en efecto debes hacer una funcion que procese la formula ingresada y tenga en cuenta la proioridad de operadores...
sin embargo ya debe haber alguna libreria que haga eso.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

javi2

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Acceso A Operadores En Tiempo De Ejecución
« Respuesta #3 en: Martes 18 de Mayo de 2004, 02:29 »
0
Gracias a los dos. La verdad es que ya me esperaba que no iba a ser nada fácil. El caso es que he escrito algunas aplicaciones en octave, que es interpretado y de muy alto nivel, y quizás he adquirido malos hábitos, pues en octave todos los operadores y funciones son accesibles en tiempo de ejecución. Lo que haré es buscar alguna librería para C o C++, a ser posible estática, y si no aplicaré el lema del maestro Naba: usar la herramienta adecuada; posiblemente un lenguaje interpretado.

Gracias una vez más y un cordial saludo