Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

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