<< home >>
Didaktické využitie mini-jazyka Robot Karel na ZŠ
<<- ->>


  • Pascal

PASCAL

Vyhradené slovo
 
and, array, begin, case, const, div, downto, do, else, end, file, for, function, goto, if, in, label, mod, nil, not, of, or, packed, procedure, record, repeat, set, then, to, type, until, var, while, with

... a mnoho iných (v dokumentácii príslušného kompilátora)

Organizácia programu
 
program meno programu; hlavička programu

deklarácia návestí; {label} časť deklarácií a definícií
definícia konštánt; {const}
definícia typov; {type}
deklarácia premenných; {var}
deklarácia procedúr; {procedure}
deklarácia funkcií; {function}

begin

príkaz 1; príkazová časť
príkaz 2;
...
príkaz N;

end.

Údajové typy
 
jednoduché typy

ordinálne typy {prípustné funkcie succ, pred, ord}

vymenovaný typ {vyžaduje samostatnú definíciu}
typ interval {vyžaduje samostatnú definíciu}
integer
boolean
char

neordinálne typy

real

štruktúrované typy {vyžaduje samostatnú definíciu}

množina
pole
záznam
súbor

typ ukazovateľ {umožňuje prácu s dynamickými štruktúrami}

boolean

meno : boolean; {false, true} {and, or, not, <, <=, =, <>, >=, >}

integer

meno : integer; {celé číslo x} {+, -, *, div, mod} {<, <=, =, <>, >=, >}

štandardné funkcie

abs(x) ; i-i absolutna hodnota x
sqr(x) ; i-idruhá mocnina x
trunc(x); r-icelá časť reálneho čísla x
round(x); r-izaokrúhlené reálne číslo x
odd(x); i-b true, ak x je párne, inak false
succ(x); i-ix+1
pred(x); i-ix-1
ord(x); i-ix

real

meno : real; {reálne číslo x} {+, -, *, /} {<, <=, =, <>, >=, >}

štandardné funkcie

abs(x); i-i absolutna hodnota x
sqr(x); i-idruhá mocnina x
sin(x); r/i-iv radiánoch
cos(x); r/i-iv radiánoch
arctan(x); r/i-iv radiánoch
ln(x); r/i-iprirodzený lodaritmus
exp(x); r/i-iexponenciálna funkcia {é na ixtú}
sqrt(x); r/i-idruhá odmocnina
trunc(x); r-icelá časť reálneho čísla x
round(x); r-izaokrúhlené reálne číslo x

char

meno : char; {znak x} {<, <=, =, <>, >=, >}

štandardné funkcie

ord(x); c-oporadové i číslo znaku x v danej množine {začína nulou}
chr(i); o-cznak, kt. hodnota ordinálneho čísla je i
succ(x) ; c-o
pred(x) ; c-o

typ definovaný vymenovaním hodnôt

type
meno = (pol1,pol2,pol3,...,polN);

príklad: farba = (zelen,gula,cerven,zalud);
den = (pondelok,utorok,streda,stvrtok,piatok,sobota,nedela);
štandardné funkcie {succ, pred, ord}

príklad: succ(piatok); sobota
pred(zalud); cerven
ord(zelen); 0
ord(streda); 2

typ definovaný pomocou intervalu

type
meno = min..max;

príklad: pismeno = ˘A˘..˘Z˘; interval z char
index = 1..99; interval z integer

{Ak už je definovaný typ vymenovaním hodnôt, možno tento využiť.}

príklad: fuckday = pondelok..piatok;

Konštanty a Premenné

const
meno = hodnota;

var
meno1,meno2,...,menoN : údajový typ;

{Vyhradené slovo const, var, type, ... v časti deklarácii a definícii sa uvádza len raz!}



Jednoduché príkazy
 
premenná:=výraz
read(parameter)
readln(parameter )
write(parameter )
writeln(parameter )


Štruktúrované príkazy

Zložený príkaz je vhodné "blokovať" medzi begin a end.

Podmienené príkazy

· Binárne vetvenie algoritmu

if podmienka
then
blok príkazov
else
blok príkazov

· Viacnásobné vetvenie algoritmu

case premenná of
hodnota1:blok príkazov
hodnota2:blok príkazov
...
hodnotaN:blok príkazov

Príkazy cyklu

· Príkaz while (nemusí sa vykonať ani raz, pokiaľ je splnená podmienka)

while podmienka
do blok príkazov

· Príkaz repeat (vykoná sa aspoň raz)

repeat
blok príkazov
until podmienka

· Príkaz for (počet opakovaní je vopred známy)

for i:=začiatočná_hod to koncová_hod do blok príkazov
alebo

for i:=koncová_hod downto začiatočná_hod do blok príkazov

Štruktúrované typy údajov
 
· Typ pole

type pole=array[1..10] of integer;
{jednorozmerné pole s indexovanými premennými pole[1] atď.}

type matica=array[1..8] of array[1..8] of array[1..8] of real;
{trojrozmerné pole s indexovanými premennými matica[1,1,1] atď., možno zapísať aj:}
type matica=array[1..8,1..8,1..8] of real;

· Zhustený typ pole

pred slovo array vložíme slovo packed

v programe využívame príkazy:

pack(pole,i,packedpole);
unpack(packedpole,pole,i);

· Typ záznam (heterogénna kompozícia prvkov)

type záznam=record
den:1..31;
mesiac:(januar,februar,marec);
rok:1900..2100;
   end

Sprístupnenie zložiek premennej typu záznam umožňuje aj príkaz with:

with zoznam_premenných_typu_záznam do blok príkazov

· Typ množina 

Hodnotami množiny sú opäť množiny, vytvárajú sa z prvkov základu, bázy.

type báza=(cervena, zlta, cierna);
farba=set of báza;

· Typ súbor (postupnosť prvkov rovnakého typu)

type student=record
...
  end
kartoteka=file of student

· Typ ukazovateľ (dynamická údajová štruktúra, premenná)

type U=@T

Do množiny hodnôt typu ukazovateľ patrí vždy aj hodnota nil.

Procedúry a funkcie

deklarácia:

procedure meno;
begin
postupnosť príkazov
end

alebo

procedure meno(vstupy; var vystupy:typ)
begin
postupnosť príkazov
end

function meno;
begin
postupnosť príkazov
meno:=výraz // ! ! !
postupnosť príkazov
end

Bloková štruktúra programu

Z hľadiska hierarchie blokov možno objekty rozdeliť na lokálne a globálne. Objekt je lokálny pre blok, v kt. bol deklarovaný, a globálny pre všetky hierarchicky nižšie bloky. Lokálny objekt "zatieňuje" globálny.

Pri usporiadaní procedúr, ktoré sa volajú navzájom treba použiť neúplnú deklaráciu procedúry s direktívou forward.



<<- ->>