Jazyk Pascal Štruktúra a prvky programu
-
Upload
forrester-brodie -
Category
Documents
-
view
55 -
download
0
description
Transcript of Jazyk Pascal Štruktúra a prvky programu
Jazyk Pascal Štruktúra a prvky programu
Doc. Ing. Juraj Vaculík, PhD.,Mail : [email protected]
Web http://nf446.host.sk
Progranmovanie 2006 2
Štrukrúra programu
identifikačná časť - definuje program (nepovinné) alebo knižnicu,
deklaračná časť – deklaruje všetky použité prvky v programe,
výkonná časť – jadro programu, ktoré sa vykonáva
Všetko je treba zapísať správne a v správnom poradí
Id_program
Progranmovanie 2006 3
Identifikačná časť - program
pre program :
program id_programu; Program – voliteľné kľúčové slovo –
definuje program – kompilátor generuje tvar *.EXE
Id_unit
Progranmovanie 2006 4
Identifikačná časť - unit
pre knižnicu: unit id_kniznice; Unit – povinné kľúčové slovo – definuje knižnicu
– kompilátor generuje tvar *.TPU
Tento musí byť totožný s názvom súboru v ktorom je knižnica umiestená, napríklad ak názov modulu je:
Kniznica.pas potom musí byť v jej identifikačnej časti uvedené Unit kniznica;
deklaračná
Progranmovanie 2006 5
Deklaračná časť
definícia knižníc - uses definícia návesti - label definícia konštánt - const definícia dátových typov - type definícia premenných - var deklarácia užívateľských procedúr
a funkcií
uses
Progranmovanie 2006 6
Definícia knižníc - uses
Knižnica je množina procedúr, funkcií, konštánt, dátových typov a premenných Borland Pascal obsahuje nasledovné štandardné knižnice Crt, Dos, Graph, Graph3, Overlay, Printer, System Strings, WinAPI, WinCrt, WinDOS, WinPrn,
WinProcs, WinTypes
knižnice
Progranmovanie 2006 7
Sekcia uses - knižnice
Syntax: uses zoznam_knižníc; Štandardné knižnice, Užívateľské knižnice.
Príklad:
Uses dos, crt, vlastna;
Sekcia uses musí byť ako prvá , záleží na poradí knižníc.
label ...
Progranmovanie 2006 8
Definícia návesti - label
Deklaruje návestia, na ktoré môže byť odvolávka v hlavnom programe.
label identifikátor1, ... identifikátorN;Návestie je postupnosť číslic v rozsahu 0 až 9999.
Návestia sa využívajú v príkaze goto
label
Progranmovanie 2006 9
Ukážka použitia návestia
Program navestie; label 5,6,7,8,9; begin ... {časť programu}9 write(´pokračovanie ...´); ... {časť programu} if koniec then goto 5 else goto 9; .... {časť programu}5 halt(); end.
const
Progranmovanie 2006 10
Definícia konštánt - const
Hodnota, ktorá sa v programe nemení - Pascal pozná dva typy konštánt typové a netypové, pričom typové sa chovajú ako premenné
const
identifikátor = výraz;
alebo.
identifikátor : type = výraz;
konštanty
Progranmovanie 2006 11
Definícia konštánt ukážky
const MaxData = 1024 * 64 - 16; NumChars = Ord('Z') - Ord('A') + 1; A = 1; { číselná konštanta } B = $F; { hexadecimálne číslo } LF= #10; { znaková konštanta } text='PASCAL' { reťazcová konštanta } NovyRiadok: string[2] = #13#10; TrueStr: string[3] = 'Áno'; Ch : char = #27;
type ...
Progranmovanie 2006 12
Definícia dátových typov
V programe obyčajne pracujeme s informáciami, ktoré obsahujú údaje ktoré spadajú do jedného zo základných dátových typov prostredníctvom premennej.
Keď deklarujeme premennú, musíme určiť jej typ. Typ premennej popisuje množinu hodnôt, ktoré môže nadobúdať a operácie, ktoré sa na ňou môžu vykonávať.
type ...
Progranmovanie 2006 13
Sekcia type – definícia typov
Definuje vlastné dátové typy, alebo je možné predefinovať exitujúce
Syntax: id_typu= existujúci_typ ...
Napríklad:Type
re=real; predefinovanie typu
veta = record ... nový typ
zoznam položiek;
end;
type
Progranmovanie 2006 14
Vlastné dátové typy - type
Type re = real; veta = record meno : string[35]; priezvisko : string[50]; znamka : array[1..10] of byte; .... end;
var v : veta; cislo : re; cis : real;V tomto prípade sú typy re a real identické.
var
Progranmovanie 2006 15
Sekcia premenných - var
Premenná – pomenované miesto v pamäti, kde môžeme ukladať hodnoty. Jej typ určuje rozsah hodnôt a operácie nad nimi.
Syntax : id_premennej : dátový_typ;Var a : real;
b,c : integer;
premenné
Progranmovanie 2006 16
Definícia premenných
uvádza sa kľúčovým slovom Var a obsahuje zoznam identifikátorov, ktoré označujú nové premenné a ich dátový typ
var X, Y, Z; Real; I, J, K: Integer; Digit: 0..9; C: Color; Done,Error: Boolean Operator: (Plus, Minus, Times);
absolútna
Progranmovanie 2006 17
Premenné – absolútna pozícia
Premenné je možné deklarovať tak, aby boli trvalo uložené na určitých adresách pamäti – nazývajú sa absolútne a špecifikuje ich direktíva absolute a adresa.
var mode : byte absolute $0040:$0049;
Page : array[1..25,1..80] of record
ch, atr : char
end absolute $B800:$0000;
Proc a fnc
Progranmovanie 2006 18
Procedúry a funkcie
Procedúra alebo funkcie je samostatná časť programu ktorá vykonáva činnosť.
procedure id_proc; alebo id_proc (parametre); function id_fnc : typ_navratu; alebo id_fnc (parametre):typ_navratu;
Hlavička procedúry alebo funkcie – meno, parametre, návrat[Label <deklarácia návestí>; {lokálne deklarácie} Const <deklarácia konštánt>; Type <definícia dátových typu>; Var <deklarácia premenných>; <deklarácia procedúr a funkcií> ]
begin <telo procedúry alebo funkcie>end;
procedúra
Progranmovanie 2006 19
Deklarácia procedúry
Pomenovaná časť programu – vykoná sa
Procedure meno [(formalne_parametre)];
[všetky deklaračné časti ako program]
begin
[telo procedúry]
end;
volanie meno (reálne_parametre);
funkcia
Progranmovanie 2006 20
Deklarácia funkciePomenovaná časť programu, ktorá sa vykoná a priamo
vráti hodnotu (chová sa v podstate ako premenná, aj ju tak môžeme použiť):
Function meno (form_param)]:typ_návratu;
[všetky deklaračné časti ako program]
begin
[telo funkcie]
meno:=hodnota_návratu;
end;
Použitie : prem:=meno(param); a:=a+meno(xy);
write(meno(xy); parametre
Progranmovanie 2006 21
Parametre procedúr a funkcií
Parameter tvorí interface (prepojenie) medzi programom a procedúrou alebo funkciou.
hodnotou – predanie parametru hodnotou – len jedným smerom do objektu,
premennou – predávanie parametru cez premennú – obojsmerne, s udaným typombez udania typu.
hodnota ...
Progranmovanie 2006 22
Parametre hodnotou
Deklarácia:
Procedure Vstup(X,Y : integer);
Použitie:
Vstup(a,b);
Vstup(100,250);
Príklad:
Gotoxy(10, 25);
s:=10; r:=25; Gotoxy(s,r);
hodnota
Progranmovanie 2006 23
Parameter - hodnota
Function pow3 (a : real):real;begin Pow3:=a*a*a;end;Funkcia na výpočet tretej mocniny s parametrom „a“ cez hodnotu.
Použitie x:=pow3(a); alebo x:=pow3(10);Parameter môže byť premenná alebo hodnota.
premenná ...
Progranmovanie 2006 24
Parameter premennou
Deklarácia:
Procedure Vstup(var X,Y : integer);
Procedure Vstup(var X,Y);
Procedure Vstup(var X,Y : integer;R : boolean);
Použitie:
Vstup(a,b); Vstup(a,b, true);
Príklad:
Readln(a,b);
premenná ...
Progranmovanie 2006 25
Parameter premennáProcedure pow3 (var a : real);begin a:=a*a*a;end;Procedúra na výpočet tretej mocniny - parameter „a“ slúži ako vstup do
procedúry a súčasne ako výstup z nej.
Použitie : x:=10; pow3(x); Po volaní premenná x obsahuje výsledok t.j. 1000.Parameter musí byť len premenná
knižnice
Progranmovanie 2006 26
Knižnica by mala obsahovať
procedúry, funkcie a objekty obecne, ktoré sú použiteľné niekoľko krát v rôznych programoch,
dátové štruktúry, typy a konštanty, ktoré majú platnosť vo viacerých moduloch
komplikované a zložité algoritmy, ktoré nie je vhodné vkladať do programu, ochrana autora, zložitosť modulu a pod.
časti programov pre zjednodušenia hlavného programu.
štruktúra
Progranmovanie 2006 27
Užívateľské knižnice
Štruktúra knižnice pozostáva zo štyroch častí: identifikačná časť definovaná kľúčovým
slovom unit.časť prepojenia - interface part definuje
globálne prvky časť implementačná - implementation part
sústreďuje lokálne prvky knižnicačasť inicializačná - inicialization part
voliteľná časť,
ukážka
Progranmovanie 2006 28
Štruktúra knižnice
Unit identifikátor;interface {globálne prvky} uses, const, type, var, procedure, function ...implementation {lokálne prvky} uses, label, const, type, var procedure functionbegin {inicializačné príkazy}end.
interface
Progranmovanie 2006 29
Sekcia interface
predstavuje prepojovaciu časť. V tejto sú sústredené všetky prvky knižnice, ktoré by mali byť prístupné z programu.
V sekcii môžu byť definované, podobne ako v programe alebo nižšom syntaktickom celku, hlavne premenné, konštanty a dátové typy ktoré sú zdieľané programom ku ktorému je knižnica pripojená klauzulou uses.
V tejto sekcií sú súčasne uvedené všetky hlavičky procedúr a funkcií prístupných z programov.
implementácia
Progranmovanie 2006 30
Sekcia implementácie
predstavuje lokálnu časť knižnice. môžu byť definované všetky lokálne prvky
ako knižnice, konštanty, návestia, dátové typy a podobne ale tieto majú platnosť len v rámci knižničného modulu.
musia byť uvedené kompletné deklarácie procedúr a funkcií, ktorých hlavičky sú deklarované v sekcii interface
inicializácia
Progranmovanie 2006 31
Inicializácia
voliteľná časť knižnice, je umiestená na konci medzi príkazmi
begin a end. V nej môžu byť definované napríklad
nastavenia dátových premenných deklarovaných v knižnici, vykonanie inicializačných podprogramov a pod.
Výkonná časť
Progranmovanie 2006 32
Výkonná časť
Postupnosť riadiacich príkazov a výrazov uzavretých medzi slová begin a end. Výkonná časť je ukončená znakom bodky. Všetko, čo je za tým kompilátor ignoruje.
Begin
príkazy;
end.Príkazy jazyka, predstavujú riadiace štruktúry.
koniec
Ďakujem za pozornosť ...
Pokračovanie:
Príkazy Pascalu