Közös követelmények:
- A feladatokat önállóan, esetleges oktatói segítség igénybevételével kell
megvalósítani. A beadott feladatok többszintű másolásellenőrzés alá
kerülnek.
- A kiírt feladatokat a turdus.itk.ppke.hu szerver
/home/flugi/proghazi/<azonosító>/<hét sorszáma>
könyvtárában kell elhelyezni. A könyvtárakat létrehozni a
/home/flugi/proghazi/bevprog_proghazi_init parancs
futtatásával lehetséges.
- A feltöltött anyagoknak a következő elnevezési sémát kell követnie:
<témakör>-<sorszám><feladatrész>.<kiterjesztés>, a
fájlnévben csak kis betű használható, pl. i-1.plang, i-8a.cpp,
iv-3c.cpp.
- A beadott kódot nem kell dokumentálni, azonban specifikálni igen
(alprogramot tartalmazó feladat esetén minden alprogramot külön kell
specifikálni).
- Csak a hibátlanul működő, a specifikációnak és a feladatnak
megfelelő
program fogadható el.
I. Kifejezések
1. Döntsd el egy egész számról, hogy páros-e.
2. Döntsd el egy tetszőleges számról, hogy egy adott intervallumba esik-e.
3. a) Döntsd el egy koordinátákkal adott pontról, hogy az origó-e.
b) Döntsd el, hogy az egyik koordinátatengelyre esik-e.
4. Számítsd ki egy adott sugarú gömb térfogatát.
5. a) Döntsd el két egész számról, hogy az első osztója-e a másodiknak.
b) Döntsd el, hogy bármelyik osztója-e a másiknak.
6. Döntsd el három számról, hogy lehetnek-e egy háromszög oldalhosszai.
7. Döntsd el két számról, hogy megegyezik-e az előjelük.
8. a) Add meg egy számtani sorozat első két elemének ismeretében a
harmadik elemét.
b) Add meg az N-edik elemét.
c) Mértani sorozatra is add meg az N-edik elemet.
9. Számítsd ki egy háromszög területét az oldalhosszaiból.
10. Számítsd ki két térvektor vektoriális szorzatát (koordináták használatával).
11. a) Add meg egy koordinátákkal adott pont távolságát az origótól.
b) Két tetszőleges, koordinátáival adott pont
távolságát add meg.
12. Add meg egy másodfokú egyenlet megoldásait.
13. Számítsd ki egy síkbeli koordinátákkal megadott háromszög szögeit.
14. Döntsd el egy szövegről, hogy szóközzel kezdődik-e.
15. Döntsd el egy szövegről, hogy nagybetűvel kezdődik-e.
16. Döntsd el egy szövegről, hogy számjegyre végződik-e.
17. a) Döntsd el egy szövegről, hogy ugyanazzal a karekterrel kezdődik-e,
mint amivel végződik.
b) Azt is fogadd el egyezésnek, ha az egyik kisbetű, a másik nagybetű
(pl. nagy A-val kezdődik, kis a-ra végződik).
18. Döntsd el két szövegről, hogy megegyezik-e az első öt karakterük.
19. a) Add meg egy tetszőleges szöveg első szavát.
b) Egy tetszőleges szövegnek töröld le az első szavát.
c) Egy tetszőleges szöveg első szavát cseréld le egy másik, adott szóra.
20. Egy tetszőleges szót alakíts át úgy, hogy nagybetűvel kezdődjön.
21. a) Két tetszőleges szövegről döntsd el, hogy az első megtalálható-e a
másodikban.
b) Két tetszőleges szövegről döntsd el, hogy valamelyik megtalálható-e a
másikban.
c) Egy szövegből töröld ki egy másik szöveg első előfordulását.
II. Vegyes feladatok
1. a) Írj ki N darab *-ot.
b) "Rajzolj" ki egy NxN-es négyzetet *-okból.
c) Rajzolj ki egy N hosszú befogójú, egyenlő szárú derékszögű
háromszöget *-okból.
d) Rajzolj ki egy N oldalhosszúságú, csúcsára állított rombuszt *-okból.
e) Rajzolj ki egy NxN-es sakktáblát, a sötét mezőket **, a világosakat
szóközök jelöljék.
2. a) Három egész szám közül add meg a legnagyobbat.
b) Add meg növekvő sorrendben a számokat.
3. Sorold fel két pozitív egész szám közös osztóit.
4. Sorold fel az első N négyzetszámot.
5. Sorold fel a K-nál kisebb négyzetszámokat.
6. Állíts elő N darab véletlenszámot.
7. Add meg az N. Fibonacci-számot. A Fibonacci sorozat egész számokból
áll, az első két tagja
0 és 1, és minden további tagja az előző két tag
összege.
8. Egész számhármasok tetszőleges sorozatát módosítsd úgy, hogy minden
hármas növekvő sorrendben legyen.
9. Sorold fel azokat a másodfokú egyenleteket, amelyek minden együtthatója
0 és 10 közötti egész szám, és pontosan egy megoldása van.
10. Add meg a Pascal-háromszög első N sorát.
11. Add meg egy tetszőleges számsorban az ismétlődő számokat.
12. a) Ellenőrzött módon olvass be egy pozitív egész számot: ha nem számot
kapsz, hibaüzenet után olvasd be újra. Ha öt próbálkozás után sem
kapsz számot, egy hibaüzenettel állj meg. Egyébként írd ki a kapott
szám háromszorosát.
b) Negatív számot is ismerj fel.
c) Tizedestörtet is ismerj fel.
d) Hatványkitevős alakot is ismerj fel (2e3 = 2*10^3 = 2000,
2e-3 = 0.002).
13. a) Egy két tagú névnek add meg a monogrammját.
b) Egy akárhány tagú névnek add meg a monogrammját.
14. a) Egy tetszőleges szövegben keresd meg az "alma" szó első
előfordulását, és cseréld le a "körte" szóra.
b) Az "alma" és "körte" szavak helyett tetszőleges szót lehessen
megadni.
c) Az összes előfordulást cseréld le.
15. Egy tetszőleges szöveg minden szavát alakítsd át nagybetűvel
kezdődőre.
16. a) Egy tetszőleges szövegből töröld ki az "alma" szó összes
előfordulását.
b) Az "alma" helyett tetszőleges szót lehessen megadni.
17. a) Egy olyan szövegből, amiben van pontosan egy zárójelpár, add meg a
zárójelben levő
részt.
b) Ismerd fel, ha nincs zárójel a szövegben.
c) Ismerd fel, ha hibás a zárójelezés.
d) Több zárójelpár esetén add meg mindegyik tartalmát.
e) Ha a zárójelen belül újabb zárójelpár van, akkor is a teljes külső
zárójelpár taralmát add meg.
18. Egy tetszőleges szövegben alakítsd át a kisbetűket nagybetűkké, a
nagybetűket pedig kisbetűkké.
19. a) Egy páros egész számokból álló számsor minden elemének add meg
a felét.
b) tetszőleges egész számokból álló számsorban add meg az elemek
felét, a páratlan számokat kihagyva.
c) Páratlan számoknak is add meg pontosan a felét.
20. a) Fordíts meg egy tetszőleges egész számsort.
b) Fordíts meg egy tetszőleges szöveget.
21. Sorold fel egy tetszőleges egész számsor összes részsorozatát.
22. Add meg két tetszőleges szövegről, hogy mely pozíciókon vannak azonos
karaktereik.
23. Add meg egy tetszőleges szöveg karaktereinek az összes permutációját.
24. Egy tetszőleges szöveget módosíts úgy, hogy a sorai elé írod az adott
sor sorszámát.
25. Add meg egy tetszőleges szövegnek minden szavát
külön-külön.
26. a) Add meg egy természetes szám prímtényezos felbontását.
b) Az első N természetes szám felbontását add meg.
27. a) Add meg egy tetszőleges természetes szám 16-os számrendszerbeli
alakját.
b) Add meg a szám tetszőleges számrendszerbeli alakját.
c) tetszőleges számrendszerben adott számnak add meg egy
tetszőleges számrendszerbeli alakját.
28. Adott egy szöveg, ami minden sorában szóközzel elválasztott egész
számokat tartalmaz. Add meg minden sorhoz a benne található
legnagyobb páros számot. (Vigyázz! Nem biztos, hogy minden sorban
van páros szám!)
29. Számítsd ki a következő iterációs eljárás n. lépésének eredményét (az x
pozitív valós szám
négyzetgyökének az
értékét közelíti): a(0) = 1,
a(i+1) =0.5*(a(i) +x/a(i))
30. Adott egy tetszőleges számsorozat. Állítsd növekvő sorrendbe az
elemeit.
31. Rajzolj csillagokból sakktáblát, illetve átlósan vonalkázott négyzetet
32. Fésülj össze két monoton sorozatot fájlból
III. Programozási tételek
1. Számítsd ki egy szám faktoriálisát.
2. Add meg egy természetes szám valódi osztóinak összegét.
3. Add meg egy tetszőleges egész szám valódi osztóinak a számát.
4. Add meg egy természetes szám legnagyobb valódi osztóját.
5. Add meg két természetes szám legnagyobb közös osztóját.
6. a) Sorold fel az első N tökéletes számot (olyat természetes számot, ami
megegyezik a valódi osztóinak összegével).
b) Sorold fel a K-nál kisebb tökéletes számokat.
7. Add meg, hogy az A és B közötti egész számok közül melyiknek van a
legtöbb valódi osztója.
8. a) Adj össze három számot.
b) Adj össze tetszőleges számú számot.
9. a) Add meg három szám átlagát.
b) Tetszőleges egész számsor átlagát add meg.
10. Add meg egy tetszőleges egész számsorról, hogy hány eleme nagyobb
ill. kisebb az átlagánál.
11. Egy pozitív egész számokból álló számsorban add meg, hogy hány páros
szám van.
12. Egy tetszőleges számsorban add meg a legkisebb és a legnagyobb
számot.
13. Add meg egy tetszőleges pozitív számsorozat elemeinek a
négyzetgyök-összegét.
14. Számítsd ki két N dimenziós vektor skaláris szorzatát.
15. a) Egy szigorúan növő egész számsorban add meg a legnagyobb ugrást
(szomszédos elemek közötti legnagyobb előforduló különbséget).
b) Nem monoton számsorra is adj helyes eredményt.
16. Add meg egy tetszőleges egész számsorban a szomszédos elemek
átlagos különbségét.
17. a) Döntsd el három számról, hogy növekvő sorrendben vannak-e.
b) Tetszőleges sok számról döntsd el ugyanezt.
18. Add meg egy tetszőleges egész számsorban a prímszámok számát.
19. Egy egész számról döntsd el, hogy prímszám-e.
20. a) Sorold fel az első N prímszámot.
b) Sorold fel a K-nál kisebb prímszámokat.
c) Sorold fel az A és B közé eső prímszámokat.
21. Egy tetszőleges szövegről add meg, hány kis "a" betű van benne.
22. Egy tetszőleges szövegről add meg, hány számjegy, hány nagybetű és
hány kisbetű van benne.
23. Add meg egy tetszőleges szövegben, hogy melyik karakter fordul elő
benne a legtöbbször.
24. Add meg egy tetszőleges szövegből a leghosszabb sort.
25. Döntsd el egy tetszőleges szövegről, hogy a sorai ABC-sorrendben
vannak-e.
26. a) Egy tetszőleges szövegben add meg a sorok számát.
b) Add meg a karakteret számát is.
c) Add meg a szavak számát is.
27. Add meg egy tetszőleges szöveg leghosszabb szavát.
28. a) Egy több soros szövegben add meg, hány sorában található meg az
"alma" szó.
b) Az "alma" helyett tetszőleges szöveget lehessen megadni.
c) A szó összes előfordulásának a számát add meg.
29. a) Egy tetszőleges szövegben számold meg, hány sor kezdődik azzal a
betűvel, amivel az előző végződött.
b) A sorok elején és végén levő szóközöket ne vedd figyelembe.
c) Azt is számold meg, hogy hány szó kezdődik a megelőző szó utolsó
betűjével.
30. a) Egy tetszőleges szövegről add meg, hány mondat található benne.
Mondatnak tekintünk minden olyan sort, ami nagybetűvel kezdődik, és
ponttal, felkiáltójellel vagy kérdőjellel végződik.
b) Szóközökkel kezdődő vagy végződo sorok esetén is adj helyes
eredményt.
c) A több mondatot tartalmazó sorokat és a többsoros mondatokat is
kezeld helyesen.
31. a) Egy tetszőleges szövegről add meg, hány szóból áll. Felteheted, hogy
két szót mindig pontosan egy szóköz választ el.
b) Akkor is működjön, ha két szó között több szóköz is lehet.
32. Egész számhármasok tetszőleges sorozatáról add meg, hogy a
hármasok közül hánynak vannak növekvő sorrendben az elemei.
33. a) Háromszögek oldalhosszainak egy tetszőleges sorozatában (pozitív
számhármasok sorozata) add meg a legnagyobb kerületű háromszöget.
b) Add meg a legnagyobb területű háromszöget is.
c) A hibás háromszögeket szúrd ki a sorozatból.
34. Tetszőleges, a csúcsai koordinátáival adott sokszögnek add meg a
kerületét.
35. Tetszőleges, koordinátákkal adott pontsorozatból add meg, hogy mennyi
esik az origó körüli R sugarú körön belülre.
36. Tetszőleges, koordinátákkal adott pontsorozatban add meg az origótól
legtávolabb eső pontot.
37. Adott egy szöveg, ami minden sorában egész számokat tartalmaz. Add
meg, hogy melyik sorban a legnagyobb a sor legkisebb száma (és azt is,
hogy mi ez a szám).
38. Olvass egy fájlból mozifeliratokat sub formátumban.
a) Melyik sor látszik legtöbb ideig a képernyőn?
b) Van-e olyan feliratsor, amit három sorban kell megjeleníteni?
c) Hol hadartak a leggyorsabban?
d) Hány párbeszéd-sor van? (kötőjel)
e) Összesen hány szót mondtak ki?
f) Összesen hány szót mondtak ki párbeszédben? (kötőjel)
IV. Rekordok
1. Adott egy szövegfájl, ami egy recept hozzávalóit tartalmazza. A fájl minden
sora egy számmal kezdődik, ami egy összetevőből szükséges mennyiség,
majd vesszővel elválsztva tőle az összetevő neve jön.
a) Add meg azt az összetevőt, amibol a legtöbb, és amibol a legkevesebb
kell.
b) Add meg, hány olyan összetevő van, amibol kevesebb, mint egy
egységnyi kell.
c) Add meg egy tetszőleges összetevőről, hogy mennyi kell belőle.
2. Adott egy telefonkönyv egy szövegfájlban, aminek a sorai vesszővel
elválasztott neveket és telefonszámokat tartalmaznak.
a) Egy tetszőleges névhez add meg a telefonszámot.
b) Egy tetszőleges telefonszámhoz add meg a nevet.
3. Adott egy szövegfájl, aminek a sorai neveket és születési adatokat
tartalmaznak (név, év.hó.nap. alakban).
a) Add meg egy ember születési adatait a neve alapján.
b) Add meg a legöregebb és legfiatalabb embert a listában.
c) Add meg, hány januári születésnap van a listában.
4. Adott egy szövegfájl, ami egy hónap minden napjának
hőmérsékleti adatait
tartalmazza: minden sorban három szám van, egy napon mért reggeli, déli
és esti hőmérsékletet.
a) Add meg a havi átlaghőmérsékletet.
b) Add meg a legalacsonyabb napi középhőmérsékletet (és azt is, hogy
hányadik napon volt).
c) Add meg, hány reggel volt fagy.
d) Add meg, melyik napon volt a legnagyobb hőmérséklet-ingadozás.
5. Adott egy szövegfájl, ami komplex számokat tartalmaz: minden sora egy
szám valós és
képzetes részét szóközzel elválasztva.
a) Add meg a számok összegét.
b) Add meg a legkisebb abszolút értékű számot.
c) Add meg, hány valós szám van a listában.
6. Adott egy szövegfájl, ami egy áruház raktárkészletét tartalmazza. Minden
sora egy árucikk adatait tartalmazza vesszővel elválasztva: az áru nevét,
egységárát, a raktáron található mennyiséget, a mennyiségi egység nevét,
a raktárban elfoglalt helyének a kódját, valamint egy minimális
mennyiséget, amit szeretnénk a raktárban tartani.
a) Add meg a raktárkészlet teljes értékét.
b) Add meg, hogy melyik áruból van a legértékesebb készlet.
c) Add meg, hányféle áru fogyott ki teljesen a raktárból.
d) Listázd ki azokat az árukat, amikbol nincs meg az elvárt minimális
mennyiség, add meg, mennyit kell még beszerezni belőlük, és hova kell
őket tenni a raktárban.
e) Add meg, hogy mennyibe kerül a készletet kiegészítése úgy, hogy
mindenbol meglegyen az elvárt minimális mennyiség.
f) Add meg egy áruról a neve alapján, hogy mennyi van belőle, mekkora
értékű a készlet, és hol található a raktárban.
7. Adott egy szövegfájl, ami magyarországi települések adatait tartalmazza.
Minden sorban egy település adatai vannak vesszővel elválsztva: a neve,
megyéje, típusa (város, község stb.), területe, lakossága.
a) Add meg a legnagyobb lélekszámú települést.
b) Add meg egy megyéről neve alapján, hogy hány város van benne.
c) Add meg a községek átlagos területét.
d) Add meg a legkisebb népsűrűségű települést.
e) Add meg egy településről a neve alapján a megyéjét, típusát és
népsűrűségét.
8. Adott egy szöveges fájl, amely zenei CD-k adatait tartalmazza. A fájl
minden sora egy CD adatait tartalmazza vesszővel elválsztva: az előadó
nevét, a címét, a hosszát (perc:másodperc), a megjelenés évét, a CD
nyelvét és az árát.
a) Add meg a listában szereplő CD-k tartalmának összesített hosszát
(óra:perc:másodperc formában).
b) Add meg a legdrágább CD-t.
c) Add meg a legrövidebb CD-t.
d) Add meg egy tetszőleges eloadó CD-inek összesített értékét.
e) Egy tetszőleges évszámhoz add meg, hogy hány CD jelent meg abban
az évben.
f) Egy tetszőleges címhez add meg az adott CD minden adatát.
9. Adott egy szöveges fájl, ami hallgatók tanulmányi eredményeit
tartalmazza. A fájl minden sora egy hallgató nevével kezdődik, majd egy
vessző után a hallgató jegyei vannak felsőrolva szóközzel elválasztva
(tetszőleges mennyiségű).
a) Add meg egy tetszőleges nevű hallgató átlagát.
b) Add meg a legmagasabb és a legalacsonyabb átlagú hallgatót.
c) Add meg, hogy hány hallgató bukott meg legalább egy
tárgyból.
d) Add meg, hogy melyik hallgatónak van a legtöbb ötöse.
10. Adott egy szöveges fájl, ami síkbeli konvex sokszögek csúcspontjainak
koordinátáit tartalmazza. A fájl minden sora egy sokszöget ír le, és
tetszőleges számú, (x,y) alakú csúcspont koordinátapárt tartalmazhat
szóközzel elválasztva.
a) Add meg minden sokszög kerületét.
b) Add meg minden sokszög területét. (Konvex sokszög területét meg
lehet határozni háromszögekre bontással.)
c) Add meg a legnagyobb kerületű sokszöget.
d) Add meg a legnagyobb területű sokszöget.
e) Add meg, hogy hány sokszög tartalmazza az origót.
f) Add meg egy tetszőleges pontról, hogy található-e ott csúcspont. Ha
igen, add meg, hogy melyik sokszögé.
g) Add meg a sokszögeket kerület szerint növekvő sorrendben.
h) Add meg a sokszögeket terület szerint növekvő sorrendben.
V. Tömbös feladatok
1. Véletlen tömb: egy tömb elemeit töltsd fel véletlenszámokkal. (A következő
feladatok akár véletlennel, akár másképp feltöltött vektorokkal foglalkoznak)
2. Vektor átlaga.
3. Vektor szórása (átlagtól való eltérések átlaga).
4. Van-e két egyforma elem a vektorban?
5. Vektor permutálása véletlenszerűen.
6. Vektor permutálása, hogy végül monoton növekedő sorrendben legyenek
az elemek a vektorban.
7. Mátrixban tároljuk egy osztály adatait, minden sora egy diák, minden
oszlopa egy tantárgy, a mátrix értékei a jegyek. Add meg a következőket:
a) Osztályátlag.
b) Legjobb tanuló (átlag alapján).
c) Legnehezebb tantárgy (legtöbb bukás).
d) Van-e két hallgató, akiknek egyforma az átlaguk?
e) Hányan nem buktak meg semmiből?
f) A legjobb tanuló legrosszabb jegye.
8. Adott méretű mátrix feltöltése fájlból, majd (megfelelő méretek esetén):
a) Döntsd el, hogy szimmetrikus-e.
b) Döntsd el, hogy felsőháromszög mátrix-e.
c) Végezz Gauss eliminációt.
VI. Függvényes feladatok
Az alábbi feladatokban függvényt kell megvalósítani. Ha másképp nem rendelkezik a feladat, a main függvényben a megvalósított függvényt kell tesztelni az érdekes esetekre.
1. Valósítsd meg az int kozos(int a, int b) függvényt, ami a közös
osztók számát adja vissza
2. Valósítsd meg az bool tokeletes(int a) függvényt, ami visszaadja,
hogy a paraméterül kapott érték tökéletes szám-e.
3. Valósítsd meg az bool baratsagos(int a, int b) függvényt, ami
visszaadja, hogy a paraméterül kapott értékek barátságos számpárt
alkotnak-e.
4. Valósítsd meg az int max(vector<int> v) függvényt, ami a
paraméterül kapott vektor elemei közül a legnagyobbat adja vissza.
5. Valósítsd meg az bool vane(vector<int> v, int ez) függvényt,
ami eldönti, hogy a paraméterül kapott vektor elemei között van-e "ez".
6. Valósítsd meg a double atlag(vector<double> v) függvényt, ami
a paraméterül kapott vektor átlagát adja vissza
7. Valósítsd meg az int hany(vector<double> v, double ez)
függvényt, ami a paraméterül kapott vektorban megszámolja, hogy hány
"ez" van benne
8. Valósítsd meg az int hanysor(ifstream &f) függvényt, ami egy
paraméterül kapott fájlban levő maradék sorok számát adja vissza.
9. Valósítsd meg az int hanysor(string fajlnev) függvényt, ami a
paraméterként megkapott fájlnévhez tartozó fájlt megpróbálja megnyitni, ha
nem létezik a fájl, akkor -1-et ad vissza, egyébként pedig a fájlban található
sorok számát.
10. Valósítsd meg a void alahuzvakiir(string s) függvényt, ami a
paraméterül kapott szöveget új sorba kiírja, és "=" karakterekkel
aláhúzza.
11. Valósítsd meg a void szamparbeolvas(ifstream &f, int &a,
int &b) függvényt, ami a kapott fájlból számpárt olvas be.
12. Valósíts meg függvényt, ami a kapott három egész szám mint háromszög
három magasságának hosszait adja meg
13. Valósíts meg függvényt, amely egy szöveget átalakít úgy, hogy ha több
whitespace karakter (szóköz, tab, újsor) van benne egymás után, azt
egyetlen szóközzé alakítja.
14. Valósíts meg függvényt, ami egész számból szöveges változót csinál, ami
előjelet és a megfelelő számjegyeket tartalmazza, felesleges karakterek
nélkül
15. Valósíts meg függvényt, ami szöveges változóból egész számot próbál
csinálni, visszaadja az eredményt, és visszaadja azt is, hogy
zökkenőmentes volt-e az átalakítás. Ez utóbbi érték legyen 0, ha sikeres
volt, különben hogy hanyadik karakter (1-től indexelve) nem volt
számjegy, illetve előjel megfelelő helyen.
16. Valósíts meg függvényt, ami mátrixot kap paraméterül, és visszaadja a
mátrix transzponáltját.
17. Valósítsd meg a skalárszorzat műveletet függvényként.
18. Valósítsd meg a mátrixszorzás műveletet függvényként.
19.
a) Valósíts meg függvényt, ami megkap egy mátrixot, és kiszámítja az
inverzét.
b) A függvény adjon vissza egy állapot is, ami jelzi, ha hiba van: a mátrix
nem négyzetes, vagy összefüggőek a vektorok. |