Dobry den,
potrebujem malicky hint, nie kod, s parsovanim matematickeho vyrazu. Skoro vsetko je pripravene. Jedine co potrebujem je zo vyrazou rozlist ci ide o cislo, operator, funkciu, posledne dve nebudu problem ak sa zbavim cisel.
Z vyrazu "4*(x^3*sin (2+tan(5*x)) - x+2*log(a-\n3*x)/4)" som dostat Map:
{@a=4*@e, @b=tan:5*x, @c=sin:2+@b, @d=log:a-3*x, @e=x^3*@c-x+2*@d/4}
kde operatory su zatial: {+,-,*,/,^} a preddefinovane funkcie su zapisane v tvare: "f:<vyraz vnutry funkcie>" neskor pribudnu dalsie. Vzdy funkcia zacina a-ckom.
Napadlo ma ze budem tie znaky citat za sebou, budem mat definovane podmienky pre cislo, premenu, funkciu ..., ak dalsi znak podmienku nesplni tak sa precitane spracuje a zacnem citanim noveho. Ale toto sa mi nezda velmi elegantne riesenie. Cize ak ma niekto nejaky iny lepsi navrh, tak by som poprosil.
Skusal som aj rozne kniznice na parsovanie matematickych vyrazou, ale z istych dovodou mi nevyhovuju.