Základní struktura programu

Program se v Pascalu člení na tři části: hlavičku, definice s deklaracemi a tělo.

Hlavička nám určuje o jaký typ programu jde. V komentáři pak obsahuje informace o tom, co program dělá. Můžeme si sem napsat, co chceme dodělat a jak měnit chování programu změnou konstant.

Definice a deklarace slouží k nadefinování všeho, co náš program bude potřebovat. Volíme výstižné názvy.

Tělo obsahuje příkazy, které se vykonají. Lze se setkat i s přístupem, že někdo nadefinuje celý program v proceduře SpustVse a tělo pak vypadá takto:
Begin
SpustVse;
End.
Ale to už záleží jen na vás.

Nyní krátce k obecným zásadám programování. Existují dva typy návrhu programu - shora dolů a zezdola nahoru.

Metoda zezdola nahoru - dostaneme pocit, že v našem programu se tahle procedura prostě musí vyskytovat, a tak ji napíšeme. Použijeme přitom pouze funkce a procedury, které již máme definované. Tento metoda není příliš přehledná a vhodná, ale občas se může hodit.

Metoda shora dolů - problém si rozdělíme na menší problémy (každý z nich pak představuje například proceduru) a ty zase rozdělíme, až se dostaneme na takovou úroveň, že si vystačíme s jednoduchými příkazy. Máme-li například napsat program, který vyhodnotí cyklistické závody. Problém rozdělíme na tři části a napíšeme:

Program Cyklistika;
procedure ZadejData;
begin
end;

procedure ZadejKonecnyCas;
begin
end;

procedure VypisVysledky;
begin
end;

Begin
 ZadejData;
 ZadejKonecnyCas;
 VypisVysledky;
End.

Nejdříve se podíváme na proceduru ZadejData a tu rozdělíme stejným způsobem.

procedure ZadejUdaje;
begin
end;
procedure LosujStartovniCas;
begin
end;
procedure Konec;
begin
end;

procedure ZadejData;
var Koncime : char;
begin
 repeat
   ZadejUdaje;
   LosujStartovniCas;
   Konec; {zeptá se uživatele, zda chce zadat dalšího závodníka a podle toho
           nastaví proměnnou končíme}
 until Koncime = 'a';
end;

A tak dále. Když už jde celá procedura ZadejData spustit, přejdeme na ZadejKonecnyCas a nakonec VypisVysledky. Tím je celý program hotový, stačí ho otestovat. Sice jste testovali každou proceduru, ale jistota je jistota, že. Správný programátor nepovažuje program za hotový, dokud ho celý neotestoval ve všech možných situacích (u nejjednodušších programů stačí dvakrát třikrát spustit, složitější se někdy testují i celé týdny).

Nyní krátce k volbě názvů (v programovacích jazycích se říká identifikátorů)- vždy volte názvy, které:

Ale nyní již k tomu, jak vypadá takový program v Pascalu (hlavička, definice s deklaracemi, tělo):

{$X+}
Program NázevProgramu;
{Tohle je jenom vzorový program}

{V tomto místě končí hlavička a začínají definice s deklaracemi}
uses NázevJednotek;
label NázvyNávěští;
const Konstanta1 = Výraz1;
      Konstanta2 = Výraz2;
            ...
type NázevTypu1 = Definice1;
     NázevTypu2 = Definice2;
            ...
var NázevProměnné1 : TypProměnné1;
    NázevProměnné2 : TypProměnné2;
            ...
procedure NázevProcedury1(parametry1);
DefiniceProcedury1;

procedure NázevProcedury2(parametry2);
DefiniceProcedury2;
            ...

function NázevFunkce1(parametry):VýslednýTypFunkce1;
DefiniceFunkce1;

function NázevFunkce2(parametry):VýslednýTypFunkce2;
DefiniceFunkce2;
            ...
{Zde končí definice s definice s deklaracemi a začíná vlastní tělo programu}
Begin
  Příkaz1;
  Příkaz2;
     ...
  PříkazN;
End.

{Zde končí tělo programu}
Za end. se sice psát může, ovšem je to zcela ignorováno (asi tak jako komentář)

Nyní se blíže podívejme na hlavičku. Úplně na začátku jsou tzv. direktivy překladače (ty slouží k nastavení některých vlastností, které jsou nutné pro správný běh programu. Tyto vlastnosti jdou též nastavit v Options/Compiler. (např. {$X+} zapne Extended syntax. {$P+} povolí Open parametrs). Více se jimi budeme zabývat až časem. Pochopitelně je můžete vynechat.

Na druhém místě je pak slovo program následováno názvem programu. Vyhrazené slovo program nás informuje o tom, že půjde o spustitelnou aplikaci (a ne např. o DLL knihovnu).

Následuje komentář, kde bychom měli najít všechny potřebné informace (o tom, k čemu program je a jak se používá). Třeba takto:
{Hraje piškvorky.Ovládání intuitivní. Zatím NEDODĚLÁN - zbývá dokončit funkci PocitacNaTahu}

Komentáře se uzavírají do složených závorek. V samotném komentáři nemůže být konec složené závorky. Vyhněte se i kombinaci znaků (* a *). O nich si něco povíme později. Za { nikdy nepište znak $. (Význam kombinace {$ probereme později)

Celé definice a deklarace pak můžete vynechat. Pokud je uvedete, musíte pamatovat na to, že na prvním místě je uses a pak label. (Pokud používáte pouze nejběžnější příkazy, můžete uses vynechat. Label pak vynechejte, nepoužíváte-li nikde návěští. Návěští lze vynechat téměř vždy). Ostatní části pak můžete uvádět zcela v libovolném pořadí a kolikrát chcete. Jenom vždy dodržujte zásadu, že v definicích používáte jen věci, které jste již dříve definovali (o výjimkách později).

Tělo je pak tvořeno jediným složeným příkazem. Ten je ukončen tečkou.

Do těla se píší samotné příkazy. Podívejme se na dva nejjednodušší.

Prázdný příkaz -; značí se středníkem a nic nedělá. Je zaveden proto, aby někteří tupci mohli psát středník i za begin. (Ale i jinam)

Složený příkaz -
begin
Příkaz1;
Příkaz2;
...
PříkazN

end;

Tento příkaz se vyhodnotí jako jediný příkaz. Požaduje-li se tedy někde jeden jediný příkaz a my jich tam potřebujeme vpašovat více, použijeme právě příkaz složený. (například u for I:=1 to 10 do...). Za posledním příkazem před endem nemusí být středník, my ho tam však psát budeme. Usnadňuje to dopisování dalších příkazů. Za endem ukončující tělo programu se pak píše vždy tečka.

To by bylo pro dnešek vše.

Příklady k procvičování : Napište program, který nic nedělá. Řešení

DCV: Zkuste napsat metodou shora dolů program na hraní piškvorek (stačí tak jedna, dvě úrovně). Do helpu se podívejte na direktivy překladače a hlavičku programu (na program). Zopakujte si všechna vyhrazená slova, která znáte.