Összeállította: Gergely János Verem - feladatok Összeállította: Gergely János
1. feladat A feladatot a főprogramban valósítjuk meg Létrehoz(verem) Be(alapszám, szám) Ciklus verem.Verembe(szám % alapszám) szám /= alapszám Amíg szám > 0 Ciklus amíg verem.Elemszám>0 Ki(verem.Veremből) Ciklus vége
2. feladat Most megengedjük, hogy az alapszám 10-nél nagyobb legyen (mondjuk hagyjuk 20-ig) A probléma csak annyi, hogy 9 fölött elfogynak a számjegyek Erre az a megoldás, hogy bevezetjük az ABC nagybetűit 10 fölött, és egy stringben ezt meg is tanítjuk a programnak. Az algoritmus lényege ugyanaz, mint az előző Dolgozzunk most is a főprogramban az előző után!
2. feladat Létrehoz(st) //Ez most egy típus nélküli verem lesz Be(alapszám, szám) maradékok = ”0123456789ABCDEFGHIJ” Ciklus st.Verembe(maradékok[szám % alapszám]) szám /= alapszám Amíg szám > 0 Ciklus amíg verem.Elemszám>0 Ki(st.Veremből) Ciklus vége
3. feladat A megoldás ugyanaz, mint amit a lista feltöltésénél használtunk, csak függvény fejében a paraméter nem lista, hanem verem típusú A különbség még, hogy a verembe beírt elemek számát itt a függvényben határozzuk meg. Feltölt: bemenő paraméterek (ah, fh egészek), visszatérési érték(verem egészekből) Létrehoz(st) db = véletlen(5,15) Ciklus i = 0 – tól db – ig st.Verembe(véletlen(ah,fh)) Ciklus vége vissza st Függvény vége A főprogramban verem = Feltölt(100,200);
4. feladat 7 Az első n-1 elemet kiolvassuk az eredeti veremből, ezeket áttesszük egy segéd verembe. Az n-edik elemet kivesszük a veremből 9 5 1 4 3 st segéd
4. feladat 5 A segéd veremből visszamásoljuk az elemeket az eredeti verembe Figyelnünk kell arra is, hogy van – e olyan hosszú a verem, hogy törölhetünk belőle. 1 4 9 3 7 st segéd
4. feladat TörölN: Bemenő paraméter (st cím szerint verem egészekből, n egész), Visszatérési érték: string Létrehoz(segéd) Ha n < st.Elemszám akkor Ciklus i = 0 - tól n – 1 - ig segéd.Verembe(st.Veremből) Ciklus vége vissz = st.Veremből Ciklus i = 0 – tól n – 1 – ig st.Verembe(segéd.Veremből) Elágazás vége Különben vissz = ”Nem sikerült a törlés” Vissza vissz Függvény vége
5. feladat Szinte pontosan ugyanaz, mint a lista kiírása, csupán a bemenő paraméter most nem lista, hanem verem. VeremKiÍr: Bemenő paraméter (st verem egészekből), Visszatérési érték: nincs Ciklus minden x elemre st-ből Ki(x) Ciklus vége Függvény vége Persze a C# függvényben figyelnünk kell arra is, hogy a kiírás külalakja is megfelelő legyen
6. feladat Szinte szóról szóra ugyanaz, mint a 4. feladat volt, a különbség csak az, hogy a közepén nem olvasunk az st veremből, hanem beleírjuk a paraméterként átadott értéket Házi feladat: Kérjünk be egy mondatot, majd nézzük meg, hogy palindróma-e! A palindróma olyan szöveg, mely visszafelé olvasva is ugyanaz, például: Géza kék az ég. A megoldás algoritmusa Másoljuk át a mondatot egy új stringbe, ez már szóköz és írásjelek nélküli legyen! Tegyük nagybetűssé az így átalakított szöveget (szöveg = szöveg.UpCase) Másoljuk be ezt a szöveget karakterenként egy verembe. Egy új változóba másoljuk vissza a verem tartalmát. Hasonlítsuk össze ezt a nagybetűs szöveggel, ha egyeznek palindróma, különben nem