330 likes | 463 Views
Jazyk Pascal Štruktúra a prvky programu . Doc. Ing. Juraj Vaculík, PhD., Mail : juvac@fpedas.utc.sk Web http://nf446.host.sk. Štrukrúra programu. identifikačná časť - definuje program (nepovinné) alebo knižnicu, deklaračná časť – deklaruje všetky použité prvky v programe,
E N D
Jazyk Pascal Štruktúra a prvky programu Doc. Ing. Juraj Vaculík, PhD., Mail : juvac@fpedas.utc.sk Web http://nf446.host.sk
Š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í Progranmovanie 2006 Id_program
Identifikačnáčasť - program • pre program : program id_programu; • Program – voliteľné kľúčové slovo – definuje program – kompilátor generuje tvar *.EXE Progranmovanie 2006 Id_unit
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; Progranmovanie 2006 deklaračná
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í Progranmovanie 2006 uses
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 Progranmovanie 2006 knižnice
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. Progranmovanie 2006 label ...
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 Progranmovanie 2006 label
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 thengoto 5 else goto 9; .... {časť programu} 5 halt(); end. Progranmovanie 2006 const
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; Progranmovanie 2006 konštanty
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; Progranmovanie 2006 type ...
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ýchdátovýchtypov prostredníctvom premennej. Keď deklarujeme premennú, musíme určiť jej typ. Typ premennej popisuje množinuhodnôt, ktoré môže nadobúdať a operácie, ktoré sa na ňou môžu vykonávať. Progranmovanie 2006 type ...
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; Progranmovanie 2006 type
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é. Progranmovanie 2006 var
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; Progranmovanie 2006 premenné
Definícia premenných uvádza sa kľúčovým slovom Var aobsahuje 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); Progranmovanie 2006 absolútna
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] ofrecord ch, atr : char endabsolute $B800:$0000; Progranmovanie 2006 Proc a fnc
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; Progranmovanie 2006 procedúra
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); Progranmovanie 2006 funkcia
Deklarácia funkcie Pomenovaná časť programu, ktorá sa vykoná a priamovrátihodnotu (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); Progranmovanie 2006 parametre
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 typom • bez udania typu. Progranmovanie 2006 hodnota ...
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); Progranmovanie 2006 hodnota
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ôžebyť premenná alebo hodnota. Progranmovanie 2006 premenná ...
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); Progranmovanie 2006 premenná ...
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á Progranmovanie 2006 knižnice
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. Progranmovanie 2006 štruktúra
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ť, Progranmovanie 2006 ukážka
Š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 function begin {inicializačné príkazy} end. Progranmovanie 2006 interface
Sekciainterface • predstavuje prepojovaciu časť. V tejto sú sústredené všetky prvky knižnice, ktoré by mali byť prístupné z programu. • V sekcii môžubyť 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šetkyhlavičkyprocedúr a funkcií prístupných z programov. Progranmovanie 2006 implementácia
Sekciaimplementácie • predstavuje lokálnu časť knižnice. • môžubyť 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 Progranmovanie 2006 inicializácia
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. Progranmovanie 2006 Výkonná časť
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. Progranmovanie 2006 koniec
Ďakujem za pozornosť ... Pokračovanie: Príkazy Pascalu