Kezdőoldal » Számítástechnika » Programozás » Free Pascal-ban hogyan deklara...

Free Pascal-ban hogyan deklaraljuka vermeket, esetleg egy pelda program hogy hogyan haszaljuk a vermeket?

Figyelt kérdés

2014. febr. 28. 15:32
 1/7 anonim ***** válasza:
49%
Pontosan úgy deklaráljuk mint bármely más nyelvben. Mivel a verem egy absztrakt adattípus, nyelvfüggetlen a deklarációja. Alapvetően négy dolgot kell tudnia egy veremnek: betesz, kivesz, visszaadja a felső elemet és visszaadja az "üres?" kérdésre adott választ. Ezeket nem túl nehéz leprogramozni. Megvalósítható például tömbbel, vagy elegánsabban láncolt listával.
2014. febr. 28. 15:40
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:
es tomb-el hogy valosithato meg?
2014. febr. 28. 15:47
 3/7 anonim ***** válasza:

A kérdés ott sántít kissé, hogy lehet statikusan és dinamikusan is megoldani, a két implementáció pedig jelentősen különbözik egymástól, ráadásul ezen két tulajdonság mellett is még számos döntés befolyásolja a végeredményt.


A legegyszerűbb megoldás, amely nemcsak hogy statikus, de egyben egetverő merénylet is:


- Deklarálj egy tömböt, ez lesz a verem

- Deklarálj egy a verem tetejét (index - veremmutató) jelző változót

- Ha a verembe beraksz adatot, az index által megadott helyre teszed, majd növeled az indexet

- Kivételkor először csökkented az indexet, majd kiolvasod az általa mutatott értéket

- Ha a veremmutató nulla, a verem üres, ha tömbmérettel megegyező, akkor a verem tele van

- Üres veremből nem vehetsz ki értéket, teli verembe pedig nem tehetsz bele


Egy tisztességes megoldás ennél persze jóval komplexebb, de a fentieket szemléltetésnek szántam, nem production-ready kódnak.

2014. febr. 28. 15:58
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:

Úgy, hogy pakolgatsz a tömbbe elemeket, egy veremmutatót meg mindig állítgatsz kivételnél, berakásnál.

Érdemes bele hibakezelést tenni, ha kiürülne a verem, vagy ha betelne (vagy helyette nagyobb tömböt allokálni neki).

2014. febr. 28. 16:00
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:

Ahogy már fentebb írták.

A Pascal nyelv nem tartalmazza sem a lista, sem a sor, sem a verem adattípusokat. Ezeket legtöbbször egy tömbben szoktuk emulálni, amely lehet statikus tömb, de ha igazán hatékonyan akarod megoldani, akkor dinamikus memóraifoglalást használsz.

Igazából nagyon alapszinten nincs szükséged másra, mint egy tömbváltozóra, valamint egy egész típusó változóra, amiben azt tárolod, hogy hol van a verem teteje. Továbbá kell kér eljárás, az egyik, amivel beteszel a verembe egy elemet, a másik pedig amivel kiveszel belőle. Betenni úgy tudsz, hogy a veremmutatóként használt változót megnöveled (1-gyel), és a verem adott elemébe (ahová a veremmutató mutat) beírod az új értéket. Kivenni pedig szintén egy értékadás, valamint a veremmutató csökkentése.

Persze, ha nem akarsz hibákba belefutni, le kell ellenőrizned azt is, hogy létezik-e a verem adott eleme, és mondjuk nem a -1. elemet akartad-e olvasni.

2014. febr. 28. 17:31
Hasznos számodra ez a válasz?
 6/7 anonim válasza:
0%
vermeket probalhatod vektorialis fol irni bar C++ ertek de szerintem megoldhato a pascalban masok a parancsok valaki ha segit akkor okes
2014. febr. 28. 18:40
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:

"vermeket probalhatod vektorialis fol irni bar C++ ertek de szerintem megoldhato a pascalban masok a parancsok valaki ha segit akkor okes"

A fene azt az értelmi fogyatékos fajtádat, hogy odaengedik az internet elé!!!

2014. febr. 28. 19:25
Hasznos számodra ez a válasz?

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!