Ezt Pascalba hogyan csinálhatom meg?
Egy egyszerü számológépt akarok csinálni(pont olyant, amilyen a telefonodba van). Eddig megcsinaltam minden gombot, és a gombokra kattintva egy edit lapon beg is jelenik, amit beütöttél. Mikor végeztél a beütéssel lesz egy stringed, pl: '5*3-1'. Ezt hogy változtatod '14'-re?
Tudom, hogyan lehet floatbol stringbe, stringbol integerbe alakitani, de egy ilyen stringet nem lehet az operatorok miatt. Válaszaitokat előre is köszönöm
Tokenizálod, fordított lengyel formára hozod, kiértekeled egy verem kiértékelővel, aztán már csak meg kell jeleníteni az eredményt.
Egy pár évvel még visszább jársz ennél tudásban.
Két lehetőséget látok:
1. keresel egy olyan alkalmazást, aminek át tudod adni a string-et az pedig visszaadja a választ
2. meg kell írnod azt a rutint ami a matematika szabályainak megfelelően felbontja a string-ed majd elvégzi a diszkrét műveleteket és kiszámolja a végeredményt
Az első nyilván kevésbé elegáns, plusz szükséged lesz egy másik programra is. A második... megfelelően komplex ahhoz, hogy egy csomó dolgot megtanulja a matematikáról és a programozásról. Külön érdekes, hogy ha a string-ed tartalmaz zárójeleket is, mert akkor akár a rekurzióba is bele lehet menni.
Miért gyűjtenéd egy változóba az eredményt?
Legyen egy string típusú változó, ami a számológép kijelzőjén lévő értéket tárolja és legyen egy változó, amiben pedig az adott matematikai művelet eredményeit tárolja. Esetleg lehet tömb, hogy az előzményeket is tárolni tudd.
Ne szenvedjél már, bazzeg.
Az első válaszoló megírta hogy kell, illetve, hogy kéne csinálnod.
Te még kicsi vagy ehhez. Ezt is megírta.
A stringen végig kell lépkedni karakterenként, kiértékelni és be a verembe:
if char isNumeric then
if char isOperator then
if char isPass then
esetleg így
Case operator of
'+': ..
'-': ..
'*': ..
'/': ..
else ErrorVanBazzmegErroooor;
Lehet lepontozni, de csak azért van, mert nem értetek hozzá.
Már a kifejezés tokenizálása sem triviális, sőt, kifejezetten nehéz. Állapotgépeket, formális nyelveket kell ismerni hozzá.
Biztos menni fog kis próbálkozás után olyannak, aki ennyire kezdő még.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!