„A programozás alapjai” változatai közötti eltérés

A VIK Wikiből
Ugrás a navigációhoz Ugrás a kereséshez
(→‎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 programozás alapjai
Tárgykód
VIEEBA01
Általános infók
Szak
üzemmérnök
Kredit
7
Ajánlott félév
1
Keresztfélév
N/A
Tanszék
EET
Követelmények
KisZH
6-ból páronként a jobb számít
NagyZH
1 db
Házi feladat
1 db nagyházi
Vizsga
írásbeli
Elérhetőségek
Levlista
N/A



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é.

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