Foros del Web » Programando para Internet » PHP »

PHP OO Calcular una formula. Como calcular una formula que esta en un string

Estas en el tema de Calcular una formula. Como calcular una formula que esta en un string en el foro de PHP en Foros del Web. Buenas tardes Estoy realizando un formulario para calcular el método de Rugue-kutta en php. para calcular una equacion. el cual ya resolví. pero mi problema ...
  #1 (permalink)  
Antiguo 15/08/2012, 14:06
 
Fecha de Ingreso: mayo-2006
Mensajes: 5
Antigüedad: 18 años, 7 meses
Puntos: 0
Pregunta Calcular una formula. Como calcular una formula que esta en un string

Buenas tardes
Estoy realizando un formulario para calcular el método de Rugue-kutta en php.
para calcular una equacion. el cual ya resolví. pero mi problema es el siguiente:
yo calculo la respuesta pero de forma estática. osea que tengo que meter la formula en el mismo código. lo que quiero hacer introducir una formula y calcularla con la función que ise.
ingreso en un textbox la formula. ejemplo
f=2x-4y3x+2
x=1, y=4

Yo remplazo y la formula me queda así:
f= 2*1-(4*4)*(3*1)+2
pero eso me queda en un string. Como puedo hacer para Calcularlo?
Intente separarlo y ponerlo en vectores pero me quedaba asi
a[0]=2*1
a[1]=-(4*4)*(3*1)
a[2]=+2
y sumo los vectores y nada xd

nose como hacer para calcular valores que estan en un string


gracias. y espero que me ayuden con esto :D
  #2 (permalink)  
Antiguo 15/08/2012, 14:12
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: Calcular una formula. Como calcular una formula que esta en un string

Tienes dos opciones, "parsear" todos los caracteres a modo analizador sintáctico y hacer las operaciones de cada signo o bien, usar eval($cadena), lo cual es un poco riesgoso, ya que eval ejecutaría cualquier orden dentro de la cadena.
  #3 (permalink)  
Antiguo 15/08/2012, 14:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Calcular una formula. Como calcular una formula que esta en un string

Es interesante el problema, aquí la cuestión que me viene a la mente es, ¿los valores de tus variables los defines siempre o el script debe resolver la ecuación también?

Si los valores los defines tu entonces hacer un script usando expresiones regulares, reemplazos, operadores y evaluación debe ser sencillo.

Si buscas que también despeje tus variables pues ya está mas complejo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 15/08/2012, 14:28
 
Fecha de Ingreso: mayo-2006
Mensajes: 5
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Calcular una formula. Como calcular una formula que esta en un string

tengo Varios textbox.
introducir formula, introducir H, Introducir Y, Introducir X ....

Hay alguna forma de que cuando remplazo las X y Y por los valores que introduzco no me devuelva un String?

Por ahora todos son variables (X,Y,H,Y(x)). El único que no es variable por ahora es la formula que no se como ... xd

$p_formula = str_ireplace("x","*".$x0,$funcion);
$p_formula = str_ireplace("y","*".$Yx,$p_formula);

cuando el echo de $p_formula me devueleve el valor de un string y no la respuesta

Pd. No se que es parsear
  #5 (permalink)  
Antiguo 15/08/2012, 14:39
 
Fecha de Ingreso: mayo-2006
Mensajes: 5
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Calcular una formula. Como calcular una formula que esta en un string

aqui agarro los valores introducidos.

$funcion = $_POST['funcion'];
$h=$_POST['h'];//intervalos
$Yx=$_POST['Yx'];// Y con respecto a x
$X_y = $_POST['X_y']; //X de la primera y
$x0 = $_POST['x0'];
$xi = $_POST['xi'];

$p_formula = str_ireplace("x","*".$x0,$funcion);
$p_formula = str_ireplace("y","*".$Yx,$p_formula);
echo $p_formula;

el único problema es que $p_formula el cual tiene la formula me regresa en un string por usar el str_ireplace. hay otra forma de reemplzar?

gracias y disculpe las molestias
  #6 (permalink)  
Antiguo 15/08/2012, 14:58
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: Calcular una formula. Como calcular una formula que esta en un string

Debes mostrar algo más de voluntad de tu parte, si no sabes qué es "parsear", puedes buscarlo en google. Básicamente consiste en leer caracter por caracter e ir separando los componentes de la cadena en los elementos básicos.

Y no mencionas nada sobre el usar eval.
  #7 (permalink)  
Antiguo 15/08/2012, 15:18
 
Fecha de Ingreso: mayo-2006
Mensajes: 5
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Calcular una formula. Como calcular una formula que esta en un string

si ya busque que es parsear, pero no se como se aplicaria en mi caso
el eval no creo que me funcione segun lo que entendi igual me devuelve un string. pero no se mi funcionara si la formula que se introduce no es igual. Ejemplo. Se puede introducir desde 2x hasta 2x-4y+5yx... o algo asi y no sabria como usar el eval en ese caso.

Pd. no soy experto en php ni en funciones de PHP.
  #8 (permalink)  
Antiguo 15/08/2012, 15:23
 
Fecha de Ingreso: mayo-2006
Mensajes: 5
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Calcular una formula. Como calcular una formula que esta en un string

la situación esque nos mandaron a resolver una equacion en la universidad y como eran muchas interacciones decidí programarlo y lo resuelve . pero lo que quiero es automatizarlo. xd :D

no hay forma que un string tome en cuenta la multiplicaciones dentro de ella? un vector o algo asi?

se que pregunto demasiado. (me gusta programar a Pulmon... (usando pura logica) pero no me conozco todas las funciones de PHP)

gracias... :D
  #9 (permalink)  
Antiguo 15/08/2012, 16:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Calcular una formula. Como calcular una formula que esta en un string

Pues de puro ocio hice esto: http://ignite.io/code/502c1f68ef167b9d5f000000

Igual y no está bien escrito, pero no importa, la idea es clara.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 15/08/2012, 17:13
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: Calcular una formula. Como calcular una formula que esta en un string

si es solo para que lo uses vos, usa eval(), va a ser lo mas fácil. No es que no vaya a funcionar como tu dices, lo que pasa que es riesgoso porque estas ejecutando "algo" que viene de "algún otro lado" como una instrucción, por eso se desaconseja; pero si es para tu uso personal, me parece la forma mas rápida de salir del paso.

Etiquetas: formula, formulario, string, calculadora
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 10:17.