felépítés
környezet
nyelvi elemek
1. típusok
2. algoritmuselemek
3. alprogramok
4. unitok
5. eljárások, függvények

 

 

A Pascal program felépítése

 
programfej
       globális direktívák
       deklarációs rész     (unitok, típusok, konstansok, változók)
                            (címkék, eljárások, függvények)
       végrehajtási rész    (programtörzs)
 

 

PROGRAM név;                   


USES                  
TYPE
CONST
VAR
LABEL

PROCEDURE


FUNCTION



BEGIN
utasítás            
utasítás            
........
END.

fejrész


deklarációs rész





blokkrész


blokkrész



végrehajtási rész   (főprogram)




 

 

A program munkakörnyezete (v7.0)

 

 

 

 

A program nyelvi elemei

 
 
alapszimbólumok, foglalt szavak
azonosítók
operátorok (műveletek, relációk), kifejezések
kifejezések végrehajtási sorrendje
zárójelek
saját/standard függvények
egy operandusú operátorok
multiplikatív operátorok
additív operátorok
relációk
balról jobbra szabály
csoportosítás
aritmetikai, logikai relációk, string, halmaz, pointer
(kulcsszavak)
(konstans, változó, típus, eljárás, függvény, program, stb.)

(precedencia-szabályok)


( not, +, -, @, ^ )
( /, *, div, mod, and, shl, shr )
( +, -, or, xor )
( in, <, >, <=, >=, =, <> )


 

 

1. Típusok
 
A Pascalban (minden nyelvben) az adatokat (konstansok, változók) tulajdonságaik szerint csoportosítjuk, azaz típusokba soroljuk, így meghatározzuk azok felhasználhatóságát, értékhatárait és az elfoglalt  memóriaterület nagyságát.

- új típus a már ismert típusokból építhető fel vagy megadjuk az adott típushoz hozzárendelhető értékeket (típusdeklaráció)
- minden változó egy és csak egy típusba tartozhat
- szintaktikája : type típusazonosító = típusdefiníció ;

 

1.1 Beépített, standard típusok (egyszerű típusok, struktúrált típusok)
 
byte típus BYTE 0 és 255 közötti egész
16 jegyes bináris WORD 0 és 65535 közötti egész
kettes kompl. SHORTINT -128 és 127 közötti egész
egész típus INTEGER -32768 .. 32767 közötti egész
hosszú egész LONGINT -2147483648 .. 2147483647 közötti egész
logikai típus BOOLEAN kétértékű (True, False)
karakter típus CHAR ASCII tábla valamely eleme
felsorolt típus (elem1,..,elemN) az elemek felsorolása
intervallum típus első .. utolsó sorszámozott típus részsorozata
egyszeres pontosságú valós SINGLE 1.401*10-45 .. 3.402*1039
valós típus REAL 2.939*10-39 .. 1.701*1038
duplapontosságú valós DOUBLE 4.941*10-324 .. 1.797*10308
string típus STRING[hossz] max. 255 hosszú karakterlánc
tömb típus ARRAY OF alaptípus alaptípus-komponensek tömbje
rekord típus REKORD ... end mezőkből álló típus
halmaz típus SET OF alaptípus adott alaptípusú elemek halmaza
szöveg-file TEXT karakterlánc alaptípus fájlja
file típus FILE [OF alaptípus] alaptípus-komponensek fájlja
mutató típus POINTER deklarált típus memóriacím-változója
objektum-típus OBJECT
eljárás-típus PROCEDURE
függvény-típus FUNCTION
 

 

1.2. Struktúrált típusok
 
tömb típusai var  tömbnév   : array [i1..j1,i2..j2, ... ,in..jn] of elemtípus;
type tömbtípus = array [i1..j1,i2..j2, ... ,in..jn] of elemtípus;
var  tömbnév   : tömbtípus;
rekord típusa type rekordtípusnév = record
    mező1 : típus1;
    mező2 : típus2;
    ...
    mezőN : típusN;
    end;
var  rekordnév : rekordtípus;
halmaz típusa type halmaztípus = set of elem1 .. elemN;   /maximum 256 elem/
 

 

2. Algoritmuselemek
 
2. 1 Egyszerű algoritmuselemek
 

 

üres utasítás ; pl. case utasítás egyik ágában, ha nem fér az else ágba
értékadás változó := konstans/változó/kifejezés; {típuskompatibilitás !)
eljáráshívás, függvényhívás ( nem önálló utasítás ! ) eljárásazonosító [(paraméterlista)];
változó : = függvényazonosító (paraméterlista);
 

 

2. 2. strukturált algoritmuselemek
 
összetett utasítás BEGIN
    utasítás ; utasítás ; utasítás ; ... ;
END;
elágazások (kétirányú, többirányú) IF logikai kifejezés
THEN utasítás
[ELSE utasítás];
CASE szelektor_kifejezés OF
        érték1                       : utasítás1;
        érték2,érték3,érték4  : utasítás2;
        érték5 .. érték6          : utasítás3;
         ............
        értékN                       : utasításn;
        [ELSE                        : utasítások]
END;
ciklusszervező utasítások
számlálós FOR ciklusváltozó := kezdőérték TO/DOWNTO végérték DO utasítás;
elöltesztelős WHILE log_kifejezés DO utasítás;       {ha igaz, belép}
hátultesztelős REPEAT   {ha igaz, kilép}
        utasítások;
UNTIL log_kifejezés;
 

 

3. Alprogramok (eljárások, függvények)
 

 

deklarálása, felépítése PROCEDURE  eljárásazonosító [(paraméterlista)];
           deklarációs rész
           végrehajtási rész
FUNCTION   függvényazonosító (paraméterlista) : értéktípus;
           deklarációs rész
           végrehajtási rész     { a fv.név legalább egyszer szerepel ! }
hívása, paraméterátadás a paraméterátadás a formális paraméterlista felsorolásának sorrendjében
típusában meg kell egyeznie a formális paraméterlistában megadottakkal
 

 

4. Unitok (speciális programkönyvtárak)
 

 

fogalma, felépítése, készítése Az itt lévő eljárások, függvények, konstansok, típusok és változók beépíthetők a programjainkba. A  TP szerkesztője a unitban előforduló, programunkból hívott részeket beszerkeszti.  (4.0 - tól van)
(unit nélkül 64 Kbyte, overlay nélkül max. 640 Kbyte lehet a prg.)
Forrás unit és szerkezete (unitnév.PAS) UNIT unitnév;                               
INTERFACE                                   
     unitok, típusok, konstansok, változók
     eljárások, függvények fejrésze
IMPLEMENTATION                              
      belső deklarációk, eljárások, függvények
      interface-beli eljárások, függv. törzse
BEGIN
........                                  
END.
{ unitfej }
{ globális dekl. }


{ privát dekl. }


{ inic.-ós rész }

Lefordított unit (unitnév.TPU) Forrás unit, a TP fordítóprogramjával lefordítva. Önmagában nem futtatható, csak a főprogrammal összeszerkesztve. (Egy főprogram több unitra is hivatkozhat, azok is más unitokra.)
Standard unitok (beépített unitok - unitnév.TPU) System, Crt, Dos, Printer, Overlay a TURBO.TPL fájlban
Graph, Graph3, Turbo3 külön TPU fájlokban
System ált.célú eszközök (memória, lebegőpontos, string műveletek)
Crt képernyő, színek, ablakok, billentyűzet, hang eljárások, függvények
Dos a DOS hívásokat tartalmazó modulok gyűjteménye
Overlay az átlapolási technikát kezelő eszközöket tartalmazza
Printer nyomtatót (ill. Lst textfájlt) kezelő eljárások, függvények
Graph grafikus kártyák kezelése, 50-nél több grafikus modul
Graph3 Turbo 3.0 grafikus rutinjai (pl. teknőc-grafika)
Turbo3 Turbo 3.0 verzió eljárásai, függvényei, változói
 

 

5. Standard eljárások, függvények
 

 

input, output eljárások Read, ReadLn, Write, WriteLn
képernyőkezelés
szöveges üzemmód képernyő TextMode, NormVideo, Window, ClrScr
sorok DelLine, InsLine, ClrEol
kurzor GotoXY, WhereX, WhereY
színek kezelése High-,LowVideo, TextBackGround, TextColor
grafikus üzemmód grafikus meghajtók
karakterkészletek
teknőc grafika
 
aritmetikai eljárások, függvények
matematikai függvények Abs, Sqr,Sqrt, Exp,Ln, Sin,Cos,ArcTan
növelés, csökkentés, paritás Inc,Dec, Odd
kerekítések, Ludolf-féle szám Int, Frac, Trunc,Round,  Pi
szövegkezelés Concat, Length, Pos, Copy, Delete, Insert
konverziós eljárások, függvények Ord,Chr,UpCase, Str,Val
egyéb eljárások, függvények ReadKey, KeyPressed, Delay, Sound, NoSound Randomize, Random, Pred, Succ
állománykezelés Deklaráció
    VAR állománynév : TEXT [$nnnn]
    VAR állománynév : FILE OF komponenstípus
általános műveletek ERASE (filenév);
RENAME (filenév,fizikai név);
FLUSH (filenév);
IORESULT;
text típusú filek-ra (szövegfájlok) vonatkozó műveletek ASSIGN (lognév, fiznév)
APPEND (lognév)
READLN (lognév, lista)
WRITELN (lognév, lista)
EOLN (lognév)
SEEKEOLN (filenév);
SEEKEOF (filenév);
EOF (lognév)
CLOSE (lognév)
fájlnév hozzárendelése változóhoz
létező fájl nyitása hozzáfűzésre
olvasás a fájlból
írás a fájlba
sor végének ellenőrzése


fájl végének ellenőrzése
fájl lezárása
komponens típusú filek-ra (típusos fájlok) vonatkozó műveletek Assign (lognév, fiznév)
ReWrite (lognév)
ReSet (lognév)
Seek (lognév, pozíció)
Read (lognév, lista)
Write (lognév, lista)
FilePos (lognév)
FileSize (lognév)
Truncate (filenév)
Close (lognév)



fájlnév hozzárendelése változóhoz
új fájl nyitása olvasásra, írásra
létező fájl nyitása olvasásra, írásra
pozícionálás a fájlban (0,1,...)
olvasás a fájlból a változó(k)ba
írás a fájlba a változó(k)ból
aktuális fájlpozíció (fv.)
elemek száma a fájlban (fv.)
törlés aktuális pozíciótól file végéig
fájl lezárása



memóriakezelés TP - DOS kapcsolat ParamCount,ParamStr, Halt

 

Fel