Projektmunka (6 pont)
Írjatok egy tetszőleges Python programot!
A program helyességét, összetettségét és a megfelelő dokumentációját fogjuk osztályozni!
Hogy ne legyetek teljesen elveszve adunk néhány ötletet:
- Írjunk két Python függvényt, melyeknek bemeneti paramétere n, és meghatározzák π, illetve e értékét n tizedesjegyig. (Bármilyen ismert (vagy saját) módszert alkalmazhatunk (hivatkozzunk, linkeljük be, vagy ha saját akkor bizonyítsuk be), de NE azt csináljuk, hogy szimplán bekérjük a szám értékét egy csomagból és levágjuk a megfelelő tizedesjegyig.)
- Írjunk Python függvényeket melyeknek bemeneti paramétere különböző egész számokat tartalmazó halmaz. A függvények határozzák meg az elemek összes lehetséges permutációját, kombinációját, variációját rekurzív módon.
- Írjunk Python classt 2-dimenziós transzformációk kezelésére. Tudjunk egyenesre tükrözni, pont körül forgatni, középpontosan tükrözni, egyenesre merőlegesen vetíteni. Nyugodtan használjuk fel az eddig megírt mátrix class-ainkat.
- Írjunk egy programot, ami segítségével .csv formátumban lévő, legalább 2 oszlopos táblázatot beolvasva, meghatározza az oszlopok átlagát és szórásnégyzetét. A program legyen terminálból futtatható úgy, hogy a bemeneti paraméter legyen a megadott .csv fájl, és az ő oszlopainak átlagát és szórásnégyzetét írja ki.
- Oldjuk meg a 11. csütörtöki gyakorlat target feladatát.
- Írjuk meg a bináris fákhoz hasonlóan a ternáris fák osztályát. (Implementáljuk a beszúrás, törlés metódusokat is.)
A megadott témák nehézségükben és összetettségükben is eltérőek, de pontozásuk attól is függ, hogy a megoldáshoz használt módszerek mennyire összetettek. Természetesen lehet a megadott ötletek közül is választani, de lehet sajátot is kitalálni. Ha nem vagytok biztosak az ötletetekben, akkor nyugodtan kérdezzetek rá a gyakorlatvezetőtöknél. A félév során már találkoztatok két komplexebb, összetettebb házival, mint például a sakkozós, szótáras feladatok, így aztán nagyjából érezhetitek, hogy mennyire összetett programot kell ahhoz elkészítenetek, hogy maximális pontot kapjatok. Biztosíthatunk titeket arról, hogy a becsületesen elkészített házi feladatokat maximális jóindulattal fogjuk pontozni.
A projektek kidolgozásánál figyeljetek a következő szempontokra:
- A projekteket egy darab .py fájlban kérjük beadni. (Ettől persze eltérhetünk abban az esetben, ha például valamilyen fájlt beolvas a program, mint a szótáras háziban, akkor azt is küldjétek be.)
- A fájl elején foglaljátok össze kommentben, hogy milyen témával fogtok foglalkozni, mit fogtok megvalósítani.
- Ügyeljetek a megfelelő dokumentációra, azaz példaul ha bonyolultabb függvényt írtok, akkor kommentáljátok, hogy mit csinál, mit csinálnak egyes részei, és úgy általában véve írjátok oda, hogy éppen mit oldotok meg egy adott fügvénnyel stb.
- Bármilyen segédeszközt használhattok, de ha különböző forrásokból, például stackexchange-ről másoltok be hosszabb kódot, akkor linkeljétek is be a forrást, és azt a kódot is dokumentáljátok, hogy számot adjatok arról, hogy nemcsak bemásoltátok a kódot, hanem meg is értettétek, hogy az mit csinál.
- Próbáljátok is ki példákon keresztül.