Ajánlott elemi feladatok az AAO tárgyhoz 41 feladat Ha a feladat értelmezésével kapcsolatban probléma merül fel a vizsgán, meg kell kérdezni a vizsgáztató tanárt a megoldás megkezdés eltt. A feladatokat az írásbeli vizsgán papíron kell megoldani. A feladatlapon el lesz írva, hogy a megoldás struktogramon vagy pszeudokódban, illetve forráskódban történjék. Utóbbi esetben a hallgató választása szerint Turbo Pascal, Delphi vagy Turbo C 3.0 környezetet feltételezve kell a megoldást megadni. A hallgató feladata, hogy a programot úgy tervezze meg, hogy az eredmény egyszeren ellenrizhet legyen. 1. Olvassunk be nemnegatív egész számokat és írjuk ki a szám kettes számrendszerbeli alakját. A 0 (nulla) beolvasására álljon le a program. 2. Írjunk programot, amely egytl n-ig a következ sorozat értékét kiszámítja, majd kiírja: 1 (2 + 3 (4 + 5 ( n) )) Útmutató: Két egymást Pascalban hívó függvénnyel megoldható a feladat. Az egyik függvényt Forward segítségével kell deklarálni. 3. Olvassunk be egy karakterláncot, és kezeljük karakter típusú tömbként. Az els jaj részláncot helyettesítsük hajaj -jal. (Természetesen jaj és hajaj helyett más részláncokkal is mködjön a program. 4. Olvassunk be egy karakterláncot, és kezeljük karakter típusú tömbként. Vegyük ki belle a felesleges szóközöket (két szó között csak egy szóköz maradjon, a lánc elején és végén ne legyen szóköz). 5. Olvassunk be egy karakterláncot, és kezeljük karakter típusú tömbként. Keressük meg az els <<< és >>> közé zárt részláncot, és írjuk ki. 6. Olvassunk be egy karakterláncot, és kezeljük karakter típusú tömbként. A kapcsos zárójelek, azaz { és } közé es részek megjegyzések. Állítsunk el egy másik karakterláncot, amelyben a megjegyzések törölve vannak. Megjegyzésbe beágyazott másik megjegyzést nem engedünk meg. 7. Olvassunk be egy karakterláncot, és kezeljük karakter típusú tömbként. Számoljuk meg, hogy az angol abc nagybeti (A..Z) hányszor fordulnak el a láncban. 8. Olvassunk be nemnegatív egész számokat, és írjuk ki a szám 16-os számrendszerbeli alakját. A 0 (nulla) beolvasására álljon le a program.
9. Írjuk ki két beolvasott pozitív egész szám közötti prímek összegét! 10. Legyen G = 4 k Gk 1G (k > 2), ahol 1. k 2 G = Legyen n<=1000 tetszleges. 1 2 Határozza meg értékét. A megoldás legyen memória-takarékos, a sebesség nem kritikus. Gn =G 11. Legyen G = 4 k Gk 1G (k > 2), ahol 1. k 2 G = Legyen n<=1000 tetszleges. 1 2 Határozza meg értékét. A megoldás ha lehet történjék rekurzív módon. Gn =G 12. Legyen G = 4 k Gk 1G (k > 2), ahol 1. k 2 G = Legyen n tetszleges. Határozza 1 2 meg értékét. Gn =G 13. Legyen adott egy a n valós számokat tartalmazó rendezett tömb, n<= K, ahol K konstans. Legyen adott x. Bináris kereséssel döntsük el, hogy x benne van-e a tömbben. Keressük meg a minimális index elemet a sorozatban, melynek értéke egyenl x-szel. 14. Olvassunk be nemnegatív, maximum 5 jegy egész számokat 0 végjelig. Állapítsuk meg, hány 1, 2, 3, 4 vagy 5 jegy szám volt közöttük, és azon belül hány végzdött 0-ra, 1-re,, 9-re!. 15. Olvassa be két kör középpontjainak és sugarainak koordinátáit! Írja ki, hogy a két kör érinti egymást, egy közös pontja van, vagy több közös pontja van. 16. Legyen adott két szakasz a végpontjaikkal. Határozza meg a metszéspont koordinátáit, ha van, írja ki, ha nincs megoldás. 17. Legyen adott egy n és m természetes szám. Keressük meg azt a k természetes számot, melyre n k-1 <= m! <= n k. 18. Legyen adott egy A pozitív valós szám. Számítsuk ki A négyzetgyökét (sqrt függvény nélkül!!) eps pontossággal, ahol eps tetszleges beolvasott pozitív szám. Útmutató: x i =0,5*(x i-1 + A/x i-1 ) (i>1), x 1 =1 iterációt lehet használni, e sorozat a gyökhöz konvergál.
19. Legyen adott n, k, m természetes számok, mindhárom kisebb, mint 26. Jelenítse meg a képernyn azt az n*k méret tömböt, amelyben az angol ábécé els m darab nagybetje szerepel sorfolytonosan, ha elfogy kezddik ellrl. Példa: n=4, k=5, m= 3 esetén A B C A B C A B C A B C A B C A B C A B 20. Alakítson egy pozitív római számot arab számmá. 21. Alakítson egy pozitív arab számot római számmá. 22. Az (x 1,y 1 ), (x 2,y 2 ),,(x n,y n ) értékpárok egy síkbeli pontrendszer elemeinek koordinátái. A koordináták valós típusú értékek. A pontok száma minimum kett. Határozzuk meg a két egymáshoz legközelebb es pontot. 23. Az (x 1,y 1 ), (x 2,y 2 ),,(x n,y n ) értékpárok egy síkbeli pontrendszer elemeinek koordinátái. A koordináták valós típusú értékek. A pontok száma minimum kett. Határozzuk meg a két egymáshoz legtávolabb es pontot. 24. Az (x 1,y 1 ), (x 2,y 2 ),,(x n,y n ) értékpárok egy síkbeli pontrendszer elemeinek koordinátái. A koordináták valós típusú értékek. A pontok száma minimum kett. Határozzuk meg a pontoknak az origótól vett távolságait, és rakjuk a pontokat eszerint csökken sorrendbe. 25. Olvassunk be egy karakterláncot, és kezeljük karakter típusú tömbként. Számoljuk meg, hogy hány szó szerepel benne! (Szó: szóközt nem tartalmazó részsorozat) Tekinthetjük úgy, hogy csak angol betk és szóközök megengedettek. 26. Olvassunk be egy karakterláncot, és kezeljük karakter típusú tömbként. Számoljuk ki a karakterláncban szerepl szavak átlagos szóhosszát! (Szó: szóközt nem tartalmazó részsorozat) Tekinthetjük úgy, hogy csak angol betk és szóközök megengedettek. 27. Az (x 1,y 1 ), (x 2,y 2 ),,(x n,y n ) valós értékpárok egy síkbeli, n csúcspontú konvex sokszög csúcspontjainak az óramutató járásával ellenkez irányú körüljárási sorrend szerinti koordinátái. Számítsuk ki a sokszög kerületét.
28. Az (x 1,y 1 ), (x 2,y 2 ),,(x n,y n ) valós értékpárok egy síkbeli, n csúcspontú konvex sokszög csúcspontjainak az óramutató járásával ellenkez irányú körüljárási sorrend szerinti koordinátái. Számítsuk ki a sokszög területét. Útmutató: az origót összekötve a csúcsokkal háromszögeket kapunk. Egy háromszög területét ha az oldalakat a, b, c jelöli a Heron képlettel számolhatjuk: T = s( s a)( s b)( s c), ahol s=0,5*(a+b+c). 29. Adott egy egész számokat tartalmazó n*k méret mátrix (=kétdimenziós tömb). Határozzuk meg azt az (i,j) indexet, ahol a mátrixnak minimumhelye van. Ha több ilyen van, az els megtalált helyet kell megkeresni. 30. Adott egy egész számokat tartalmazó n*k méret mátrix (=kétdimenziós tömb). Szúrjuk be els sorként az eredeti oszlopösszegeket tartalmazó sort, és a kapott (n+1)*k méret mátrixot írjuk ki. 31. Adott egy egész számokat tartalmazó n*k méret mátrix (=kétdimenziós tömb). Töröljük a nulla összeg oszlopokat. 32. Egy négyzetes mátrixot bvös négyzetnek nevezünk, ha a sorok és oszlopok, valamint az átlók összege ugyanaz a szám. Ellenrizzük, hogy egy adott mátrix bvös négyzet-e. A mátrixban csak nemnegatív egész számok szerepelhetnek. 33. Legyenek A és B halmazok (matematikai értelemben), melyek pozitív egész számokat tartalmaznak. Tegyük fel, hogy az A halmaz n elem, a B halmaz pedig m elem. Ekkor feltehetjük, hogy a két halmaz A={a 1,a 2,...,a n } illetve B={b 1,b 2,...,b m } formában adott, ahol a megfelel véges sorozatok nem feltétlenül rendezettek. Készítse el azt az algoritmust, amely elállítja a C=A\B halmazt (A mínusz B) C={c 1,c 2,...,c k } formában. Feltesszük, hogy a halmazok számossága legfeljebb L. 34. Legyen x egy tetszleges, 1000-nél kisebb pozitív egész. Írja meg azt az algoritmust, amely egy sz változóba kiszámítja x prímosztóinak számát. 35. Legyenek A és B halmazok (matematikai értelemben), melyek pozitív egész számokat tartalmaznak. Tegyük fel, hogy az A halmaz n elem, a B halmaz pedig m elem. Ekkor feltehetjük, hogy a két halmaz A={a 1,a 2,...,a n } illetve B={b 1,b 2,...,b m } formában adott, ahol a megfelel véges sorozatok nem feltétlenül rendezettek.
Készítse el azt az algoritmust, amely elállítja a C={c 1,c 2,...,c k } formában. Feltesszük, hogy a halmazok számossága legfeljebb L. C = A B (A metszet B) halmazt 36. Írjanak programot, amely egy x természetes számból, és egy ε hibakorlátból kiszámítja x e -t a következ sor segítségével: 2 3 x x e x = x + + +... 2! 3! Az összeget addig számolja, amíg az utolsó tag abszolút értéke kisebb nem lesz egy adott epszilonnál. A következ tagot, tehát a számlálót és a nevezt is az elz tagból számolja ki. Mivel ez közelítés, írja ki a közelítések számát is. 37. Írjon programot, amely beolvas számokat. Az utolsó beérkez adat, amely már nem eleme a sorozatnak a 7777. Rendezze a sorozatot beszúró rendezéssel. Ezután olvasson be még egy számot, és bináris kereséssel keresse meg, hogy ez a szám a sorozatnak eleme-e. Ha igen, hányadik a sorban. 38. Írjanak programot,, amely egy rendezett sorozatban ( a 1 a 2... a n ) megtalálja a legkisebb leggyakrabban elforduló elemet és az elfordulás számát. ( pl. 1 1 2 2 2 3 4 4 4 5 5 5 5 8 8 9 9 9 9 11 11 12 15 15, ez a szám az 5, elfordulási szám:4) 39. Készítsünk bvös négyzetet (vízszintesen, függlegesen, ill átlósan az összeg egyenl), amely prímszámokból áll. Egy megoldást az alábbi ábra szemléltet: 67 1 43 13 37 61 31 73 7 Van-e más 3*3 as prím-bvös négyzet? Készítsük el az összes olyan 3*3-as bvös négyzetet, melynek elemei prímek, és egy adott N természetes számnál kisebbek. A bvös négyzetben szerepl kilenc szám legyen mind különböz. A feladat szempontjából 1-et is prímnek tekintjük (bár nem az). 40. Legyen adott egy n * n es tömb. Tegyük fel, hogy a tömb elemei 0 és k közé esnek, ahol k kett hatványa ( pl.:64 vagy 256). Számoljuk meg, hogy mely k értékeknek mi a gyakorisága! Az input képet (kis n esetén) a karakteres képernyn is meg tudjuk jeleníteni, karakteres formában. A feladat a digitális képfeldolgozásban nyer alkalmazást. Képzeljük el, hogy a tömb egy képet ír le, melyben a tömb elemei ún. szürkeségi szintet jelentenek, azaz a fényintenzitást írják le. Szeretnénk ellenrizni, hogy a kép szerepel-e egy adatbázisban, amit úgy végzünk el, hogy a szürkeségi statisztikát hasonlítjuk össze rendre az adatbázisban szerepl modellekkel. Az összehasonlítás mértéke legyen az euklideszi távolság. Az algoritmus elve a következ. Vegyünk fel egy k hosszúságú tömböt, melyet úgy
inicializálunk, hogy a kezdetben minden eleme nulla. Menjünk végig a képmátrix elemein sorfolytonosan, és az adott képpont értékének megfelel index tömbelem értékét növeljük eggyel. A végén a leszámoló tömböt rendezzük sorba nagyság szerint csökken sorrendbe. 41. Legyen adott egy n * n es tömb. Tegyük fel, hogy a tömb elemei 0 és k közé esnek, ahol k kett hatványa ( pl.:64 vagy 256). Az input képet (kis n esetén) a karakteres képernyn is meg tudjuk jeleníteni, karakteres formában. Nevezzük a tömböt a továbbiakban szürke képnek. Szeretnénk a szürke képbl fekete fehéret készíteni. Ezt úgy végezzük, hogy kiszámítjuk elször a képpontok átlagát, majd egy pontot a szerint veszünk fehérnek vagy feketének, hogy a szürkeségi értéke kisebb vagy nagyobb-e az átlagnál. (Az átlagot is jelenítsük meg ). Írjuk ki a kapott fekete-fehér képet. Az output képet (kis n esetén) a karakteres képernyn is meg tudjuk jeleníteni, karakteres formában, a fekete helyére 1-et téve, a fehéret üresen hagyva.