Bevezetés a programozásba, Géptermi ZH, 2010. 12. 16. Délután

A ZH két feladatot tartalmaz, és három óra áll rendelkezésre a megoldáshoz. A programok elkészítéséhez segédanyagként csak nyomtatásban megjelent könyvet szabad használni, minden más anyaggal (előadásdiák, pendrive, szomszéd hallgató) való próbálkozás tilos.

A ZH írása közben amennyiben kérdésed van, csendben jelezd a felügyelőnek, és a kérdést csak személyesen tedd fel, ne zavard mások munkáját. Amennyiben egy szakasszal készen vagy, szintén jelezz egy felügyelőnek, aki elbírálja a munka minőségét, és megmondja, hogy elfogadja-e, vagy sem. Az elutasítást nem minden esetben kell megmagyaráznia, csak ha úgy ítéli meg, hogy a tananyagnak nem képezi szerves részét a probléma.

Az első feladat megoldásához a programszöveg módosításra engedélyezett részén a hiányzó részeket el kell készíteni. A program önpontozó, akkor érvényes, ha maximális pontszámot érsz el.

A második feladatra adott megoldást csak akkor vesszük figyelembe, ha az első feladat érvényes.

A második feladat leírása:

Adott egy logfájl, ami egy Linux rendszer csomagkezelőjének néhány napját tartalmazza. Minden sor egy tétel. Egy rövid szakasz a fájlból:
2010-12-01 20:58:04 install libcdk5 <none> 5.0.20060507-2
2010-12-01 20:58:05 install gphoto2 <none> 2.4.5-3
2010-12-01 20:58:07 trigproc man-db 2.5.7-6 2.5.7-6
2010-12-01 20:58:16 configure libcdk5 5.0.20060507-2 5.0.20060507-2
2010-12-01 20:58:17 configure gphoto2 2.4.5-3 2.4.5-3

A fenti szakasz jelentése, hogy a rendszerre december elsején este kilenc előtt két csomag települt, vélhetően a hozzájuk tartozó manual lapok erre a triggerre (jelre) frissültek, mindenesetre biztosan elindult a man-db nevű program, és végül lefutott a frissen telepített csomagok konfigurálása.

Minden sor 6 adatot tartalmaz: dátum, idő, tevékenység, csomagnév, régi verzió, új verzió. A tevékenységek a következők lehetnek: configure (telepített csomag beállítása), install (csomag letöltés és kicsomagolás), trigproc (telepítés intézésében segítő program indítása), upgrade (csomag frissítés, új változat letöltése és kicsomagolása).

Könnyű feladatok:

A csoport:

Sorold fel azokat a csomagokat, amiket 2010. december másodika után telepítettek!

Sorold fel a tasksel csomag logfájlban található verzióit!

B csoport:

Igaz-e, hogy az telepítések és frissítések számának összege megegyezik a konfigurálások számával?

Készíts statisztikát, melyik tevékenységet hányszor kellett végezni.

Nehéz feladatok

A csoport:

Feltételezve, hogy a trigproc bejegyzések az utoljára bejegyzett tevékenységhez tartoznak (akár több is), melyik az a csomag, amihez a legtöbb (maximális, ha több is van, akkor bármelyik) trigproc tartozik?

B csoport:

A rendszer karbantartási szakaszait úgy különböztetjük meg, hogy ha nincs egy órán keresztül bejegyzés, az két karbantartási szakasz határa. A logfájl hány ilyen szakaszt tartalmaz?

Extra feladat pluszpontért mindkét csoportban:

A log2.txt fájl az eredeti logfájlt tartalmazza, amiben más természetű, ún. status sorok is vannak. Az előző feladatokra választ adó program működjön erre a fájlra is. Térképezd fel a status sorok jelentését, és próbálj meg válaszolni arra a kérdésre, hogy átlagosan hány dolgot kell kicsomagolni egy csomagból.