Údajové, štruktúrne typy v Turbo Pascale
Vyhradené slovo
and, array, asm, begin, case, const, constructor, destructor, div, downto, do, else,
end, exports, file, for, function, goto, if, implementation, in, inherited, inline,
interface, label, library, mod, nil, not, object, of, or, packed, procedure, program,
record, repeat, set, shl, shr, string, then, to, type, unit, until, uses, var, while,
with, xor
a direktívy:
absolute, assembler, export, external, far, forward, index, interrupt, near, private,
public, resident, virtual
.. a mnoho iných (v dokumentácii príslušného kompilátora)
{časť definície v hranatých zátvorkách [] v konkrétnom prípade nemusí byť uvedená}
Organizácia programu
program meno programu; hlavička programu
zoznam použitých unit; {uses} časť deklarácií a definícií
deklarácia návestí; {label}
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.
V deklarácii procedúr a funkcií nesmie byť uses.
Údajové typy - štandardné
Celočíselný typ
byte 0..255
shortint -128..127
word 0..65535
integer -32768..32767
longint -2147483648..2147483647
Povolené je hexadecimálne číslo za znakom $ (napr. $16 je 22 desiatkove)
Typy reálnych čísel
real
a ďalšie len s použitím numerického koprocesora (direktíva{$N+})
single
double
extended
comp (zobrazenie v pevnej riadkovej čiarke)
Typ char
Jeden znak v ASCII kóde. Platí:
#20 = Chr(20) kódová reprezentácia znaku
#65 = 'A'
^G súčasné stlačenie Ctrl a G
Typ string
var text:string[30]; //dĺžka reťazca text je 30 znakov
Reťazec znakov, Null-terminated, ASCIIZ, OpenString
Booleovské typy
boolean
ByteBool 1 slabika // pre kompatibilitu s C, ktorý považuje za true každú hodnotu
WordBool 2 slabiky // okrem nuly
LongBool 4 slabiky //
Užívateľsky definované typy
· Vymenovaný typ
· Typ interval
· Typ ukazovateľ
· Typ pole
· Typ záznam
· Typ množina
· Typ súbor
· Procedurálny typ
· Objektový typ
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.
Programové jednotky - unit
Po preložení zo zdrojovej formy vznikne súbor meno.tpu
unit meno;
interface
uses zoznam jednotiek; //nepovinné
verejné deklarácie a definície
implementation
uses zoznam jednotiek; //nepovinné
interné deklarácie a definície
procedúry a funkcie
begin
inicializačný kód
end.
Použitie v hlavnom programe:
uses meno;
hneď za hlavičkou programu.
etc.
|