2.) Írjunk programot, mely
a fekete képernyőn megjelenít egy kis piros téglalapot.
Ennek a programnak a megírásához egy új eljárást kell
megismernünk: a Window-t, mely a ClrScr-hez
hasonlóan a Crt Unit része. A Window
ablakot jelent. A teljes képernyő is egy ablak, melyet ezzel az eljárással
kisebbíthetünk, vagy újra maximálissá tehetünk. A Window
eljárásnak négy paramétere van. Egy téglalapot a képernyőn azonosíthatja pl.: a
bal felső illetve jobb alsó csúcsának két-két koordinátája. Lássuk a listát.
Program
Teglalap;
Uses
NewDelay, Crt;
TextMode(CO80);
TextBackGround(0);
ClrScr;
TextBackGround(Red);
Window(10,5,20,8);
ClrScr;
ReadLn;
End.
A képernyő fekete színéért a TextBackGround(0); és ClrScr; sorok a felelősek. A háttérszín beállítását
célszerű annak ellenére külön is beírni a listába, hogy a fekete az
alapértelmezett, mert ha nem lépünk ki az IDE-ből két
program futtatása közben, akkor az először futtatott program által beállított
háttérszín lesz az első érvényes háttérszín az újabb programban. A vörös
téglalapot, az ezeket követő három sor hozza létre. A ReadLn;
megállítja a program futását. A Window eljárás négy
paraméterének megállapításánál a következőkre kell figyelni: 1. paraméter: a
bal felső X, 2. paraméter: a bal felső Y, 3. paraméter: a jobb alsó X és a 4. paraméter:
a jobb alsó Y koordináta. A méretkorlátok a GoToXY-nál
említettekkel megegyező. Azaz az X-ek 1-80, az Y-ok 1-25 között lehetnek. A
másik talán még fontosabb dolog, hogy külön az X-eknek és az Y-oknak nagyság
szerint növekedően kell szerepelnie. Az eljárás ugyanis csak akkor definiál új
ablakot, ha a korlátozások mellett, a nagyságrend szerinti megállapítás is
teljesül. Nem véletlen tehát, hogy a programunkban a paramétereknél 10 <
20 és 5 < 8. A Window hibás
paramétereknél nem jelez hibát (és a fordító sem), hanem egyszerűen nem hajtja
végre az eljárást, azaz nem jön létre az ablak. Ha a futás ideje alatt, Enter megnyomása előtt írunk a képernyőre, akkor
megláthatjuk, hogy a szöveg nem kerül ki a vörös területről, ha pedig a sorok
elfogynak, a soremelés is csak a definiált ablakra vonatkozik.
3.)
Írjunk programot, amely egy magyar zászlót jelenít meg kék színű képernyőn, a
zászlónak barna rúdja legyen, a fehér területre írjuk ki feketével:
MAGYARORSZÁG.
A listánkat a szokásos sorokkal kezdjük, majd a megfelelő
színeket TextBackGround és ClrScr
alkalmazásával hozzuk létre. A színezendő területek a Window
eljárással állítjuk be.
Program Zaszlo;
Uses NewDelay, Crt;
Begin
TextMode(CO80);
TextBackGround(Blue);
ClrScr;
TextBackGround(Red);
Window(18,3,62,5);
ClrScr;
TextBackGround(White);
Window(18,6,62,8);
ClrScr;
TextBackGround(Green);
Window(18,9,62,11);
ClrScr;
TextBackGround(Brown);
Window(17,3,17,24);
ClrScr;
TextBackGround(White);
TextColor(Black);
Window(1,1,80,25);
GoToXY(35,7);
Write('MAGYARORSZÁG');
GoToXY(1,25);
ReadLn;
End.
Az első két sor a háttér kék szint állítja, aztán 3
soronként egy-egy szín kerül a képernyőre, majd a barna színű, egy karakter széles
rúd. A Window(1,1,80,25); eljárás visszaállítja a képernyő alaphelyzetét,
vagyis beállítódik a legnagyobb ablak. A zászló színeit adó téglalapok
magassága 3 (3,4,5 – 6,7,8 – 9,10,11), így lehet a MAGYARORSZÁG-ot a fehér színű téglalap középre írni (5 magasságú
már aránytalan lenne). Írás előtt be kell állítani a háttér és karakterszíneket
is, valamint a kurzort a (35,7)-re állítani, ami a
fehér szín közepét jelenti.
4.)
Írjunk programot, amely egy vöröskeresztes zászlót jelenít meg. Fehér alapon,
vastag szárú vörös + jel. Törekedjünk az eljárások számának minimalizálására.
A szokásos sorok után csak két terület kijelölésével a
feladat megoldható, mintha egy széles ecsettel egy függőleges és egy vízszintes
csíkot festettünk volna.
Program VorosX;
Uses NewDelay, Crt;
Begin
TextMode(CO80);
TextBackGround(White);
ClrScr;
TextBackGround(Red);
Window(35,5,45,21);
ClrScr;
Window(22,11,58,15);
ClrScr;
Window(1,1,80,25);
GoToXY(1,25);
ReadLn;
End.
A VorosX program
könnyedén és egyértelműen értelmezhető a Zaszlo program alapján, ezért nem
elemezzük.
Gyakorló programozási feladatok:
F.1.: Írjunk programot, amely egy úttesten elhelyezkedő
gyalogos átkelőhelyet rajzol a képernyőre. A kép alsó részén az út egyik
oldala, tetején a másik oldala létható, a kettő között pedig a zebra.
F2.: Írjunk programot, amely egy lépcsőt rajzol a képernyőre
oldalnézetből, azaz csak a keresztmetszetét ábrázolva.
F3.:
Írj programot, amely a képernyőn egy házat jelenít meg, sematikusan - a
karakteres képernyő lehetőségei szerinti részletekkel.
F4: Írj programot, amely képeslapot jelenít meg a képernyőn. A felirata: Kellemes Karácsonyi Ünnepeket. A képeslapon egy asztal és két oldalán egy-egy szék helyezkedik el. Az asztalon egy monitor és egy karácsonyfa látható, a karácsonyfán néhány csillagszóró villog.