Az I. 472. feladat (2019. január) |
I. 472. Ma már számtalan eszköz és azt vezérlő program áll rendelkezésre, hogy az igényelt méretben és formában állítsunk elő feliratokat. 40-50 évvel ezelőtt még mechanikus céleszköz volt szükséges, hogy az írógéppel írhatóhoz hasonló karaktereket nyomjunk egy vékony műanyag szalagra. A megfelelő karaktert egy tárcsa elfordításával lehetett kiválasztani, majd egy kar meghúzásával egy műanyag szalagra rögzíteni. A benyomás eredményeként a betű alakjának megfelelő kiemelkedés jött létre, egyúttal a szalag el is fehéredett. (Az eszköz ma is szerepel a boltok kínálatában.)
Az eszköz forgatható tárcsáján az ABC betűi szerepeltek. Az egyszerűbb szerkezeteknél a tárcsát csak az egyik irányban lehetett forgatni, ezért a BABA szó leírásához kétszer is körbe kell forgatni a tárcsát. Jól látható, hogy ha a tárcsa mindkét irányban szabadon forgatható lenne, sokkal gyorsabban előállna a felirat.
Készítsünk vezérlő programot egy feliratozó gép tárcsájának kezeléséhez, amely biztosítja a feliratok legrövidebb idő alatti elkészültét. A tárcsa egy karakterrel való elfordítása egy időegységet igényel. A forgásirány megváltoztatásához V időegység kell. A folyamatosan előre haladó szalag egy karakterhellyel való elmozdítása szintén egy időegység, mozgatása a tárcsa mozgatásával párhuzamosan is történhet. Az aktuális karakter benyomása is egy időegység.
A program standard bemenetének első sorában az irányváltáshoz szükséges V érték található. A második sorban pedig a felirat olvasható, amely csak az angol ábécé nagybetűit és a szóközt tartalmazhatja, legfeljebb 200 karakter hosszban. A kimenet első sorában az elkészítéshez szükséges idő, a következőben pedig a szükséges fordítások száma és az irányváltások (jele #) szerepelnek egymástól egy-egy szóközzel elválasztva.
A tárcsa az angol ábécé nagybetűit tartalmazza ábécé sorrendben. Induláskor az A karakteren áll, ha egyet fordítunk, akkor a B karakter következik.
A kimenet magyarázata: A tárcsa forgatásához összesen 56 időegység kell. A forgásirány háromszori megváltoztatása 15 időegység. A 10 karakter előállítása 10 időegység. Az első szó utolsó karaktere egyezik a következő szó első karakterével, így a tárcsát nem kell forgatni, de a szalagot továbbítani kell, először a szóköz helyére, majd a második I karakter pozíciójára.
Beküldendő egy i472.zip tömörített állományban a program forráskódja és a működéséhez szükséges egyéb fájlok, továbbá a hozzá kapcsolódó dokumentáció. Utóbbi a problémamegoldás lényeges elemeire világít rá, valamint tartalmazza, hogy a forrásállomány melyik fejlesztő környezetben fordítható.
(10 pont)
A beküldési határidő 2019. február 11-én LEJÁRT.
A megoldások között 3 C#-ban, egy-egy pedig Javaban és Visual Basicban készült. A feladat nehézségét a szóközök kezelése jelentette - különösen akkor ha közeli karakterek voltak a két oldalon. A tesztesetek egy része erre és az egymást követő egyforma betűkre koncentrált. i472teszt.zip A betűvel ellátott tesztesetek fél pontot értek, a többi 1-1 pontot.
A megoldások közül Nagy Márton munkáját jelenítjük meg: i472Nagy.cs i472Nagy.pdf
Statisztika:
5 dolgozat érkezett. 10 pontot kapott: Nagy 793 Márton, Ürmössy Dorottya. 7 pontot kapott: 1 versenyző. 3 pontot kapott: 2 versenyző.
A KöMaL 2019. januári informatika feladatai