Bevezetés a programozásba, Géptermi pótZH, 2011. 01. 25.

A ZH három 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 feladatokhoz egy adatfájl tartozik, ezt az első feladathoz kell használni. A másik két feladatban a fájlokat neked kell létrehozni, betartva a feladatkiírásban megadott formátumokat.

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 (például megváltoztatja az adatfájl tartalmá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-harmadik feladatra adott megoldást csak akkor vesszük figyelembe, ha az első feladat érvényes.

A második feladat: szólánckészítő program

A szólánc szavak olyan sorozata, ami

  • nem tartalmazza ugyanazt a szót kétszer,
  • minden szó első karaktere az előző szó utolsó karaktere

  • A programnak három bemenete van: egy kezdőszó, egy szótárfájl neve, és egy maximális szólánchossz (N). A kívánt kimenet egy olyan szólánc, amelyik minden szavát a szótárfájlból véletlenszerűen választja azok közül, amik megfelelnek a két követelménynek. Ha nincs megfelelő szó a szótárfájlban (például mert minden z-vel kezdődő szót elhasználtunk), vagy elértük az N szót, akkor befejeződik a szólánc készítése.
    Figyelem, a feladat megoldásához nem kötelező megkeresni a lehetséges N hosszú szóláncot, azaz ha létezik ilyen szólánc, de a véletlen választás miatt másfelé épít a program, és megakad a szólánc készítése, az nem baj. Az a fontos, hogy az utolsó szó után ne lehessen folytatni.

    A szótárfájlról feltételezhető, hogy ábécésorrendben tartalmaz szavakat, minden szót egyszer.

    Harmadik feladat: raktár nyilvántartás

    Adott egy szövegfájl, amiben soronként egy tétel egy árucikk mennyiségét, megnevezését, és egységárát tartalmazza, megnevezés szerint ábécé sorrendben:

    1 asztal 9000
    2 polc 12000
    3 szék 4000

    Emellett adott egy másik szövegfájl, amiben egy megrendelés szerepel, hasonló formátumban, egységár nélkül.

    A feladat az, hogy a program írja ki, hogy sikeres-e a megrendelés, vagy hiányos, és adja meg a raktáron levő készlet erejéig a megrendelés árát szép, tételes formában. Más szavakkal, ha a megrendelt termékek a raktáron megtalálhatóak, úgy a kimenet az, hogy "sikeres", és a megrendelt termékek egységárból számolt összege. Ha a megrendelés sikertelen, mert a fenti példa raktárkészlet mellett 4 széket rendelnek, az "sikertelen", és az összegben 3 széket kell számolni. Egy lehetséges kimenet (fenti raktárkészlet, 4 szék, 1 polc és 1 szekrény rendelése mellett):

    A rendeles sikertelen
    3 szék: 12000
    1 polc: 12000
    ---------------------
    Osszesen: 24000

    A feladat többféle megoldását is elfogadjuk, memóriaigényre való tekintet nélkül, nem kötelező elemenkénti feldolgozást használni.