Programozás 1, Géptermi PótZH, 2012. 06. 18.

A programok elkészítéséhez segédanyagként csak nyomtatásban megjelent könyvet szabad használni, minden más anyaggal (pendrive, szomszéd hallgató) való próbálkozás tilos. A gyakorlatvezetőnek joga van a géptermi ZH gyenge teljesítménye esetén a beadandókat összevetni a géptermi ZH-n készített programmal, és amennyiben nem meggyőző a beadandó saját kezűsége, a gyakorlati jegy megtagadható.

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.

A géptermi ZH értékelése a gyakorlatvezető hatásköre. Az értékelési szempontok a következők:

  • adatkezelő feladat megoldásánál a kód és a választott adatszerkezet eleganciája (felesleges adatok nem szerepelnek benne, egyszerű, hatékony), ennek kommentben leírt egy-két mondatos indoklása mellett.
  • a programok működési minősége, a grafikus feladatok képe olyan, mint a feladat mutatja, az adatkezelő program helyesen jeleníti meg az adatokat
  • A grafikus feladatok közül elegendő egyet megoldani (megfelelően sikerült adatkezelő feladat mellett) a maximális értékeléshez, mindkettő megoldása extra pontokat jelent, további extra pontokat lehet kapni a 3d_feladat_extra feladat megoldásáért.
  • Az adatkezelő feladatok súlya egyesével körülbelül azonos egy grafikus feladattal
  • Az adatkezelő feladatok közül legalább az egyik megoldásának le kell fordulnia, adatokat kell beolvasnia és kiírnia az érvényes géptermi ZH-hoz.
  • Grafikus feladatok

    A grafikus feladatok esetében utánozni kell a kiadott .exe fájlt. Nem kell pixel pontosnak lennie az eredménynek, csak erősen hasonlítania.

    Az 1. adatkezelő feladat leírása

    Szeretnénk egy biokémiai térképet csinálni, amiben a vegyületeket akkor kötjük össze, ha valamilyen fontos reakciósorozatban szomszédosak. A rendszernek meg akarjuk tanítani ezeket a kapcsolatokat, majd egy kérdést szeretnénk feltenni: Két vegyület megadása után szeretnénk felsorolni azokat a vegyületeket, amik összekötik azokat. (pl. ha a Glucose-1P -- Glucose-6P, és Glucose-6P -- Fructose-6P kapcsolatok léteznek, akkor a Glucose-1P és Fructose-6P inputra az egyik output a Glucose-6P kell legyen)

    A 2. adatkezelő feladat leírása

    Adott egy main függvény:


    list<int> l;
    push(l,3);
    push(l,7);
    push(l,1);
    push(l,rand()%10);
    copy(l.begin(), l.end(), ostream_iterator<int>(cout, " "));

    Írd meg a push függvényt úgy, hogy a program sorrendben írja ki a számokat, és nem tartalmaz ciklust.

    A választott adatszerkezetnek nem kötelező egyetlen kombinált STL típusnak lennie, de egy struct vagy class privát mezőjében kell elhelyezni. Maximális értékeléshez 1-2 mondatos komment is kell az adatszerkezet megválasztásának indoklásával.