3. gyakorlat
Kapcsolódó tananyagok¶
-
parancssori argumentumok
-
statikus tömbök, VLA tömbök
-
függvények; paraméterátadás
-
struktúrák
-
typedef
Órai feladatok¶
Órai segédletek
-
Készítsünk egy programot, amely beolvassa egy PGM típusú kép paramétereit (méret és max intenzitás), majd hozzunk létre egy, a kép méretének megfelelő méretű egydimenziós statikus tömböt, amely egy legalább 1000*1000 méretű kép tárolására képes! Az input fájl nevét az első parancssori argumentum határozza meg!
-
Olvassuk be a képet, és tároljuk el az adatait!
-
Írjuk ki a kép méretét a deklarált tömb és a
sizeof
metódus segítségével! -
Írjunk egy függvényt, amely paraméterben megkapja a kép eltárolt adatait, majd kiírja a képet a mentes.pgm nevű fájlba! A képet tároló tömb méretét ebben a metódusban is írassuk ki hasonlóan, mint az előző feladatban! Futtassuk a programot a torony.pgm képpel! Módosítsuk a programot úgy, hogy az legfeljebb egy 60*60-as képet tudjon eltárolni, és futtassuk a programot a progalap.pgm képpel! (a feladat windowson jobb, kisebb a stack méret és már elszáll a toronyra)
-
Próbáljuk ki mi történik, ha a tömb változó hosszú, azaz méretét a kép méretei határozzák meg futásidőben! Itt is próbáljuk ki a torony.pgm-et is és a progalap.pgm-et is betölteni!
-
Módosítsuk az előzőeket úgy, hogy ne egy, hanem két dimenzióban tároljuk a képet! (fix méretet és változó hosszú méretet is próbáljuk ki)
-
Ha az előző feladat megoldása hibába ütközött, próbáljuk ezt kiküszöbölni!
-
Egészítsük ki a programot, hogy az egy újabb függvénnyel képes legyen a kép inverzét meghatározni. Az
inverz
függvény kiiratása után írjuk ki a képet! Ellenőrizzük, jól dolgoztunk-e! -
Hozzunk létre egy, a kép adatait tároló struktúrát, és ezzel a típussal módosítsuk a beolvasást, inverz számítást, kiírást!
Gyakorló feladatok¶
-
Írj egy függvényt, amely első paraméterében egy egészeket tároló tömböt kap, második paramétere a tömb mérete, és visszaadja a tömbben tárolt elemek átlagát! Teszteld is a függvényedet azzal, hogy meghívod!
-
A feladat legyen ugyanaz, mint az előbb, de a méretet ne várja a függvény, a tömb legyen olyan, hogy az utolsó elemet egy tömbvége, -1-es érték zárja! A tömb elemei természetes számok!
-
Írj egy függvényt, amely képes a paraméterben kapott string megfordítására! Teszteld a parancssori argumentumok felhasználásával a megoldásodat!
-
Egy háromszögnek három oldala van. Gyakran szükségünk van arra, hogy kiszámítsuk egy-egy háromszög kerületét. Írj egy kerület függvényt, amely paraméterben egy háromszöget vár, és visszaadja nekünk annak kerületét! A függvény deklarációja a következő legyen!
double kerulet(haromszog h);
-
Írj egy függvényt, ami összead két egész értéket, és visszatér az eredménnyel! Írj egy főprogramot, ami bekér két egész számot, és a függvény segítségével kiírja az összegüket. A main függvény definíciója korábban legyen mint az összeadó függvényé!
-
Írj egy függvényt, amely képes a paraméterében kapott 3 válós számról eldönteni, hogy melyik a legnagyobb, és ezt az értéket adja vissza!
-
Írj egy függvényt, ami kiszámolja két nemnegatív egész szám legnagyobb közös osztóját az Euklideszi algoritmus használatával! Teszteld is a függvényt a főprogramod segítségével!
-
Írj programot, mely bekér két pozitív egész számot, és megadja az intervallumba eső páros illetve páratlan számok összegét! Készíts egy ciklus(ok)at használó algoritmust, és egy matematikailag átgondolt, minél egyszerűbbet is!
-
A feladat legyen hasonló, mint az előbb, de a megoldásban hozz létre egy
intervallum
nevű típust, amely eltárolja az intervallum két végpontját! Valósítsd meg az előbbi feladatot úgy, hogy ilyenintervallum
típust kapjon paraméterben, és azt határozza meg, hogy mennyi az intervallumba eső páros számok összege! Ezzel térjen vissza a függvény! -
Írj egy függvényt, amely a paraméterébenn kapott pozitív egész számról megállípítja, hogy prím-e, és ha nem az, akkor kiírja a különböző pozitív osztóinak számát és összegét!
-
Írj egy függvényt, amely egy karaktertömböt kap paraméterül, és eldönti, hogy a kapott paraméter palindrom-e! Azaz oda-vissza olvasva is ugyanaz. Ha igen, térjen vissza a függvény 1-gyel, ha nem az, 0-val! Teszteld a függvényt egy főprogrammal, amelyben előre inicializált karakter tömböt használsz, amely legfeljebb 256 hosszú. Majd teszteld úgy is, hogy a sztringet a felhasználótól kéred be!
-
Készíts egy programot, amely beolvas legfeljebb 255 nemnegatív egész számot, majd kiírja a sorozat elemeinek a sorozat minimumától való eltérését.
-
Készíts egy programot, amely beolvas legfeljebb 256 egész számot, eltárolja őket egy tömbben, majd a tömböt úgy alakítja át, hogy a sorban egymás után ismétlődő elemek közül csak egyet hagy meg! A számok tárolására készítsünk egy előre megadott fix méretű tömböt. Ezt a tömböt és a beolvasandó számok darabszámát a főprogram kezelje. A tömb elemeinek beolvasását, az elemek cseréjét és a kiírást is egy-egy külön függvény végezze, amely megkapja a tömböt és a tömbméretet is!
Bíró feladatok¶
A gyakorlathoz tartozik BÍRÓ feladat is, amely a nappali tagozatosoknak már kiosztásra került (akinek nem, annak nem tudtuk sajnos a h-s azonosítóját, ezt utólagosan tudjuk csak kiosztani, ha megkapjuk az azonosítót!).
A feladat 4 részfeladatból áll. Ezek mindegyike egy-egy függvény implementálása a feladatleírás alapján, illetve a 4. feladat esetében egy új típust is kell definiálni. Amíg ez nem történik meg, a fordítás sikertelen. Ha valaki mégsem szeretne a 4. feladattal foglalkozni, akkor olvassa el a minta megoldás feladathoz tartozó leírását, és a megfelelő sort kommentezve forduló kódot kaphat!