Comunidad de diseño web y desarrollo en internet online

Analizador de expresiones algebraicas

Citar            
MensajeEscrito el 06 Ene 2005 01:09 pm
Bueno amigos tengo un problemilla en un proyectillo que estoy desarrollando en flash, se trata de un representador grafico de funciones matematicas ye l problema transcurre cuando el supuesto usuario introduce la funcion en un campo de texto, las variables llegan como String y al ser deste estilo¡: x*x + 4, no puedo cambiar el tipo de variable a Number para que la funcion opere substitullendo x por su valor y haciendo las operaciones * +, por ejemplo.
He visto por ahi que es necesario un Analizador de expresiones algebraicas si alguien sabe algo sobre el tema o tiene un codigo que me pueda servir lo agradezco de antemano

BoNi www.boni-works.tk

Por BoNi

6 de clabLevel



 

Begues(Barcelona)

msie
Citar            
MensajeEscrito el 06 Ene 2005 03:08 pm
no es muy clara la pregunta, podria especificar mas?

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

firefox
Citar            
MensajeEscrito el 06 Ene 2005 03:19 pm
Pues eso lo tendras que hacer tu a mano, pues no conozco ninguno, a base de condicionales y demas, aun asi lo veo bastante bastante dificil, tendras que controlar parentesis y demas simbolos, aun asi te recomiendo una cosa...... has probado con

x = valor ;
eval(expresion);

¿?¿?kizas funciones...

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 06 Ene 2005 06:52 pm
Vamos haber, estoy desarrollando un proyecto que representa funciones matematicas graficamente y como quiero que no tenga limitaciones, dejo al cliente que introduzca la funcion que le interese y para ello utilizo un campo de texto, al recoger la funcion del campo texto (ej: x*x+2*x+8 parabola) es de tipo String obiamente, luego la igualo a y; y=x*x+2*x+8, deveria quedar, pero por como reacciona queda y="x*x+2*x+8" y entonces no substituye x por el valor asignado: x=i ,siendo i el valor de un 'for', deveria ser del tipo Number no String, pero eso no es posible...no se... ¿¿alguien tiene una idea??

ICEMAN si tienes tiempo explicate un poco mas, porque la funcion eval() no se que hace exactamente pero m devuleve undefined :'(

Por BoNi

6 de clabLevel



 

Begues(Barcelona)

msie
Citar            
MensajeEscrito el 06 Ene 2005 06:58 pm
A porcierto, si es posible me gustaria contactar con vosotros, o con la comunidad www.cristalab.com, me ha ayudado mucho, aqui teneis mi e-mail: [email protected] y mi web que esta en cosntruccion pero algo hay: www.boni-works.tk

Muchas gracias a la gente que ayuda a los demas en estos temas tan comlejos, gente como la que hay aqui en www.cristalab.com Gracias! :D

Por BoNi

6 de clabLevel



 

Begues(Barcelona)

msie
Citar            
MensajeEscrito el 06 Ene 2005 07:07 pm
Ok, pues eval no tiene la "potencia" que pensaba que tenia, en fin, pues entonces creo que te tokara hacerlo a mano, es decir que lo parsee a mano, algo que en fin para mi seria algo mas que complikado... kizas encuentre algo por ahi... saludetes!

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 06 Ene 2005 07:09 pm
Gracias ICEMAN, yo estare por aqui xD, haber si es posible...

Oye y sobre la comparticion de alojamiento, es posible que me interese...

Por BoNi

6 de clabLevel



 

Begues(Barcelona)

msie
Citar            
MensajeEscrito el 06 Ene 2005 07:37 pm
Errrr, para contactar esta el foro, este foro

Acerca de tu pregunta, hay un tutorial similar en la secció de tutoriales, no es lo mismo, pero te puede servir como base, ve y buscalo :)

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

firefox
Citar            
MensajeEscrito el 06 Ene 2005 07:46 pm
oK gracias...

Por BoNi

6 de clabLevel



 

Begues(Barcelona)

msie
Citar            
MensajeEscrito el 12 Ene 2005 09:00 pm
Posublemente diga una huevada, pero hay algo llamado MATHML que se usa para eso, si pudieras usarlo en FLASH, quizá puedas hacer algo.
Saludos

Por WEREW0LF

769 de clabLevel

4 tutoriales
1 articulo
1 ejemplo

 

Buenos Aires - Argentina

msie
Citar            
MensajeEscrito el 03 Mar 2005 01:15 pm
Aca estoy haciendo algo provisorio, terminará siendo un editor de formulas matemáticas. Hechale un ojo a ver si te sirve.

http://www.weremsoft.com.ar/modules/news/article.php?storyid=21

Saludos

Por WEREW0LF

769 de clabLevel

4 tutoriales
1 articulo
1 ejemplo

 

Buenos Aires - Argentina

firefox
Citar            
MensajeEscrito el 03 Mar 2005 10:45 pm
Para hacerlo bien, tienes que tener conocimientos Teóricos de Compiladores, Análisis Lexico, Semántico y Sintáctico.

Pero bueno veo que tu formas un XML. Y de hay formas eso.
Yo partiria de funciones del mismo flash, que en poco code pueden ayudar mucho, algo como:

Código :

function suma() {
   resultado = 0;
   for (i in arguments) {
      resultado += Number(arguments[i]);
   }
   trace(resultado);
}
function parsear(texto) {
   operacion = texto.split('(');
   parametros = operacion[1].substr(0, operacion[1].length-1).split(',');
   eval(operacion[0]).apply(this, parametros);
}
//esto es lo de tu textfield, un String y lo parseas
mitexto = "suma(8,4,3)";
parsear(mitexto);


Saludos

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

clabbrowser
Citar            
MensajeEscrito el 04 Mar 2005 11:18 am
Bueno yo kiero decir que basicamente mi opcion seria hacer un prg capaz de analizar las expresiones y que se comunike con flash [tipo webservice] pero en local. Ya que entre otras cosas, flash no es que tenga "mucha potencia de fuego" si no mas bien se keda corto para calculos "importantes"

Y dejar a flash la parte de la interface grafica,

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

mozilla
Citar            
MensajeEscrito el 04 Mar 2005 12:07 pm
la idea es hacer un editor de fórmulas matemáticas, que permita escribir una ecuación o inecuación, una formula etc. in necesidad de pegar un .gif, pero solo eso, no hacer falta que las resuelva, solo que ayude a representarlas.
Firefox/Mozilla tiene soporte nativo para MathML(siempre y cuando tengas los fonts), pero IE y Opera no, para eso tenes que bajarte un plugin que pesa como 3 megas, y aún así, editar código mathml es medio engorroso para el contexto donde esta planificado.
La idea es hacer un editor de fórmulas, que te permita representar, de una manera rápida y sencilla, una expresión matemática para, por ejemplo, realizar una pregunta en un foro.

Puede ser que halla entendido mal el tópico, no sabía que quería resolverlas.
^^
La idea no es hacer un mathematica en flash.

Saludos.

Por WEREW0LF

769 de clabLevel

4 tutoriales
1 articulo
1 ejemplo

 

Buenos Aires - Argentina

firefox
Citar            
MensajeEscrito el 04 Mar 2005 01:32 pm
Estimado :

lo que estas buscando, creo, es un analizador sintáctico de formulas. Una vez implementé uno en Pascal basandome en un ejercicio de Tanhembaun que usaba el metodo BN. (hay que utilizar recursión) En ÁS2, la recursibidad solo permite 250 niveles, y dependiendo de lo complejo, puede quedar corto.

Saludos
karlos

Por karlos

0 de clabLevel



 

msie
Citar            
MensajeEscrito el 04 Mar 2005 05:58 pm
karlos; el problema del maximo nivel de recursión para ese tipo de cosas casi siempre lo soluciono usando pilas de objetos (Implementables con el objeto Array); se eleva el tamaño del codigo pero permite mas flexibilidad y menos limites

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

clabbofh

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.