33
Jazyk Pascal Štruktúra a prvky programu Doc. Ing. Juraj Vaculík, PhD., Mail : [email protected] Web http://nf446.host.sk

Jazyk Pascal Štruktúra a prvky programu

Embed Size (px)

DESCRIPTION

Jazyk Pascal Štruktúra a prvky programu . Doc. Ing. Juraj Vaculík, PhD., Mail : [email protected] 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, - PowerPoint PPT Presentation

Citation preview

Page 1: 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

Page 2: Jazyk Pascal  Štruktúra a prvky programu

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

Page 3: Jazyk Pascal  Štruktúra a prvky programu

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

Page 4: Jazyk Pascal  Štruktúra a prvky programu

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á

Page 5: Jazyk Pascal  Štruktúra a prvky programu

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

Page 6: Jazyk Pascal  Štruktúra a prvky programu

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

Page 7: Jazyk Pascal  Štruktúra a prvky programu

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 ...

Page 8: Jazyk Pascal  Štruktúra a prvky programu

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

Page 9: Jazyk Pascal  Štruktúra a prvky programu

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

Page 10: Jazyk Pascal  Štruktúra a prvky programu

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

Page 11: Jazyk Pascal  Štruktúra a prvky programu

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 ...

Page 12: Jazyk Pascal  Štruktúra a prvky programu

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 ...

Page 13: Jazyk Pascal  Štruktúra a prvky programu

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

Page 14: Jazyk Pascal  Štruktúra a prvky programu

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

Page 15: Jazyk Pascal  Štruktúra a prvky programu

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é

Page 16: Jazyk Pascal  Štruktúra a prvky programu

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

Page 17: Jazyk Pascal  Štruktúra a prvky programu

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

Page 18: Jazyk Pascal  Štruktúra a prvky programu

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

Page 19: Jazyk Pascal  Štruktúra a prvky programu

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

Page 20: Jazyk Pascal  Štruktúra a prvky programu

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

Page 21: Jazyk Pascal  Štruktúra a prvky programu

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 ...

Page 22: Jazyk Pascal  Štruktúra a prvky programu

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

Page 23: Jazyk Pascal  Štruktúra a prvky programu

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á ...

Page 24: Jazyk Pascal  Štruktúra a prvky programu

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á ...

Page 25: Jazyk Pascal  Štruktúra a prvky programu

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

Page 26: Jazyk Pascal  Štruktúra a prvky programu

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

Page 27: Jazyk Pascal  Štruktúra a prvky programu

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

Page 28: Jazyk Pascal  Štruktúra a prvky programu

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

Page 29: Jazyk Pascal  Štruktúra a prvky programu

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

Page 30: Jazyk Pascal  Štruktúra a prvky programu

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

Page 31: Jazyk Pascal  Štruktúra a prvky programu

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ť

Page 32: Jazyk Pascal  Štruktúra a prvky programu

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

Page 33: Jazyk Pascal  Štruktúra a prvky programu

Ďakujem za pozornosť ...

Pokračovanie:

Príkazy Pascalu