[ cvolka11 @ 22.12.2009. 23:26 ] @
Uradio sam program,nešto slično digitronu i radi Ok,ali ne pamti redosled operacija,npr njemu je 2+3*4=20.
Da li neko ima ideju kako to da se realizuje?
[ w3bl0rd @ 23.12.2009. 06:27 ] @
probaj ovako 2+ (3*4), makar, ovo je u samom kodiranju, sad što si ti napravio u čemu i kako nemam ja pojma...
[ Shadowed @ 23.12.2009. 11:39 ] @
Na koji nacin unosis matematicke izraze?
[ cvolka11 @ 23.12.2009. 12:39 ] @
Izrazi se unose u textBox-u,napisao sam programsku logiku da to računa ali sam blokirao na ovome.
[ Shadowed @ 23.12.2009. 14:07 ] @
Probaj da napravis rekurzivnu funkciju koja ako dobija jednu operaciju izracunava je, ako dobija izraz deli ga na dva operanda pri cemu je jedan pod-izraz koji prosledjuje samoj sebi na racunanje.
Na primer, ako ti se funkcija zove Racunaj i imas izraz 3+(2+1)*4
Pozivas Racunaj("3+(2+1)*4")
Ona onda vraca 3 + Racunaj("(2+1)*4)").
pa ce ovaj drugi poziv vracati Racunaj("2+1")*4
[ Cola @ 23.12.2009. 14:21 ] @
Lepo zamišljeno sviđa mi se :D samo o5 treba da se pazi na redosled jer ako se prosledi
3*(2+1)+4
da ne podeli na sledeća dva
3 * Racunaj("(2+1)+4")
[ DarkMan @ 23.12.2009. 15:13 ] @
Kalkulacija matematickih izraza se obicno radi konverzijom infix u postfix notaciju (tz. Reverse Polish Notation).
Na primer izraz u infix notaciji:
Code:

2 + 3 * 4

se konvertuje u postfix notaciju
Code:

2 3 4 * +

Sama konverzija i na kalkulacija izraza se vrsi koriscenjem stekova.
Link ka algoritmu za konverziju:
http://en.wikipedia.org/wiki/Shunting_yard_algorithm

Na netu postoje gotova resenja, pa probaj neki koji ti odgovara:
http://www.codeproject.com/KB/cs/rpn_expressionparser.aspx
http://www.c-sharpcorner.com/U...005062213AM/MathExpParser.aspx