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. A szöveg formázásának hatékony módja a stílusok alkalmazása. Használatuk esetén az egyes szövegegységek jellemzőit nem egyenként, hanem a hozzájuk rendelt stílusok segítségével állítjuk be. A legtöbb programban a stílusok nem önállóan létező elemek, hanem fastruktúrába rendezhetők. Egy szövegegység adott tulajdonságát a helyben, egyedileg megadott érték határozza meg. Ha az hiányzik, akkor a hozzárendelt stílusban vagy a struktúrában a felette levő stílusok közül a hozzá legközelebbiben szereplő beállítás a meghatározó. A feladatban a fentiek leegyszerűsített modelljével dolgozunk: a szövegegységek bekezdések, a tulajdonságaik pozitív egészek. Készítsünk programot i373 néven, amely a stílusok leírását a lehető legtömörebbé alakítja, az egyes szövegrészek tényleges jellemzőit pedig meghatározza. A bemeneti fájl két részből áll. Az első rész első sora a tárolt stílusok száma. A következő sor egy-egy stílus leírását tartalmazza. Az első karakter a stílus neve (az angol ábécé nagybetűje), a következő a struktúrában felette lévő stílus neve (a fa csúcsa esetén önmaga), majd a tulajdonság‐érték párosok (az angol ábécé kisbetűje‐pozitív szám). Az értékeket pontosan egy szóköz választja el. A következő sorban a szöveg bekezdéseinek száma található, amely legfeljebb 500 lehet. A következő sorban egy-egy bekezdés leírása található. Az első karakter az alkalmazott stílus neve, majd a bekezdésben egyedileg érvényes tulajdonság‐érték párosok olvashatók az előző részhez hasonló formában. A kimeneti fájl szerkezete pontosan egyezik a bemeneti fájl szerkezetével. Az első rész tartalmazza az egyszerűsített stílusokat, ahol azok a tulajdonságok nem jelennek meg, amelyek nem módosítják a struktúrában felettük lévő stílusokban beállított értékeket. A második részben az egyes bekezdésekben ténylegesen érvényre jutó tulajdonságok jelenjenek meg.
A program első parancssori argumentuma a bemeneti fájl neve, a második pedig a kimeneti fájl neve legyen. Beküldendő egy tömörített i373.zip állományban a program forráskódja (i373.pas, i373.cpp, ), valamint a program rövid dokumentációja (i373.txt, i373.pdf, ), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható. |