A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre. Különböző élhosszúságú kockákból tornyokat építünk, és azokat kívülről lefestjük egy automatával. A tornyoknak stabil felépítésűeknek kell lenniük, majd festésükkor az automata mind a négy oldalról és felülről lefesti azokat. Rendelkezésre áll darab kocka véletlenszerű sorrendben. A kockák élhosszai egész számok. Az automata programja szerint igyekszik minél magasabb tornyot építeni, majd befesteni a következő szabályok szerint:
‐ | A kockákat sorrendben egymás után használja föl. |
‐ | Kockát olyan torony tetejére tehet, ahol az eddigi legfelső kocka nem kisebb az elhelyezendőnél. |
‐ | A soron következő kockát arra a toronyra teszi, ahol a legfelső a lehető legkisebb olyan, amire még rátehető. Ha több ilyen torony van, akkor a kisebb sorszámút (amelyiket előbb kezdte el építeni) választja. Amennyiben a kocka egyikre sem tehető, akkor új tornyot kezd. |
‐ | Miután a kockák elfogytak, a kész tornyokat festékszóró festi be minden oldalról és felülről, de alulról és a kockák között nem. |
Rendelkezésünkre áll és a honlapunkról letölthető egy minta az automata bemenetére a kockak.txt állományban. Az állomány első sorában () a kockák száma olvasható, az ezt követő sor mindegyike az egyes kockák élhosszát () tartalmazza. Készítsünk programot i406 néven, amely megoldja az alábbi feladatokat. A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írjuk a képernyőre a feladat sorszámát (például 4. feladat:). A beolvasás előtt a várt tartalomra vonatkozó üzenetet jelenítsünk meg. Az ékezet nélküli kiírás is megengedett.
1. | Olvassuk be a kockak.txt állomány adatait és a következő feladatokat ezek alapján oldjuk meg. |
2. | Írjuk ki a képernyőre az automata által felépített tornyok számát. |
3. | Írjuk a képernyőre egy sorba, szóközzel elválasztva a legmagasabb tornyot alkotó kockák élhosszúságát és ezek összegét, vagyis a torony magasságát. Ha több ilyen van, akkor a legkisebb sorszámú toronyét jelenítsük meg. |
4. | Írjuk a képernyőre annak a toronynak a sorszámát, amelyben a legtöbb azonos élhosszúságú kocka van (több ilyen torony esetén a legkisebb sorszámút). |
5. | Szabályosnak nevezünk egy legalább 3 kockából álló tornyot akkor, ha a kockák oldalélei alulról felfelé haladva számtani sorozatot alkotnak. Írjuk a képernyőre a szabályos tornyok számát. |
6. | Kérjük be a felhasználótól egy torony sorszámát, majd írjuk ki szóközzel elválasztva egy sorba, hogy |
| mekkora területet festett be az automata a tornyon; |
| a tornyot szétszedve a kockákon összesen hány területegységet nem festett be az alsó oldalakat is figyelembe véve. |
7. | Írjuk a képernyőre, hogy az első torony felső szintjeiből hány kockát lehetne a legutolsó toronyra átrakni egyben, a méretre vonatkozó szabályok betartásával. |
Beküldendő egy tömörített i406.zip állományban a program forráskódja és rövid dokumentációja, amely megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható. Letölthető fájl: kockak.txt. |