Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Redosled operacija

[es] :: .NET :: .NET Desktop razvoj :: Redosled operacija

[ Pregleda: 4202 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

cvolka11

Član broj: 163510
Poruke: 55
109.72.57.*



Profil

icon Redosled operacija22.12.2009. u 23:26 - pre 174 meseci
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?
 
Odgovor na temu

w3bl0rd
Varaždin, Hrvatska

Član broj: 82659
Poruke: 380
213.147.114.*



+26 Profil

icon Re: Redosled operacija23.12.2009. u 06:27 - pre 174 meseci
probaj ovako 2+ (3*4), makar, ovo je u samom kodiranju, sad što si ti napravio u čemu i kako nemam ja pojma...
there's no place like 127.0.0.1
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: Redosled operacija23.12.2009. u 11:39 - pre 174 meseci
Na koji nacin unosis matematicke izraze?
 
Odgovor na temu

cvolka11

Član broj: 163510
Poruke: 55
109.72.57.*



Profil

icon Re: Redosled operacija23.12.2009. u 12:39 - pre 174 meseci
Izrazi se unose u textBox-u,napisao sam programsku logiku da to računa ali sam blokirao na ovome.
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: Redosled operacija23.12.2009. u 14:07 - pre 174 meseci
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
 
Odgovor na temu

Cola
Slađan Čolić
Banja Luka

Član broj: 23736
Poruke: 160
*.lanaco.com.

Sajt: www.knjigaimena.com


+5 Profil

icon Re: Redosled operacija23.12.2009. u 14:21 - pre 174 meseci
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")
 
Odgovor na temu

DarkMan
Darko Matesic

Član broj: 20445
Poruke: 572
93.86.217.*

Jabber: DarkMan


Profil

icon Re: Redosled operacija23.12.2009. u 15:13 - pre 174 meseci
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
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Redosled operacija

[ Pregleda: 4202 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.