logo

.
Thursday 09th of September 2010    

Ankety

Co tu není dobré ?
 

Přihlášení



Provoz stránek

návštěv dnes: 27
návštěv včera: 59
návštěv za měsíc: 513
návštěv celkem: 17817

Home Škola PASCAL 11 Struktura programu
11 Struktura programu Tisk Email
Hodnocení uživatelů: / 0
NejhoršíNejlepší 
Napsal uživatel Administrator   
Úterý, 27 Říjen 2009 12:33

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é:

- Obsahující pouze písmena a číslice a podtržítko
- Neobsahující diakritiku
- Začínají na písmeno
- Jsou jedinečné (=nic se nejmenuje stejně)
- Jsou co nejvýstižnější (ZadejKonecnyCas je lepší než ZKC);
- Jsou co nejkratší (ZadejUdaje je lepší než ZadejJmenoADatumNarozeniAPohlaviARodneCisloAStartovniCislo)

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}

  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;
            ...
  Begin
    Příkaz1;
    Příkaz2;
       ...
    PříkazN;
  End.

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íste 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;
    Prí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á.

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.

Zdroj: http://programar.webpark.cz

Aktualizováno Úterý, 27 Říjen 2009 12:39
 
bottom

top

kolik vás je ?

Právě připojeni - host: 1 

bottom

Založeno na Joomla!. Designed by: Free Joomla 1.5 Template, dns. Valid XHTML and CSS.