Honlaptérkép
- Infó
- Kezdőlap
- HírekA Prog1 tárggyal kapcsolatos hírek. A hírfolyam elérhető RSS formában is!
- ÜtemtervA tananyag heti bontásban és a számonkérések időpontjai.
- Csoportbeosztás
- KövetelményekKövetelmények a Programozás alapjai I. tárgyban. Osztályzás, pontozás, néhány szó az elvi hibákról.
- Honlaptérkép
- ElérhetőségElérhetőségek, információk a konzultációkról, köszönetnyilvánítás.
- Keresés
- Témák
- Tananyag
- Előadás
- 1. hét: típusok, változók, vezérlésBevezető előadás. Kifejezések, változók. A C nyelv alapjai. Egyszerű bemenet és kimenet.
- 2. hét: nevezetes algoritmusok, tömbökNevezetes algoritmusok, azaz programozási tételek. Sorozatok és tömbök kezelése.
- 3. hét: függvények, struktúrákA switch, continue és break vezérlési utasítások. Program és adat abszrakciója: függvények és struktúrák. Top-down tervezés.
- 4. hét: operátorok, számábrázolásOperátorok, kiértékelési szabályok. Számábrázolás, bitműveletek.
- 6. hét: pointerek, sztringekA pointerek (mutatók) fogalma, használata. Cím szerinti paraméterátadás. Mutatók és tömbök kapcsolata, címaritmetika. Sztringek.
- 7. hét: rendezések, rekurzióTömbi algoritmusok: keresések és rendezések. Rekurzió.
- 8. hét: dinamikus memóriakezelésDinamikus memóriakezelés. Összetett típusok, több dimenziós tömbök, pointertömbök.
- 9. hét: fájlkezelés, modulokProgram és külvilág kapcsolata: parancssori argumentumok és fájlkezelés. Többmodulos programok, tervezés és dokumentáció.
- 10. hét: láncolt listákDinamikus adatszerkezetek I.: láncolt listák. Egyszeres és kétszeres láncolás.
- 11. hét: bináris fákDinamikus adatszerkezetek II.: bináris fák. Többszörös indirekció. Néhány szó a hash táblákról.
- 12. hét: állapotgépek, reguláris kifejezésekÁllapotgépek működése és tervezése. Reguláris kifejezések alapjai, kapcsolatuk az állapotgépekkel.
- 1. hét: típusok, változók, vezérlés
- Labor
- 1. hét: egyszerű programokEgyszerű C programok lefordítása, futtatása. Bemenet és kimenet kezelése, egyszerű számítások és vezérlési szerkezetek.
- 2. hét: tömbök, nevezetes algoritmusokTömbök létrehozása és kezelése. Egyszerű algoritmusok megvalósítása tömbökön.
- 3. hét: struktúrák és függvényekStruktúrák és függvények kezelése. Néhány vezérlési szerkezet.
- 4. hét: számábrázolásSzámábrázolási kérdések és bitműveletek.
- 5. hét: parancssorOperációs rendszer, Windows parancssor alapismeretek: fájlok, parancssori argumentumok.
- 6. hét: pointerek, sztringekPointerek (mutatók), tömbök átadása függvényeknek. Sztringek alacsony szintű kezelése és a C sztringkezelő függvényei.
- 7. hét: rekurzióRekurzió vizsgálata nyomkövetővel. Rekurzív algoritmusok írása: báziskritérium és egyszerűsítések.
- 8. hét: dinamikus tömbök I.Dinamikus tömbök létrehozása és kezelése.
- 9. hét: dinamikus tömbök II.Dinamikus tömbök kezelése, sztringek dinamikus tömbökben.
- 10. hét: láncolt listákEgyszeresen láncolt listák.
- 11. hét: bináris fákBináris fák és rekurzív algoritmusaik.
- 12-13. hét: állapotgépekÁllapotgépek. Szabványos bemenet és kimenet átirányítása. Fájlkezelés beépítése. Parancssori argumentumok.
- 1. hét: egyszerű programok
- Gyakorlat
- 1. hét: tanult algoritmusokBevezető a programozás és az algoritmusok világába. Hétköznapi és tanult algoritmusok leírása, ábrázolása.
- 2. hét: egyszerű programokEgyszerű C programok és vezérlési szerkezeteik. Számok beolvasása és kiírása.
- 4. hét: tételek és tömbökProgramozási tételek használata az algoritmusokban. Tömbök létrehozása és kezelése.
- 6. hét: származtatott típusokSzármaztatott típusok: tömbök és struktúrák. Összetett adatszerkezetek definíciója és kezelése.
- 7. hét: pointerek használataPointerek (mutatók) használata: cím szerinti paraméterátadás, tömbök és pointerek kapcsolata. Tömbök átadása függvényeknek. Sztringek mint nullával lezárt tömbök, alacsony szintű sztringkezelés.
- 8. hét: rekurzióRekurzív algoritmusok: rekurzió tervezése, triviális esetek és visszavezetések.
- 9. hét: dinamikus tömbökDinamikus memóriakezelés. Dinamikusan foglalt tömbök I.
- 10. hét: dinamikus tömbök II.Dinamikus memóriakezelés. Dinamikusan foglalt tömbök. Halmaz típus és függvényei.
- 11. hét: láncolt listákLáncolt listák építése és kezelése.
- 12. hét: láncolt listák II.Láncolt listák használata algoritmusokban.
- 1. hét: tanult algoritmusok
- Példatár
- 1. hét: egyszerű programokGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 2. hét: logika, sorozatok, tömbökGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 3. hét: függvények, struktúrákGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 4. hét: számábrázolás, bitekGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 6. hét: pointerek, sztringekGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 7. hét: rendezések, rekurzióGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 8. hét: dinamikus memóriakezelésGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 9. hét: parancssor, fájlkezelés, modulokGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 10. hét: láncolt listákGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 11. hét: bináris fák, többszörös indirekcióGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 12. hét: állapotgépekGyakorlófeladatok az előadás anyagához kapcsolódóan.
- 1. hét: egyszerű programok
- Nagy házi követelményekA nagy házi feladat követelményei. A beadással kapcsolatos tudnivalók, értékelés, pontozási táblázat.
- Nagy házi listaA nagy házi feladathoz választható programok listája.
- Előadás
- Segédlet
- Jegyzet és puskaJegyzet: egy 100 oldalas könyv a C nyelvről. Puska – a nagy ZH-kon használható segédlet. Linkek egyéb érdekes olvasnivalókra.
- FejlesztőkörnyezetekAz ajánlott, ingyenesen letölthető fejlesztőkörnyezetek listája. Néhány szó a Code::Blocks telepítéséről.
- Kódolási stílusMegjegyzések és javaslatok a szépen írt, áttekinthető programokhoz.
- For vagy while?Mikor használunk while-t, és mikor for-t?
- Nagy házi
- Nagy házi tanácsokNéhány tanács és útmutatás a nagy házival kapcsolatban.
- Minta nagy háziA minta nagy házi, amely egy plágiumkereső program. Pontosított specifikáció, végleges program és dokumentációja.
- Specifikáció: hogyan?Mire jó a specifikáció? Hogyan írjunk specifikációt?
- Debugmalloc, memóriakezelésA Debugmalloc egy varázs-malloc(), amely képes kilistázni a felszabadítatlan területeket, és ezzel megkönnyíti a hibakeresést. Bizonyos keretek között a túlindexelést is tudja ellenőrizni.
- Fájlkezelés, mappákRöviden a fájlkezelésről azoknak, akik nem akarják megvárni az erről szóló előadást.
- Szöveges és grafikus megjelenítésA nagy házi feladatban használható, szöveges és grafikus megjelenítést segítő függvénykönyvtárak.
- Scanf problémákA karakterek és a sorvége jel kezelése a scanf() függvénynél.
- Scanf és hibakezelésHogyan jelzi a scanf a hibát beolvasáskor? Hogyan tudjuk a hibák típusait megkülönböztetni?
- KarakterkódolásokÉkezetes betűk, szövegek kódolása és megjelenítése a programokban. Javasolt olvasmány azoknak, akik szeretnék a nagy házijukban megoldani a magyar ékezetes szövegek helyes kezelését.
- Több modulos programokRöviden a modulokra bontásról azoknak, akik nem akarják megvárni az erről szóló előadást.
- Több modul CodeBlocks-banLépésről lépésre útmutató több modulos programok létrehozásához a CodeBlocks fejlesztőkörnyezetben.
- Nagy házi tanácsok
- ZH
- Tanácsok a tanuláshozHogyan kell tanulni a prog ZH-kra? Ne kövesd el azt a hibát, hogy csak a megoldott feladatokat nézegeted!
- TL;DR I.Összefoglalók néhány témakörhöz: vezérlési szerkezetek, függvények, pointerek, sztringek, sztringkezelő függvények, rekurzió, rendezések.
- Első NZH mintaMinta nagy ZH, előző évek feladataiból összeollózva.
- Második NZH mintaMinta második ZH, előző évek feladataiból összeollózva.
- KZH 2024A 2024-es kis ZH feladatok megoldásai. Ez az oldal rendszeresen frissülni fog!
- NZH 2024A 2024-es nagy ZH feladatok megoldásai.
- Tanácsok a tanuláshoz
- Jegyzet és puska
- Extrák
- Szorgalmik, versenyek
- SVG óra galéria
- SVG óra galéria 2024A szorgalmi feladatként kiadott SVG órák szépségversenye.
- SVG óra galéria 2023A szorgalmi feladatként kiadott SVG órák szépségversenye.
- SVG óra galéria 2022A szorgalmi feladatként kiadott SVG órák szépségversenye.
- SVG óra galéria 2021A szorgalmi feladatként kiadott SVG órák szépségversenye.
- SVG óra galéria 2020A szorgalmi feladatként kiadott SVG órák szépségversenye.
- SVG óra galéria 2019A szorgalmi feladatként kiadott SVG órák szépségversenye.
- SVG óra galéria 2018A szorgalmi feladatként kiadott SVG órák szépségversenye.
- SVG óra galéria 2017A szorgalmi feladatként kiadott SVG órák szépségversenye.
- SVG óra galéria 2016A szorgalmi feladatként kiadott SVG órák szépségversenye.
- SVG óra galéria 2015A szorgalmi feladatként kiadott SVG órák szépségversenye.
- SVG óra galéria 2024
- NHF galéria
- NHF galéria 2023A 2023-as nagy házik: a beküldött szép megoldások galériája a készítők által küldött leírásokkal.
- NHF galéria 2022A 2022-es nagy házik: a beküldött szép megoldások galériája a készítők által küldött leírásokkal.
- NHF galéria 2021A 2021-es nagy házik: a beküldött szép megoldások galériája a készítők által küldött leírásokkal.
- NHF galéria 2020A 2020-as nagy házik: a beküldött szép megoldások galériája a készítők által küldött leírásokkal.
- NHF galéria 2019A 2019-es nagy házik: a beküldött szép megoldások galériája a készítők által küldött leírásokkal.
- NHF galéria 2018A 2018-as nagy házik: a beküldött szép megoldások galériája a készítők által küldött leírásokkal.
- NHF galéria 2017A 2017-es nagy házik: a beküldött szép megoldások galériája a készítők által küldött leírásokkal.
- NHF galéria 2016A 2016-os nagy házik: a beküldött szép megoldások galériája a készítők által küldött leírásokkal.
- NHF galéria 2015A 2015-ös nagy házik: a beküldött szép megoldások galériája a készítők által küldött leírásokkal.
- NHF galéria 2014A 2014-es nagy házik: a beküldött szép megoldások galériája a készítők által küldött leírásokkal.
- NHF galéria 2013A 2013-as nagy házik: a beküldött szép megoldások galériája a készítők által küldött leírásokkal.
- NHF galéria 2012A 2012-es nagy házik: a beküldött szép megoldások galériája a készítők által küldött leírásokkal.
- NHF galéria 2023
- Elmélet
- Mit tud a számítógép?Mi az a feladat, ami nem oldható meg programból? Egy írás Alan Turing cikke nyomán.
- BFTuring gépei és a méltán hírhedt Brainfuck programozási nyelv. Mit jelent az, hogy egy nyelv Turing-teljes? A „Mi tud a számítógép? Mi az, amire képtelen?” írás folytatása.
- BitturmixBitműveletek használata: véletlenszámok, titkosítás, hash függvények és jelszavak világa.
- Zárt terület kifestéseZárt terület kifestése: a flood fill és a boundary fill algoritmus
- LabirintusokLabirintusokat tervező és megoldó algoritmusok. Egymásra nem is hasonlító rekurzív és iteratív megoldások ugyanazokra a feladatokra.
- Gyorsrendezés
- Tripla indirekcióX*** – tripla indirekció egy olyan feladatban, amelyben szó nem esik tömbről!
- Mit tud a számítógép?
- Gyakorlat
- Kulturált sztringmásolóA C nyelv strcpy() függvénye nem biztonságos, a strncpy() pedig nehezen kezelhető. Ez az írás egy olyan biztonságos sztringmásoló függvényt mutat be, amelyet strlcpy() néven több rendszerben is megtalálunk.
- XOR csereEgy rémálom kivesézve: az XOR csere helyességéről, hasznosságáról.
- includeForrásfájlok és fejlécfájlok használata. Részletes, kiegészítő magyarázatok az előadás anyagához, konkrét példákkal arra vonatkozóan, hogy mi történik a fordító belsejében.
- inlineAz inlining optimalizációs technika és használata. Hogyan működik, miért gyorsítja a programunkat, és hogyan kell használni?
- InternetAz Internet működéséről röviden, és az SDL_net alapú hálózatprogramozásról.
- Kulturált sztringmásoló
- Grafika
- SDL grafikaGrafikus programozás az SDL multimédiás könyvtárral.
- SDL telepítésAz SDL grafikus könyvtár telepítése Windowson, Linuxon és Mac OS X-en.
- Fák rajzolásaKülönféle fafajtákat kirajzoló program. Éljen a rekurzió!
- SDL grafika
- Nyelvészet
- MondatelemzőSzintaktikai elemzők tervezése: egy egyszerű magyar mondatokat elemezni tudó program.
- KifejezésekSzorzatokat, összegeket tartalmazó kifejezések tárolása bináris fában.
- Mondatelemző