Hirdetés

Új hozzászólás Aktív témák

  • opr

    nagyúr

    Nah, akkor, mivel sokan kérték, három sztem jó, nyelvfüggetlen gyakorló feladat.

    Nem nehézségi sorrendben vannak a feladatok.
    Alapvetően elmondható, hogyha ezeket a feladatokat jól meg tudod oldani (szépen, modulárisan, bővíthetően, tesztelve, stb), akkor egy junior interjún valszeg nagy bajod nem lesz. Őszintén szólva tapasztalataim alapján lehet egy senior interjún sem, de ez már a dolog szomorúbb része. :)

    A dolog szépsége, hogy meg lehet oldani nagyon sokféleképpen, hétköznapi feladat, és nincs rá univerzálisan "jobb" megoldás, avagy minden út Rómába vezet. :)

    Szóval, a feladatok röviden, tömören:
    #1:
    Írj "liftvezérlő" programot.
    A képzeletbeli liftünk egy olyan lift, ahol van külön lefele és felfele hívó gomb.
    A liftben van mérleg, és meg van adva, maximum hány ember szállhat be (hány kg).
    A liftnek okosan kell megoldania, hogy mikor/milyen hívásra áll meg, és mikor nem.
    Bármilyen módot választhatsz az adatok tárolására, feldolgozására, beolvasására.
    A lift hívógombját valósidőben kezelni kell, nem előre eltárolt eseményként kell megírni!

    A program kimenete az aktív hívások litsája, a lift aktuális helye, állapota (üres/teli/stb, áll/mozog fel/mozog le) és célja.

    #2:
    Csinálj egy virtuális mosógépet. (Legalább megtanulod hogy kell mosni, muter is örülni fog. :DDD)
    Nem hiszem, hogy túl kell magyarázni a dolgot.
    Vannak programok, vannak események, vannak akciók, van mindennek ideje és mennyisége, állapota, stb.

    Bónusz: időráta. Mivel egy emulált 100 perces mosást kivárni nem jó ötlet, lehessen menet közben állítani az időrátán mondjuk 0.5x-50x-es gyorsaságot.

    A program kimenete a mosógép mindenének az állapota, a mosás kezdetétől eltelt idő, és a mosás végig hátralévő idő.

    #3:
    Egy önkiszolgáló kassza programját kéne megírni.

    Vannak termékek, és akciók. Akció lehet pl az, hogy három ugyanolyan termékből az egyik ingyen van, vagy az, hogy három valamilyen termékből a legolcsóbb ingyen van (pl macisajt, túrórudi, patkányméregből a rudi ingyen van).

    A feladat az, hogy: írd meg a "scan" függvényt.
    Bármilyen módot választhatsz az adatok tárolására, és beolvasására (pl stringben a termék neve, rendelhetsz hozzá "vonalkódot" (ID), vagy akármi).

    A feladat végső kimenete pedig a blokk, amin tételesen szerepelnek a megvásárolt termékek, árral, darabszámmal, stb, illetve a levont akciók (ha van ilyen), árral, stb, és a végén egy végösszeg.

    Mindhárom feladathoz az alábbi még fontos:
    - Magic number a kódban nincs. Nem, még az az egy ártalmatlan sem.
    - Ha értelmezhető, no warning policy van. Nem, a warning elnémítása nem elegendő. Kivételt képezhet ez alól ha warninggyáros libetek használsz (pl qt, boost)
    - Fontos, hogy úgy legyen megírva, hogy ha esetleg valaki kitalál egy új funkciót, ne kelljen az egészet újraírni (OOP, SOLID).
    - Fontos, hogy ne legyen hardcode-olva semmi. Minden legyen konfigurálható és dinamikus.
    - Tudástól függő dolog, de TDD, BDD előny. Persze ha teljesen kezdő vagy, akkor az elején nem elvárt. :)

    Jó szórakozást kívánok hozzá! :R

    Kollegáktól vélemény/konstruktív kritika jöhet bátran. :)

Új hozzászólás Aktív témák