„A programozás alapjai 1 (régi)” változatai közötti eltérés
45. sor: | 45. sor: | ||
*Gyakran használ dinamikus adatszerkezetek | *Gyakran használ dinamikus adatszerkezetek | ||
lancolt binfa pdf | lancolt binfa pdf | ||
*InfoC oldal: Ez az oldal az infósok C tanító oldala. Néha kicsit másképp haladnak | *InfoC oldal: Ez az oldal az infósok C tanító oldala. Néha kicsit másképp haladnak mint mi, de az előadásoknál lévő magyarázatok, ábrák, animációk hasznosak. | ||
[http://infoc.eet.bme.hu/ InfoC] | |||
== Házi feladat == | == Házi feladat == |
A lap 2013. január 31., 13:17-kori változata
Ez az oldal a korábbi SCH wikiről lett áthozva.
Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!
Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.
A tantárgy kisebb változtatásokon esett át, miután Zsóka Zoltán lett a tárgy fő előadója. Az alább leírtak már az új rendszert tükrözik.
Követelmények
- Jelenlét: A gyakorlatok 70%-án való részvétel kötelező. Általában 4 hiányzás még megengedett, az 5 már nagyon indokolandó. Az előadás látogatása az RFID-s rendszer szerint megy.
- Nagy házi feladat: Ezt a házi feladatot nem osztályozzák le, de a gyakveznek el kell fogadnia, ahhoz, hogy jegyet lehessen kapni félév végén. A nagy házi feladat során különböző heteken checkpointok vannak, ahol is előírják, hogy be kell mutatni az adott checkpointig elkészítendő munkát a gyakvezéreknek (fel kell tölteni egy portálba PDF-ben). A végén a házit is be kell majd mutatni, és meg kell védeni. A checkpointokról és kritériumokról alább lehet bővebb információt szerezni.
- KisZH: Az első és az utolsó gyakorlatot leszámítva minden gyakorlat elején pár pontos (1-3) tesztet kell írni. A sikeres kisZH-hoz legalább 1 pontot el kell érni. A 14 gyakorlatokból általában egy elmarad, így a 11-ből legalább 7-et kell sikeresen megírni.
- NagyZH: Három feladatból áll és kétféleképpen pontozzák. Minden feladat 20 pontot ér, és a jegybeni végeredmény a három pont összege osztva 10-el. Így ugye 20 pont kell a ketteshez. Viszont megnézik minden feladatról, hogy futtatás képes-e. Nem baj ha kicsit hibás, csak nagyjából érjen valamit. Ha ez megvan, akkor a feladatra kapsz egy 'OK' jelet. Csak akkor lehet elégséges a NagyZH, ha van legalább egy ilyen 'OK'-od. Tehát ahhoz, hogy legalább kettes legyen, legalább egy feladatnak valamilyen szinten kereknek kell lennie.
- Félévközi jegy: A KisZH-kból alkotnak egy jegyet úgy, hogy a 7 legjobban sikerült zh pontszámának az összegét lineárisan átskálázzák 2-6-ig terjedő tartományba (KisZH jegy), és ezt a megfelelő súlyozással összeátlagolják a NagyZH jegyével. Az explicit képletek:
- KisZHjegy:
- NagyZHjegy: megegyezik a pontszámmal (ha sikeres)
- Végső jegy: (ha 5-nél nagyobb, akkor is csak 5)
Segédanyagok
- Könyvek
Ide kellenek a könyv fájlok megfelelő névvel
- Mintakérdések megoldással
Van egy ilyen fájl lentebb
- Gyakran használ dinamikus adatszerkezetek
lancolt binfa pdf
- InfoC oldal: Ez az oldal az infósok C tanító oldala. Néha kicsit másképp haladnak mint mi, de az előadásoknál lévő magyarázatok, ábrák, animációk hasznosak.
Házi feladat
A régi rendszerben még a központilag adták fel a feladatot. Mindenkinek más volt a megoldandó problémája, és gép ellenőrizte a programot. Azért hagytuk meg ezeket, mert gyakorolni még lehet rajtuk.
Illesztett dolog eleje
2008/2009 1. félév házi feladat
Ezzel a programmal tudsz adatfájlokat generálni magadnak. Bizonyos paramétereket megadhatsz, ezen belül véletlenszerűen generálja az adatokat.
Meglévő adatfájlokat betölthetsz vele, hogy jobban átlásd azt.
A futtatáshoz szükséges a .NET Framework 3.5. Ezt innen le tudod tölteni: Microsoft .NET Framework 3.5
- Ezen a helyen volt linkelve a(z) Adatfjl.exe nevű fájl ("Adatfjl.exe" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Villanyalap/ProgAlap1 oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki sch.bme.hu címre a kérésedet)
- A 2008/2009/1-es házihoz adatfájgenerátor (.NET Framework 3.5 szükséges hozzá)
2009/2010 ősz házi feladat
A házi feladat leírása innen tölthető le:
- Ezen a helyen volt linkelve a(z) proghf0001.jpg nevű fájl ("1. oldal" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Villanyalap/ProgAlap1 oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki sch.bme.hu címre a kérésedet)
- Ezen a helyen volt linkelve a(z) proghf0002.jpg nevű fájl ("2. oldal" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Villanyalap/ProgAlap1 oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki sch.bme.hu címre a kérésedet)
Jelmagyarázat a 2. oldalhoz:
- #1: valamely alapanyag neve (az 1. oldali táblázatból)
- #2: legtöbb/legkevesebb, illetve legtöbb/legkevesebb féle
- #3: első/utolsó órában; első/utolsó 2/3/... órában; a teljes nyitvatartás alatt
A nehezebb házikban előfordult olyan kérdés is, ahol:
- nem egy adott alapanyag adagszámát, hanem a felhasznált alapanyagfélék számát kérdezték;
- nem az egész nyitva tartás során kerestük az alapanyagot, hanem az első/utolsó 2/3/.. órában, esetleg egy konkrét órában;
- #2-nél általában alapanyagot néztünk, de volt olyan házi, ahol pizzára volt kérdés, tehát pl. ".., ahol a legtöbb féle/legtöbb pizzát..").
Illetve ezek tetszőleges kombinációja - mindenki különböző kérdést kapott, de ez legtöbbször tkp. abban merült ki, hogy a kész programban néhány változót át kellett írni.
A háziban az igazán fontos rész tehát az adatszerkezet felépítése volt, erre legcélszerűbb a láncolt listák alkalmazása volt - általában elég volt csak előre láncolni, hiszen a rendelések időrendben jöttek.
Illesztett dolog vége
Most házi feladatot a hallgató találhatja ki. Az alapja az, hogy valami adatbázis szerű adatszerkezetet lehessen felépíteni, amiben lehet keresni. (Pl.: hipermarketek és azok árucikkeik). Az adatokat fájlok tárolják, amikből a program építi fel az adatszerkezetet. A kritériumok következők:
- Legyen benne két különböző struktúrából álló dinamikus adatszerkezet (fésűs lista vagy ahhoz hasonló, dinamikus tömb nem jó, láncolt lista nem elég)
- Mindkét struktúrának legyen legalább 3-4 tagja.
- A két struktúra típus két külön fájlba legyen mentve, amiből az egyik szöveges, a másik bináris állomány.
- A kérdés ne legyen túl triviális, és muszáj legyen hozzá felépíteni a teljes adatszerkezetet. (Pl.: Ha csak a AUCHAN termékeiből keresnénk a legolcsóbbat az nem jó, mert akkor megoldáshoz elhagyhatnánk a többi hipermarketet és csak egy láncolt listát kapnánk)
Ha nem tud a hallgató saját magától kitalálni valamit, akkor a gyakvez fog adni egy sablon házit.
A végső beadás előtt lépésenként kell előre meghatározott időpontokra benyújtani a részletek. Ezek az úgynevezett checkpointok.
- Téma megválasztása, a megoldandó probléma kitalálása.
- Adatszerkezet leírása: itt le kell írni, hogy mit fognak tartalmazni a struktúrák, azoknak mik a típusai, a struktúrák hogy kapcsolódnak egymáshoz, és milyen szerkezetet alkotnak így. Ezt minden kis apróságával együtt. (Van/nincs strázsa, nullpointer zárt, stb.) Ill. érdemes még a fájlok pontos szerkezetét is ide írni.
- Főbb algoritmusok leírása: Le kell írni, hogy milyen algoritmussal (vagy függvénnyel) mit akarunk elérni, és azt hogy ezt milyen lépéseken keresztül érjük el, és mindezt viszonylagos részletességgel. Általában nem kérik az adatkiírás, és adatbekérés algoritmusát, de bármilyen más keresést, kiválasztást, számítást igen.
- A végső dokumentáció: A dokumentációnak olyannak kell lennie, hogy ha valaki más ugyanezzel a problémával kezdd el foglalkozni, és látja a dokumentációt, akkor egyéb kérdés nélkül reprodukálni tudná a házit (ami többé kevésbé megegyezne a hallgatóéval). Egyébként csak össze kell fűzni az előzőeket és kiegészíteni a tesztelés résszel. A tesztelés részben csak azt kell leírni, hogy milyen, és miért pont azokkal az adatokkal teszteltél.
Van egy másikfajta dokumentálási módszer a doxygen nevű programmal, amihez a kódot és a kommenteket kell úgy alakítani, hogy azt a doxygen értelmezni tudja. Ez a program csinál akkor belőle dokumentációt html, vagy pdf formátumban. Ehhez segítség .......-ebb található.
Doxygen hiány
Nagyzárthelyi
A három feladatból kettő általában függvény definíció írása egy kitalált helyzetre, és a 3. egy teljes program írása. Az anyagok amit kérdezni szoktak:
- Tömbök, pointerek (ide tartoznak a sztringek is)
- Dinamikus adatszerkezetek (láncolt lista, bináris fa)
- Fájlkezelés (szöveges, bináris - írás, olvasás, na persze megnyitás, bezárás)
- Matematikai probléma (szám lebontása számjegyekre, megfordítás, oszthatóság, stb.)
Régebbi nagyZH-k -Denke Á.
Tippek
Egy nap alatt nem lehet megtanulni programozni. A programozás tárgy pont nem egy seggelős tárgy. Új gondolkodásmódot tanít, amit csak úgy lehet eredményesen az elmébe vésni, ha időről időre gyakorolja az ember. Házi feladatból meg egy is elég, és ezért vannak kisZH-k, hogy ezt az állandó készülést próbálják forszírozni.
Nyersen átmentett kód
-- HarasztiRobert - 2006.01.10.
Segítségek
Mintakódok:
- Ezen a helyen volt linkelve a(z) lancolt.c nevű fájl ("Láncolt lista" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Villanyalap/ProgAlap1 oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki sch.bme.hu címre a kérésedet)
- Ezen a helyen volt linkelve a(z) binfa.c nevű fájl ("Bináris fa" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Villanyalap/ProgAlap1 oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki sch.bme.hu címre a kérésedet)
Megjegyzés: ezt a kétféle adatszerkezetet nagyon érdemes tudni, legalább is a zh-ig mindenképp.
-- MAKond - 2010.05.17.
Útmutatók:
- Ezen a helyen volt linkelve a(z) lancolt-lista.pdf nevű fájl ("A láncolt lista" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Villanyalap/ProgAlap1 oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki sch.bme.hu címre a kérésedet)
- Friss! (2010-dec-7) ,,Hogyan építsünk láncolt listát?" útmutató képekkel és kódokkal.
Házi feladatok
2008/2009 1. félév házi feladat
Ezzel a programmal tudsz adatfájlokat generálni magadnak. Bizonyos paramétereket megadhatsz, ezen belül véletlenszerűen generálja az adatokat.
Meglévő adatfájlokat betölthetsz vele, hogy jobban átlásd azt.
A futtatáshoz szükséges a .NET Framework 3.5. Ezt innen le tudod tölteni: Microsoft .NET Framework 3.5
- Ezen a helyen volt linkelve a(z) Adatfjl.exe nevű fájl ("Adatfjl.exe" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Villanyalap/ProgAlap1 oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki sch.bme.hu címre a kérésedet)
- A 2008/2009/1-es házihoz adatfájgenerátor (.NET Framework 3.5 szükséges hozzá)
-- Krónikás - 2008.11.10.
2009/2010 ősz házi feladat
A házi feladat leírása innen tölthető le:
- Ezen a helyen volt linkelve a(z) proghf0001.jpg nevű fájl ("1. oldal" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Villanyalap/ProgAlap1 oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki sch.bme.hu címre a kérésedet)
- Ezen a helyen volt linkelve a(z) proghf0002.jpg nevű fájl ("2. oldal" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Villanyalap/ProgAlap1 oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki sch.bme.hu címre a kérésedet)
Jelmagyarázat a 2. oldalhoz:
- #1: valamely alapanyag neve (az 1. oldali táblázatból)
- #2: legtöbb/legkevesebb, illetve legtöbb/legkevesebb féle
- #3: első/utolsó órában; első/utolsó 2/3/... órában; a teljes nyitvatartás alatt
A nehezebb házikban előfordult olyan kérdés is, ahol:
- nem egy adott alapanyag adagszámát, hanem a felhasznált alapanyagfélék számát kérdezték;
- nem az egész nyitva tartás során kerestük az alapanyagot, hanem az első/utolsó 2/3/.. órában, esetleg egy konkrét órában;
- #2-nél általában alapanyagot néztünk, de volt olyan házi, ahol pizzára volt kérdés, tehát pl. ".., ahol a legtöbb féle/legtöbb pizzát..").
Illetve ezek tetszőleges kombinációja - mindenki különböző kérdést kapott, de ez legtöbbször tkp. abban merült ki, hogy a kész programban néhány változót át kellett írni.
A háziban az igazán fontos rész tehát az adatszerkezet felépítése volt, erre legcélszerűbb a láncolt listák alkalmazása volt - általában elég volt csak előre láncolni, hiszen a rendelések időrendben jöttek.
-- Main.kir26842id - 2010.02
- Ezen a helyen volt linkelve a(z) stdc.pdf nevű fájl ("stdc.pdf" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Villanyalap/ProgAlap1 oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki sch.bme.hu címre a kérésedet)
- C összefoglaló
Láncolt lista A láncolt lista adatszerkezet leírása.
- Ezen a helyen volt linkelve a(z) Cbooks_Pr-C_CD.ISO nevű fájl ("Cbooks_Pr-C_CD.ISO" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Villanyalap/ProgAlap1 oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki sch.bme.hu címre a kérésedet)
- ComputerBooks: Programozzunk C nyelven lemezmelléklet