Utolsó módosítás: 2009. április 16.
Ez a program a vásárlásban fog segíteni. A program bemenete megadja egy sor termék árát négy különböző boltban. A kimenetben meg kell mondani, melyik terméket melyik boltban a legolcsóbb megvenni.
A bemenet első sora a négy különböző üzlet nevét adja meg. Minden további sor első szava a termék neve, a következő négy szó az egyes termékek ára a négy üzletben. Egy lehetséges bemenet például a következő (letöltés: hfabe0).
piac cba spar tesco liszt 140 140 130 120 kenyér 190 210 210 230 parizer 900 1500 1400 1200 margarin 200 220 135 180
Az árak legfeljebb hatjegyű pozitív egészek, forintban értendők. A sorokban az egyes szavak akárhány üreshely karakterrel el lehetnek választva. Az egyszerűség kedvéért feltesszük, hogy minden terméket mind a négy boltban meg lehet kapni, és ezek felcserélhetőek, vagyis az áron kívül másban nem különböznek. A termékek számát nem adom meg előre, a programnak a bemenet végéig kell olvasni a sorokat.
A program kimenetében minden termékhez egy-egy sor tartozik, ugyanolyan sorrendben, mint a bemenetben. Minden sor két szóból áll, az első szó a termék neve, a második szó annak az üzletnek a neve, ahol a termék ára a legalacsonyabb. (Ha több ilyen üzlet van, ahol ugyanannyiba kerül az adott termék, akkor ezek közül bármelyiket kiírhatja, de csak egyet írjon ki.)
Például a fenti bemenet esetén a kimenet a következő lesz (letöltés: hfaki0).
liszt tesco kenyér piac parizer piac margarin spar
Tehát a lisztet a Tesco áruházban érdemes megvenni, mert ott 120 forintba kerül egy kiló, de a kenyeret a piacon.
A programot ruby nyelven írja meg.
A bemenetet a standard bemenetről olvassa be, vagyis például ha
a forráskódot a hfa.rb
nevű fájlba mentette el,
és letöltötte a fenti bemenetet, akkor a ruby -w hfa.rb < hfabe0
parancs a fenti kimenetet írja ki.
Segítségként azt javaslom, hogy a bemenet sorait a gets
függvénnyel olvassa be, majd a .split
metódussal szedje
szét az egyes szavakat tartalmazó tömbbé.
Egy számot leíró sztringből, mint például "42"
az Integer
függvénnyel olvassa ki a számot,
pl. Integer("42")
eredménye a 42
szám.
Ha elakad a programmal, akkor a p
függvénnyel írassa ki
a változók tartalmát.
A megoldást e-mailben küldje el az címre. Az emailben csatolmányként küldje el a megoldáshoz használt forráskódot, és írhat bármilyen megjegyzéseket, amit a megoldással kapcsolatban lényegesnek talál. Az emailben feltétlenül adja meg a nevét, nem szeretnék névtelen házi feladatokat azonosítani. Írja továbbá az emailbe az "info2" szöveget, valamint a feladat rövid nevét, jelen esetben azt, hogy "minimum", hogy könnyebben szét tudjam válogatni a feladatokat.
Ha a feladathoz bármilyen kérdése van, vagy elakad a megoldással, akkor keressen meg emailben vagy személyesen, akár a gyakorlaton, akár azon kívül.
A feladatot 2009. április 16-án illetve 17-én tűzom ki. A megoldás határideje ehhez képest két hét, május 4., hétfő (aznap még be lehet küldeni; a két hét május 1-én járna le, de az munkaszüneti nap).