p°edchozφ lekce (1.08) | obsah kurzu | nßsledujφcφ lekce (1.10) |
VÜechny vytvß°enΘ (i jednoduchΘ) programy musφ b²t souΦßstφ projektu. Projekt p°itom popisuje vÜechny souΦßsti vytvß°enΘ aplikace. ZpoΦßtku budeme sice vytvß°et jednoduchΘ aplikace sklßdajφcφ se pouze z jednoho programu, v budoucnu vÜak budou slo₧it∞jÜφ aplikace tvo°eny n∞kolika programy. Projekt proto shroma₧∩uje informace o vÜech Φßstech aplikace. Ka₧dß vytvß°enß aplikace se sklßdß minimßln∞ ze dvou a₧ t°φ soubor∙ ulo₧en²ch na disku. V jednom je ulo₧en projekt vytvß°enΘ aplikace, ve druhΘm souboru je vlastnφ program. V budoucnu se seznßmφme s tφm, ₧e ve t°etφm souboru m∙₧e b²t ulo₧ena definice formulß°e.
P°i vytvß°enφ novΘho programu musφme proto vytvo°it nejprve projekt, do kterΘho doplnφme vytvß°en² program. Nejprve si zkontrolujte, zda mßte uzav°en p°edchozφ projekt. To lze provΘst nap°φklad volbou z menu Soubor/Uzav°φt vÜe. Nßsledn∞ vyberte z menu volbu Soubor/Nov². Zobrazφ se dialogovΘ okno pro zadßnφ po₧adovanΘ Φßsti novΘ aplikace. Zde je mo₧nΘ zadat, jakou Φßst aplikace po₧adujete vytvo°it. V budoucnu se s jednotliv²mi Φßstmi seznßmφme podrobn∞ji, nynφ vÜak klikn∞te na ikonu s popisem æPrßzdn² projektÆ. Vytvo°φ se tφm prßzdn² projekt, kter² neobsahuje ₧ßdn² program.
Projekt musφ b²t v₧dy pojmenovßn. JmΘno projektu zvolte podle provßd∞nΘ Φinnosti budoucφ aplikace. JmΘno novΘho projektu se zadßvß p°i prvnφm uklßdßnφ projektu bez ohledu na to, zda obsahuje n∞jak² program. To se provede volbou z menu Soubor/Ulo₧it vÜe. SystΘm se p°itom zeptß na jmΘno souboru, do kterΘho mß projekt ulo₧it. Projekt se uklßdß do souboru s p°φponou *.KPR.
Obsah projektu zobrazuje tzv. Mana₧er projekt∙, kter² se zobrazφ po stisku klßves Ctrl+Alt+F11, p°φpadn∞ volbou z menu Nßstroje/Mana₧er projektu. Nynφ by m∞l b²t projekt prßzdn², neobsahuje zatφm ₧ßdn² program. Nov² program doplnφme do projektu volbou z menu Soubor/Nov². Zobrazφ se op∞t dialog pro zadßnφ novΘ Φßsti aplikace. Dialog je spoleΦn² pro vÜechny jazyky systΘmu. Musφte proto vybφrat pouze Φßsti aplikace, kterΘ v₧dy odpovφdajφ pou₧φvanΘmu jazyku. Proto takΘ nenφ mo₧nΘ zm∞nit druh pou₧φvanΘho jazyka, pokud je otev°en projekt. Klikn∞te na zßlo₧ku æProgramÆ a zadejte æProgram KLONDAIKÆ. Tφm se vygeneruje automaticky kostra novΘho programu. VÜimn∞te si, ₧e se informace o vytvo°enΘm programu zobrazφ v mana₧eru projektu.
Programy se zadßvajφ (zapisujφ) do samostatnΘho okna, kterΘ slou₧φ jako textov²
editor programu. Pokud je okno na obrazovce viditelnΘ, m∙₧ete jej aktivovat kliknutφm
myÜi na jeho plochu. Okno s programem je mo₧nΘ zobrazit volbou z menu Okna/Program.
M∞lo by obsahovat nßsledujφcφ kostru prßzdnΘho programu:
Unit program1;
interface
implementation
begin
{zde napiÜte program}
end;
end.
Program s uvedenou strukturou by bylo mo₧nΘ ihned spustit stiskem klßvesy F9.
Nevykonßval by ale ₧ßdnou Φinnost, proto₧e neobsahuje ₧ßdnΘ p°φkazy, ale pouze
prßzdnou deklaraci jednotliv²ch Φßstφ programu. Seznßmφme se proto nejprve s tφm, co
musφ ka₧d² program obsahovat a popφÜeme si strukturu programu.
Ka₧d² program obsahuje na svΘm poΦßtku za klφΦov²m slovem 'Unit' nßzev programu, za kter²m musφ b²t uveden odd∞lovacφ st°ednφk (';'). Program musφ b²t ukonΦen klφΦov²m slovem 'end', za kter²m musφ b²t uvedena teΦka. Jako na konci v∞ty. Takto je definovßn zaΦßtek a konec programu.
Mezi zaΦßtkem a koncem programu je uvedena deklaraΦnφ Φßst programu a vlastnφ t∞lo programu. DeklaraΦnφ Φßst programu bude v budoucnu obsahovat definici formulß°e. Zatφm vÜak bude obsahovat pouze prßzdnΘ definice æInterfaceæ a æimplementationæ.
T∞lo programu mß definovan² zaΦßtek slovem 'begin' a konec 'end'. Anglicky zaΦßtek a konec. Z toho je patrnΘ, ₧e se ka₧d² program sklßdß ze segment∙ s pevn∞ stanoven²m poΦßtkem a koncem. Uvnit° segment∙ jsou potom uvedeny vlastnφ v²konnΘ Φßsti programu.
Vygenerovan² prßzdn² program obsahuje ve svΘm t∞le °ßdku:
{zde zapiÜte program};
Proto₧e je text °ßdky uveden mezi slo₧en²mi zßvorkami, bude jej kompilßtor ignorovat.
VÜe, co uvedete mezi slo₧enΘ °ßdky bude proto pova₧ovßno za komentß° bez vlivu na
Φinnost programu. DalÜφ mo₧nostφ oznaΦenφ Φßsti programu za komentß° je uvedenφ dvou
lomφtek za sebou. DalÜφ text programu a₧ do konce °ßdku bude takΘ pova₧ovßn za
komentß°. VÜimn∞te si p°itom, ₧e je text komentß°e v programu uveden Üedou barvou.
Takto jsou v textu programu zv²razn∞ny r∙znΘ Φßsti programu.
╚ßst programu uvedenß mezi klφΦov²mi slovy begin a end se naz²vß tzv. blok programu. Blok programu m∙₧e mφt libovolnou dΘlku a m∙₧e obsahovat libovolnΘ mno₧stvφ p°φkaz∙, p°φpadn∞ vlo₧enΘ dalÜφ bloky programu. V²znam Φlen∞nφ programu na bloky, kterΘ jsou ohraniΦeny sv²m poΦßtkem (begin) a koncem (end) si ukß₧eme v dalÜφch lekcφch v∞novan²ch podmφnkßm a cykl∙m v programu.
V²Üe uveden² prßzdn² program obsahuje pouze zßkladnφ kostru bez ₧ßdnΘho povelu,
kter² by vykonßval viditelnou Φinnost a proto by spuÜt∞n² program skonΦil, ani₧ by cokoliv
vykonal. Vyu₧ijeme proto zφskan²ch zkuÜenostφ a doplnφme text programu o nßm ji₧
znßmΘ povely a p°φkazy. Dßvejte si pozor na to, aby jste ponechali beze zm∞ny zaΦßtek a
konec programu. Pokud by se tak nestalo, program by se nemusel v∙bec spustit.
Prove∩te proto pouze dopln∞nφ programu o p°φkaz Writeln dle nßsledujφcφ ukßzky:
Unit program1;
interface
implementation
begin
{zde napiÜte program}
Writeln('Ahoj, zdravφ Vßs systΘm KLONDAIK');
end;
end.
Nov², prßzdn² vygenerovan² program je mo₧nΘ spustit volbou z menu Program/Spustit,
p°φpadn∞ stiskem funkΦnφ klßvesy F9 nebo kliknutφm myÜi na ikon∞ s obrßzkem b∞₧φcφho
panßΦka. P°i ka₧dΘm spuÜt∞nφ programu je tento v₧dy nejprve ulo₧en na disk,
zkompilovßn a vykonßn. Pokud jste dosud neulo₧ili na disk do souboru projekt, jste
dotßzßni na jeho jmΘno. Stejn∞ tak jste dotßzßni systΘmem na jmΘno nov∞ uklßdanΘho
programu. Program je uklßdßn na disk s p°φponou *.KLN. U jednoduch²ch program∙ se
doporuΦuje zadat jmΘno programu toto₧nΘ se jmΘnem projektu. Pouze v budoucnu, a₧
budete vytvß°et rozsßhlejÜφ aplikace bude vhodnΘ pojmenovßvat jednotlivΘ programy podle
provßd∞nΘ Φinnosti.
SystΘm provede po spuÜt∞nφ programu nejprve kontrolu, zda neobsahuje chyby. V p°φpad∞ jejφho nalezenφ je systΘmem nahlßÜen popis chyby s uvedenφm mφsta v²skytu. Dokud nenφ program zadßn sprßvn∞, nebude spuÜt∞n. P°i peΦlivΘm zßpisu by vÜak nem∞ly nastat ₧ßdnΘ problΘmy. Pokud budete postupn∞ prochßzet jednotliv²mi lekcemi kurzu a zkouÜet vÜe v praxi, nauΦφte se jist∞ psßt bezchybnΘ programy.
Pokud mßte viditeln² obsah textovΘho v²stupnφho okna, zobrazφ se v n∞m po spuÜt∞nφ
v²Üe uvedenΘho programu pozdrav od systΘmu. VyzkouÜejte si dalÜφ, d°φve probranΘ
povely, kterΘ zapisujte pouze do Φßsti programu mezi slovy begin a end. Takto by
nap°φklad mohl b²t upraven program vΦetn∞ zobrazenφ textovΘho v²stupnφho okna a
v²mazu p°edchozφho obsahu:
Unit program1;
interface
implementation
begin
ConsoleShow; {zobrazφ a aktivuje textov² v²stup}
ConsoleClear; {vyma₧e plochu textovΘho v²stupu}
Writeln('Ahoj, zdravφ Vßs systΘm KLONDAIK');
end;
end.
Obdobn²m zp∙sobem m∙₧ete zadat i povely pro pou₧itφ grafickΘho v²stupnφho okna.
Op∞t pou₧ijeme pouze d°φve probranΘ povely, kterΘ zapφÜete do Φßsti programu mezi
slovy begin a end. Jak ji₧ jist∞ vφte, text ve slo₧en²ch zßvorkßch nemusφte zapisovat, jsou
to poznßmky, kterΘ nemajφ na Φinnost programu vliv.
Unit program1;
interface
implementation
begin
ImageShow; {aktivuje textov² v²stup}
ImageInit(150, 200); {inicializuje plochu}
ImageRectangle(10,10,140,190); {nakreslφ obdΘlnφk }
ImageFontColor(clBlue); {nastavφ modrou barvu fontu}
ImageFontSize(16); {nastavφ velikost fontu}
ImageTextOut(50,30,'KLONDAIK');{vypφÜe text }
end;
end.
Jak jsme ji₧ hned v ·vodu probφran²ch lekcφ uvedli, je zßkladem programovßnφ zadßnφ
posloupnostφ akcφ. To si m∙₧ete nynφ vyzkouÜet. Projd∞te si p°edchozφ lekce a
pokuste se z ji₧ zφskan²ch znalostφ sestavit program, kter² nap°φklad nakreslφ d∙m a vedle
n∞j zelen² strom. Navφc si zkuste zalo₧it nov² projekt, do kterΘho program ulo₧φte. Abyste
to nem∞li tak slo₧itΘ, uvßdφme zde Φßst programu pro nakreslenφ domu. Povely pro
nakreslenφ stromu ji₧ dopl≥te sami. Samoz°ejm∞ m∙₧ete v programu provΘst i dalÜφ
·pravy dle vlastnφho uvß₧enφ.
Unit domek;
interface
implementation
begin
ImageShow; {aktivace grafickΘ plochy}
ImageInit(200, 150); {inicializace graf.plochy}
ImageBrushColor(clLime); {nastavenφ zelenΘ barvy}
ImageRectangle(0, 130, 200, 150); {nakreslenφ zahrßdky}
ImageBrushColor(clOlive); {nastavenφ tmav∞ zelenΘ}
ImageRectangle(20,60, 105, 130); {nakreslenφ st∞ny domu}
ImageBrushColor(clYelow); {nastavenφ ₧lutΘ barvy}
ImageRectangle(28, 70, 48, 90); {hornφ levΘ okno}
ImageRectangle(72, 70, 52, 90); {hornφ st°ednφ okno}
ImageRectangle(96, 70, 76, 90); {hornφ pravΘ okno}
ImageRectangle(28, 100, 48, 120); {levΘ dolnφ okno}
ImageRectangle(72, 100, 52, 130); {dve°e}
ImageRectangle(96, 100, 76, 120); {pravΘ dolnφ okno}
ImageEllipse(140,20,170,50); {slunφΦko}
ImageBrushColor(clRed); {nastavenφ ΦervenΘ barvy}
ImageTriangle(20,60,60,25,105,60);{st°echa}
end;
end.
Tak₧e jak vypadß program ji₧ vφte. M∞li byste b²t ji₧ takΘ schopni sestavit
jednoduch² program z posloupnosti vykonßvan²ch povel∙. Ka₧d² program m∙₧ete p°itom
samoz°ejm∞ ulo₧it pod jin²m nßzvem. V nßsledujφcφ lekci se seznßmφte podrobn∞ji
s mo₧nostφ editace programu.