Játsszunk programozósdit!

2022-04-13
A programozás és szoftverfejlesztés nem igényel különleges képességeket. Szeretnénk egy kis ízelítőt adni a fejlesztői gondolkodás alapjaiból. Szereted a játékos fejtörőket? Ha igen, akkor ez a feladat neked való!

Írásainkat olyan, az informatika iránt érdeklődőknek szánjuk, akik egyelőre még szinte semmit vagy csak nagyon keveset tudnak az IT, weboldal készítés, internet, hálózatok, programozás, stb. világáról. Az általunk használt kifejezések és magyarázatok a nem szakmabelieknek szólnak. Cserébe közérthetően szeretnénk bemutatni az informatika különböző területeit és fogalmait.

***

Valljuk be, a legtöbb embernek fogalma sincs arról, hogy mit jelent a “kódolni” kifejezés. A “programozás” szóval már kicsit jobb a helyzet, de igazából az is homályos és misztikus a legtöbb hétköznapi foglalkozással bíró ember számára.

Pedig a programozás / fejlesztés is ugyanolyan szakma, mint a többi. Mint minden szakmának, természetesen ennek is megvannak a sajátosságai. Talán a legnagyobb különbség az, hogy a programozónak nem csak emlékeznie kell szakmájának bizonyos elemeire: A programozói gondolkodást is meg kell tanulni. Ez is tanulható, fejleszthető, igazából nincs benne semmi rendkívüli.


Feladvány

Kitaláltunk számotokra egy feladatot. Minden eleme fiktív és a valóságtól egy picikét elrugaszkodott, de lényegét tekintve demonstrációs célokra kiválóan alkalmas.

Adott egy téglagyár, ahonnan téglát lehet rendelni. A megrendelt téglákat egy szállító cég teherautója viszi ki a megrendelőnek. A téglagyár előtt sajnos nincs megoldva a parkolás, ezért a teherautó nem tud megállni, hogy kényelmesen, egyben felvegye az árut. Csak arra van lehetőség, hogy a mozgásban lévő teherautóra egyesével dobják fel a téglákat. A teherautó a rajzolt körpályán mozog és körönként mindig csak egy téglát tud felvenni. A megrendelő ragaszkodik hozzá, hogy az árut egyben szállítsák ki neki, vagyis a teherautó csak akkor indulhat el a megrendelő háza felé, amikor már az összes megrendelt tégla összegyűlt a platón.

A lenti ábrán látható a téglagyár, a megrendelő háza, a teherautó indulási pontja és a használható utak.


Ábra téglagyárral, teherautóval, megrendelővel és úttal


Adatok

  • Megrendelt téglák mennyisége: 5 db.
  • A teherautó indulásának ideje: reggel 8:00
  • 1 teljes kör megtételéhez szükséges idő: 10 perc
  • Minden egyes platón lévő tégla megnöveli az egy kör megtételéhez szükséges menetidőt 1 perccel.
  • A gyár és a megrendelő háza közti út megtételéhez szükséges idő a megrendelt téglamennyiséggel: 15 perc

Kérdés

Mikor fog megérkezni a teherautó a megrendelő házához?


"Valóságra hangolva"

A fenti példát életszerűbbé tehetjük, ha elképzeljük az alábbi helyzetet. Tegyük fel, hogy a téglagyár számára kiemelkedően fontos a tökéletes ügyfélkiszolgálás, ezért a teherautó indulásakor az ügyintézők minden esetben felhívják az adott megrendelőt és közlik az áru érkezésének időpontját. Az ügyintézők munkaidejéből sok időt vesz el a számolás, ráadásul a tévesztés lehetősége is minden esetben fennáll. A gyár vezetője a hatékonyság és pontosság növelése érdekében úgy dönt, hogy felkér egy programozót egy olyan eszköz kifejlesztésére, ami az ügyintézők helyett kiszámítja a várható időt.
Ehhez a programozónak elsőként meg kell értenie a szállítás menetét és sajátosságait (vagyis gyakorlatilag a fenti feladatot le kell modelleznie) és aztán, csak ennek fényében állhat neki a tényleges technikai fejlesztésnek.


A feladat megközelítése

Fontos, hogy olyan megoldást (képletet) találjunk, amelyben a feladatban látható változó adatok esetleges megváltoztatása után is könnyen, minden esetben megkapjuk a helyes végeredményt.

Például:

  • Ha változik az egy kör megtételéhez szükséges idő
  • Ha változik a megnövelt rakomány általi körönkénti plusz idő
  • Ha a megrendelő több/kevesebb árut rendel

Nem kell megijedni! A megfejtéshez bőségesen elég, ha általános iskolai matematikai tudással rendelkezel. Akinek van kedve, a közelgő hosszú hétvégén gondolkodhat a fenti feladványon. Az ünnep elmúltával, következő posztunkban megmutatjuk a megoldást.

Az a típusú elme, ami nem retten meg hasonló jellegű feladatokon való gondolkodástól, sőt netán még kifejezetten élvezi is, jó eséllyel lehet jó programozó.

Ha érdekel a programozás, nézd meg IT képzéseinket: Junior Java backend fejlesztő, Junior frontend fejlesztő, Junior szoftvertesztelő