Milyen egyszerű módszer van egyszerűbb műveleti sorrend feldolgozására?
Figyelt kérdés
Pl. hogy a 2+1*3-at jól értékelje ki.2013. ápr. 7. 21:45
2/7 A kérdező kommentje:
ezt kivéve :D
2013. ápr. 7. 22:34
3/7 anonim válasza:
Ez miért nem jó?
Szinte az összes valamire való program ezt használja és nem véletlenül, ennél jobb módszer nem nagyon létezik.
4/7 A kérdező kommentje:
oké de ehhez vermet kell kezelni
2013. ápr. 7. 23:56
5/7 anonim válasza:
És mi a baj vele?
Csinálsz egy tömböt vagy egy struktúrát, beleteszed a műveleteket. Majd ez alapján meghívod őket a megfelelő sorrendben.
Plusz írhatsz rá egy konvertert is.
6/7 iostream válasza:
Ha nem akarsz vermet kezelni, akkor írd meg rekurzívan: megkeresed a legkisebb precedenciájú műveletet, és a két oldalra hívd meg ugyanazt a függvényt, visszaadva az eredményüket elvégezve a műveletet.
Tehát (pszeudoC++-ban)
int fgv(str = "1 + 2 * 3 + 1")
{
//megkeressük az indexet, ahol a legkisebb precedencia van (ez a hátsó + jel)
switch (jel)
{
case '+':
return fgv(str.substr(0, n)) + fgv(str.substr(n+1));
}
}
7/7 anonim válasza:
Nem bántásból, de ha ezzel az egyébként rém egyszerű módszerrel az a problémád, hogy vermet kell kezelni, akkor egyenlőre ez még egy elég nagy falat számodra. Kezdetben egyszerűbb dolgokat gyakorolj.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!