Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Leer un string por teclado y convertirlo a una función matemática

Estas en el tema de Leer un string por teclado y convertirlo a una función matemática en el foro de C/C++ en Foros del Web. Hola amigos de Foros del Web, realmente este foro me ha ayudado mucho en otras ocasiones, espero que en esta también pueda hacerlo. Tengo que ...
  #1 (permalink)  
Antiguo 04/06/2014, 08:28
 
Fecha de Ingreso: junio-2014
Ubicación: Córdoba
Mensajes: 3
Antigüedad: 9 años, 11 meses
Puntos: 0
Pregunta Leer un string por teclado y convertirlo a una función matemática

Hola amigos de Foros del Web, realmente este foro me ha ayudado mucho en otras ocasiones, espero que en esta también pueda hacerlo.

Tengo que hacer un programa en C++ donde el usuario ingrese por teclado una función matemática (ej: sen x - 3x) y necesito poder interpretar esa función de modo que se reconozca que x es la variable y poder realizar el calculo con la librería math.h .. De qué manera puedo hacerlo??

Espero puedan ayudarme! Gracias!!
  #2 (permalink)  
Antiguo 04/06/2014, 11:17
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Leer un string por teclado y convertirlo a una función matemática

math.h ya trae funciones matematicas de este tipo sin() para seno y cos() para coseno.
Claramente deberas guardar el resultado en una variable.
x = sin(x);
aun que desconozco el calculo que quieres hacer las puedes usar.
http://www.cplusplus.com/reference/cmath/sin/
http://www.cplusplus.com/reference/cmath/cos/

si es para c++ la librería es <cmath>
Y si nos explicas mejor el proceso paso a paso te podemos ayudar mejor.
  #3 (permalink)  
Antiguo 04/06/2014, 11:31
 
Fecha de Ingreso: junio-2014
Ubicación: Córdoba
Mensajes: 3
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Leer un string por teclado y convertirlo a una función matemática

Perdón si no me explique bien. Conozco las funciones que trae math.h. El programa que tengo que hacer solicitaría al usuario ingresar la función por teclado, la lectura del teclado sería almacenada en un string. Luego se le pedirá al usuario ingresar el valor en que desea evaluar la función (que sería el valor de x). Lo que yo quiero hacer es saber que función ingresó el usuario por teclado para poder usar las funciones de math.h

Muchas gracias por responder vangodp
  #4 (permalink)  
Antiguo 04/06/2014, 13:49
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Leer un string por teclado y convertirlo a una función matemática

sigo sin entencer a que te refiere con entrar con la funcion. Lo que das a entender es que quieres hacer algo parecido a una linea de comandos que escribes el tipo de operacion y que te pregunte el valor. Algo como esto
string comando;
cin>>comando;
if (comando == "seno"){
cin>>x;
seno(x)
}
Es que soy así mismo de ceporro, as veces me cuesta... que voy hacer. XD
  #5 (permalink)  
Antiguo 05/06/2014, 07:04
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 11 meses
Puntos: 73
Respuesta: Leer un string por teclado y convertirlo a una función matemática

Lo que buscas es un parser (analizador sintáctico), que te compruebe la línea que introduzcas con la función. Básicamente, deberá eliminar espacios en blanco (si no son relevantes), comprobar el balance de paréntesis, comprobar que las operaciones y los nombres de funciones que se introduzcan están previstos en tu programa, decidir cuándo un nombre es de una variable y cuándo es de una función, etc.

Intenta obtener el código fuente de algún compilador, por ejemplo el LCC, (claro que solamente te haría falta la parte del analizador sintáctico), busca aquí:

https://sites.google.com/site/lccretargetablecompiler/
  #6 (permalink)  
Antiguo 05/06/2014, 08:24
 
Fecha de Ingreso: junio-2014
Ubicación: Córdoba
Mensajes: 3
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Leer un string por teclado y convertirlo a una función matemática

vangodp:
Claro, estás entendiendo bien. Pero el usuario no ingresaria solamente "seno", si no que ingresaría una función compuesta, por ejemplo: "(sen x + 3x)/cos x" se entiende?
Fw190:
Es eso lo que busco, un parser, como me lo explicas vos. Pero estuve buscando en Internet y no los entendí, no soy un gran programador, recién estoy comenzando!

Gracias a los 2 por sus respuestas!
  #7 (permalink)  
Antiguo 05/06/2014, 08:37
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Leer un string por teclado y convertirlo a una función matemática

Yo cuando hice la asignatura de compiladores, usabamos FLEX y BISON para crear la gramática y el interprete.

Si buscas sobre ellos por internet puedes encontrar bastantes ejemplos. Aqui te paso una introducción a su uso para que mires si cumple con tus necesidades:

http://webdiis.unizar.es/asignaturas...Flex_Bison.pdf
__________________
Aviso: No se resuelven dudas por MP!

Etiquetas: c++, conversor, funcion, parser, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:03.