„A programozás alapjai” változatai közötti eltérés
(→Számonkérések: HF-ról és ZH-ról információ hozzáadás, majd a 2018-as feladatsorokat is fel tervezem tenni) |
(NZH 2018 hozzáadása, tematika hozzáadása) |
||
61. sor: | 61. sor: | ||
== Tematika == | == Tematika == | ||
− | TODO | + | Előadások és laborok összefésült témája: |
+ | * operációs rendszer, egyszerű programok | ||
+ | * vezérlési szerkezetek, nyomkövetés | ||
+ | * nevezetese algoritmusok, listák, sztringek | ||
+ | * adatszerkezetek építése, karakterkódok kezelése | ||
+ | * vezérlési szerkezetek, kivételek | ||
+ | * konverziók, formázás | ||
+ | * függvények, referenciák | ||
+ | * osztályok | ||
+ | * operátorok, számábrázolás | ||
+ | * rendezések, rekurzió, hash táblák | ||
+ | * fájlkezelés | ||
+ | * több modulos programok | ||
+ | * láncolt listák, bináris fák | ||
+ | * összetett adatszerkezetek | ||
+ | * állapotgépek, reguláris kifejezések | ||
+ | TODO folytatás | ||
+ | |||
== Segédanyagok == | == Segédanyagok == | ||
TODO | TODO | ||
103. sor: | 120. sor: | ||
=== ZH === | === ZH === | ||
A félév során egy nagy ZH van (2018-ban: 7. hét), mely 40 pontból áll és 4 feladatra oszlik, mely kódját papíron kell leírni. | A félév során egy nagy ZH van (2018-ban: 7. hét), mely 40 pontból áll és 4 feladatra oszlik, mely kódját papíron kell leírni. | ||
+ | ==== NZH 2018.==== | ||
+ | =====1. feladat - ProgAlap eredmények===== | ||
+ | :{| class="wikitable" align="right" | ||
+ | |- | ||
+ | | 1 || 3 || *** | ||
+ | |- | ||
+ | | 2 || 5 || ***** | ||
+ | |- | ||
+ | | 3 || 7 || ******* | ||
+ | |- | ||
+ | | 4 || 8 || ******** | ||
+ | |- | ||
+ | | 5 || 6 || ****** | ||
+ | |- | ||
+ | |colspan="3" | átment 26 fő | ||
+ | |} | ||
+ | :{| class="wikitable" align="right" | ||
+ | !Pont!!Jegy | ||
+ | |- | ||
+ | | 0 - 69 || 1 | ||
+ | |- | ||
+ | |70 - 90 || 2 | ||
+ | |- | ||
+ | |91 - 105 || 3 | ||
+ | |- | ||
+ | |106 - 119 || 4 | ||
+ | |- | ||
+ | |120 - 140 || 5 | ||
+ | |} | ||
+ | Jobb oldalt a ProgAlap tárgy pontozási táblázatát látod: a félév végéig megszerezett pontokból kialakuló jegyet. Írj függvényt, amely a pontszámból jegyet csinál és használd is fel! | ||
+ | |||
+ | Egy olyan programot kell írnod, amelyik soronként beolvassa a hallgatók pontszámait, és statisztikát készít a jegyekről: hány jeles, hány jó, ... lett. A bemenet végét egy üres sor jelzi. A bementről érkező teljes számsort ne tárold el, keress alkalmas adatszerkezetet! A statisztikából kell a szintén jobb oldalt található formában grafikont készíteni: minden sorban a jegy, a létszám aztán annyi *, amennyi a létszám,. Írd ki azt is a grafikon alá, hogy hányan teljesítették a tárgyat! | ||
+ | =====2. feladat - Útiterv===== | ||
+ | Egy kamionsofőr autópályán vezet, 100 km/h-val haladva. A benzinkutak egymástól való távolságát előre ismeri a térképről. Minden másfél órányi vezetés után pihenőt kell tartania. Szeretne egy útitervet készíteni: előre eldönteni azt, hogy melyik benzinkúton kell majd pihennie. A szabály egyszerű: minden olyan benzinkútnál megáll, amelynél ha nem tartana pihenőt, a következő kúthoz már csak úgy érne el, ha túllépné a másfél órás egyfolytában vezetést. | ||
+ | |||
+ | Írj programot, amely soronként beolvassa az egyes benzinkutak közötti távolságot km-ben! Előbb megkapja a távolságok számát (n), magukat a távolságokat (valós számok, n darab). Végül pedig kiírja az útitervet. Például ha bemenetként a 45.3, 30.7, 64, 35, 72 számsort kapja (km-ek), akkor a kimenet az alábbi kell legyen: | ||
+ | :{| class="wikitable" align="center" | ||
+ | |- | ||
+ | | 45.3 km, 30.7 km, 64 km, szünet. | ||
+ | 35 km, 72 km, vége. | ||
+ | |} | ||
+ | (Az első három táv összesen 140 km, amihez 1,4 óra kell. Ha megtette volna a következő 35 km-t, ahhoz már 1,75 óra kellett volna, ezért jött a szünet.) | ||
+ | =====3. feladat - Tizennégy betű, tizennégy osztó===== | ||
+ | Az 1245 szám szájegyeit betűkkel, magyarul kiírva összesen 3+5+4+2=14 betűt használunk fel: "egy kettő négy öt". Írj programot, amelyben megkeresed a legnagyobb négyjegyű számot, amely osztóinak száma 14 (beleértve saját magát és az 1-et is), és a számjegyeit leírva 14 betűt kell felhasználni! Írd ki, melyik ez a szám, vagy ha nincs ilyen, akkor azt! | ||
+ | |||
+ | Ne írj felesleges kódot! Használj fentről lefelé tervezést, írj a két részfeladathoz függvényeket (hány betű, osztók száma)! Emlékeztető: egy szám utolsó számjegyét eldobni tízzel való egész osztás segítségével tudod, míg magát az utolsó számjegyet a tízzel osztás maradéka adja meg. | ||
+ | =====4. feladat - Hiányos sorozat===== | ||
+ | A programod a bemenetén kap egy számsorozatot - egész addig, amíg egyszer csak egy üres sor nem érkezik. Ezeket el kell tárolnia egy listában. A számok egy növekvő számtani sorozatot alkotnak. A sor egy helyen hibás, valahol hiányzik egy eleme. Ezért valamelyik szomszédos elempár között kétszer akora a különbség, mint a többi helyen. | ||
+ | |||
+ | Írja ki a programod a beolvasás után a sorozat növekményét (differenciáját) és a kijavított sorozatot, megjelölve a hiányzó elemet! Pl. ha a bemenő számsor 2, 4, 6, 10, 12 voltak, a kimenet: | ||
+ | :{| class="wikitable" align="center" | ||
+ | |- | ||
+ | | A sorozat növekménye: 2 | ||
+ | A sorozat javítva: 2 4 6 (8) 10 12 | ||
+ | |} | ||
+ | Figyelj arra, hogy a megadott számsorozatnak legalább három eleműnek kell lennie, hogy értelmes legyen a feladat. Amennyiben ez nem teljesülne, dobj ValueError típusú kivételt! | ||
Valamint 6 kis ZH, melyek az egyik előre kijelölt laboralkalmon kerülnek megírásra, nehézsége nagyjából egy nagy ZH-s feladattal egyezik meg, s 10 pont jár érte. | Valamint 6 kis ZH, melyek az egyik előre kijelölt laboralkalmon kerülnek megírásra, nehézsége nagyjából egy nagy ZH-s feladattal egyezik meg, s 10 pont jár érte. |
A lap 2018. november 29., 23:00-kori változata
A tantárgy célkitűzése, hogy a hallgatók készség szinten alkalmazható ismereteket szerezzenek a számítógépes problémamegoldás módszereinek és alapvető eszközeinek használatában, úgy mint elemi és összetett adatok, programozási tételek, fájlkezelés. További cél, hogy a megszerzett ismereteket és készségeket további tanulmányaik során hatékonyan legyenek képesek alkalmazni. A célkitűzés teljesítését egy magas szintű programozási nyelv, a Python megismerése teszi lehetővé.
Tartalomjegyzék
Követelmények
A szorgalmi időszakban
Az aláírás megszerzésének feltételei:
- Az előadások legalább 70%-án való részvétel (Bár katalógus nincs).
- A laborok 70%-án való részvétel, csak a laborok elején írt beugró sikeres megírása esetén számít jelenlétnek.
- A kisZH-k sikeres megírása. A hat kisZH három témakört ölel fel, azaz három dolgozatpárost jelentenek. Minden pár közül a jobban sikerült eredménye számít, ez kell elérje az adott dolgozatra szerezhető pontszám 40%-át.
- A nagyZH sikeres megírása.
Pótlási lehetőségek:
- A kisZH-k közül egy pótlási díj ellenében póthéten pótolható/javítható.
- A nagyZH egyszer díjmentesen, utána a pótlási héten pótolható pluszköltséggel.
- A nagyHF a szorgalmi időszak utolsó napjáig 12:00-ig pótolható pluszköltséggel, a póthéten vagy utána már nem lehetséges.
A vizsgaidőszakban
- Írásbeli vizsga.
Félévvégi jegy
- Aki a félévközi eredményekkel kiváló eredményt ért el, megajánlott jelest kap: max(KZH1, KZH2) + max(KZH3, KZH4) + max(KZH5, KZH6) + NZH + NHF + szorgalmi >= 80 pont.
Vizsga esetén az érdemjegy meghatározásánál az alábbi pontszámokat vesszük figyelembe:
- 40 pont – vizsgadolgozat 2× súllyal (80 pont)
- 40 pont – nagy zárthelyi
- 20 pont – nagy házi feladat
Ponthatárok:
Pont Jegy 0 - 69 1 70 - 90 2 91 - 105 3 106 - 119 4 120 - 140 5
A nagy házi feladat részfeladatainak időben történő leadása beleszámít annak pontozásába. Extra pontokat lehet szerezni a félév közben beadott és elfogadott szorgalmi feladatokkal. A szorgalmi feladatok pontjai csak 80 pont fölött számítanak.
Tematika
Előadások és laborok összefésült témája:
- operációs rendszer, egyszerű programok
- vezérlési szerkezetek, nyomkövetés
- nevezetese algoritmusok, listák, sztringek
- adatszerkezetek építése, karakterkódok kezelése
- vezérlési szerkezetek, kivételek
- konverziók, formázás
- függvények, referenciák
- osztályok
- operátorok, számábrázolás
- rendezések, rekurzió, hash táblák
- fájlkezelés
- több modulos programok
- láncolt listák, bináris fák
- összetett adatszerkezetek
- állapotgépek, reguláris kifejezések
TODO folytatás
Segédanyagok
TODO
Számonkérések
Házi feladat
A félév során egy nagy házi feladat van, melyen maximum 20 pontot lehet elérni. A beadáshoz 4 mérföldkő vezet:
- feladatválasztás (2018-ban: 7. hét vége),
- specifikáció (2018-ban: 8. hét vége),
- félkész megoldás (2018-ban: 10. hét vége),
- végleges program (2018-ban: 12. hét vége).
Amennyiben nem teljesült a beadás, díjköteles pótlehetőség van (2018-ban: szorgalmi időszak utolsó tanítási napja). Plágium büntetéshez vezet.
Pontozás
Maximálisan 20 pont érhető el az alábbiak szerint:
- Határidő betartás
- kiválasztás időben
- specifikáció elkészítése időben
- félkész házi beadása időben
- végleges házi beadása időben
- Kód minősége
- modulokra bontás
- funkcionális dekompozíció
- helyes erőforráskezelés
- helyes nyelvi elem használat
- elvárt kódolási stílus
- nincsenek újraimplementált szabványos függvények
- megfelelő adatszerkezetek, típusok
- szerep szerinti névadás
- +2 feladatfüggő pont
- Dokumentáció
- nincsen felfújva
- Programozói dokumentáció
- szükséges környezet leírása
- projekt felépítésének leírása
- adatszerkezet ismertetése
- függvények dokumentációja
- Felhasználói dokumentáció
- program feladata, célja, kezelése
ZH
A félév során egy nagy ZH van (2018-ban: 7. hét), mely 40 pontból áll és 4 feladatra oszlik, mely kódját papíron kell leírni.
NZH 2018.
1. feladat - ProgAlap eredmények
1 3 *** 2 5 ***** 3 7 ******* 4 8 ******** 5 6 ****** átment 26 fő
Pont Jegy 0 - 69 1 70 - 90 2 91 - 105 3 106 - 119 4 120 - 140 5
Jobb oldalt a ProgAlap tárgy pontozási táblázatát látod: a félév végéig megszerezett pontokból kialakuló jegyet. Írj függvényt, amely a pontszámból jegyet csinál és használd is fel!
Egy olyan programot kell írnod, amelyik soronként beolvassa a hallgatók pontszámait, és statisztikát készít a jegyekről: hány jeles, hány jó, ... lett. A bemenet végét egy üres sor jelzi. A bementről érkező teljes számsort ne tárold el, keress alkalmas adatszerkezetet! A statisztikából kell a szintén jobb oldalt található formában grafikont készíteni: minden sorban a jegy, a létszám aztán annyi *, amennyi a létszám,. Írd ki azt is a grafikon alá, hogy hányan teljesítették a tárgyat!
2. feladat - Útiterv
Egy kamionsofőr autópályán vezet, 100 km/h-val haladva. A benzinkutak egymástól való távolságát előre ismeri a térképről. Minden másfél órányi vezetés után pihenőt kell tartania. Szeretne egy útitervet készíteni: előre eldönteni azt, hogy melyik benzinkúton kell majd pihennie. A szabály egyszerű: minden olyan benzinkútnál megáll, amelynél ha nem tartana pihenőt, a következő kúthoz már csak úgy érne el, ha túllépné a másfél órás egyfolytában vezetést.
Írj programot, amely soronként beolvassa az egyes benzinkutak közötti távolságot km-ben! Előbb megkapja a távolságok számát (n), magukat a távolságokat (valós számok, n darab). Végül pedig kiírja az útitervet. Például ha bemenetként a 45.3, 30.7, 64, 35, 72 számsort kapja (km-ek), akkor a kimenet az alábbi kell legyen:
45.3 km, 30.7 km, 64 km, szünet. 35 km, 72 km, vége.
(Az első három táv összesen 140 km, amihez 1,4 óra kell. Ha megtette volna a következő 35 km-t, ahhoz már 1,75 óra kellett volna, ezért jött a szünet.)
3. feladat - Tizennégy betű, tizennégy osztó
Az 1245 szám szájegyeit betűkkel, magyarul kiírva összesen 3+5+4+2=14 betűt használunk fel: "egy kettő négy öt". Írj programot, amelyben megkeresed a legnagyobb négyjegyű számot, amely osztóinak száma 14 (beleértve saját magát és az 1-et is), és a számjegyeit leírva 14 betűt kell felhasználni! Írd ki, melyik ez a szám, vagy ha nincs ilyen, akkor azt!
Ne írj felesleges kódot! Használj fentről lefelé tervezést, írj a két részfeladathoz függvényeket (hány betű, osztók száma)! Emlékeztető: egy szám utolsó számjegyét eldobni tízzel való egész osztás segítségével tudod, míg magát az utolsó számjegyet a tízzel osztás maradéka adja meg.
4. feladat - Hiányos sorozat
A programod a bemenetén kap egy számsorozatot - egész addig, amíg egyszer csak egy üres sor nem érkezik. Ezeket el kell tárolnia egy listában. A számok egy növekvő számtani sorozatot alkotnak. A sor egy helyen hibás, valahol hiányzik egy eleme. Ezért valamelyik szomszédos elempár között kétszer akora a különbség, mint a többi helyen.
Írja ki a programod a beolvasás után a sorozat növekményét (differenciáját) és a kijavított sorozatot, megjelölve a hiányzó elemet! Pl. ha a bemenő számsor 2, 4, 6, 10, 12 voltak, a kimenet:
A sorozat növekménye: 2 A sorozat javítva: 2 4 6 (8) 10 12
Figyelj arra, hogy a megadott számsorozatnak legalább három eleműnek kell lennie, hogy értelmes legyen a feladat. Amennyiben ez nem teljesülne, dobj ValueError típusú kivételt!
Valamint 6 kis ZH, melyek az egyik előre kijelölt laboralkalmon kerülnek megírásra, nehézsége nagyjából egy nagy ZH-s feladattal egyezik meg, s 10 pont jár érte.
Vizsga
TODO
Tippek
TODO
Kedvcsináló
TODO