[ 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? |
[ cvolka11 @ 22.12.2009. 23:26 ] @
[ 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 Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|