Pascal leírásA Pascal programozási nyelv alapjait Niklaus Wirth definiálta 1971-ben (68?). A Pascal magas szintű,általános célú, struktúrált programnyelv, az Algol és a Fortran legjobb elemeit egyesíti. Szigorú nyelv,egyszerű eszközrendszerrel, szintaktikai és szemantikai szabályokkal. Az oktatás kedvelt nyelve. AStandard Pascal kibõvített mikrogépes (elsõsorban IBM PC) változata a Borland cég által kifejlesztettTurbo Pascal. A Pascal szabad formátumú nyelv, azaz a külalaknak (pl. sorhosszúság, bekezdések) csak a programáttekinthetõsége szempontjából van jelentõsége. A nyelv nem különbözteti meg a kis és nagybetűket. A Turbo Pascal nyelvi elemei:alapszimbólumok, foglalt szavak azonosítókoperátorok (műveletek, relációk), kifejezésekkifejezések végrehajtási sorrendjezárójeleksaját/standard függvényekegy operandusú operátorokmultiplikatív operátorokadditív operátorokrelációkbalról jobbra szabálycsoportosítás aritmetikai, logikai relációk, string, halmaz, pointerA Turbo Pascal adattípusai:A Pascalban (minden nyelvben) az adatokat (konstansok, változók) tulajdonságaik szerint csoportosítjuk, azaz típusokba soroljuk, ígymeghatá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. Beépített, standard típusok (egyszerű típusok, struktúrált típusok)byte típusBYTE0 és 255 közötti egész16 jegyes binárisWORD0 és 65535 közötti egészkettes kompl.SHORTINT-128 és 127 közötti egészegész típusINTEGER-32768 .. 32767 közötti egészhosszú egészLONGINT-2147483648 .. 2147483647 közötti egészlogikai típusBOOLEANkétértékű (True, False)karakter típusCHARASCII tábla valamely elemefelsorolt típus(elem1,..,elemN)az elemek felsorolásaintervallum típuselső .. utolsósorszámozott típus részsorozataegyszeres pontosságú valósSINGLE1.401*10-45 .. 3.402*1039valós típusREAL2.939*10-39 .. 1.701*1038duplapontosságú valósDOUBLE4.941*10-324 .. 1.797*10308string típusSTRING[hossz]max. 255 hosszú karakterlánctömb típusARRAY OF alaptípusalaptípus-komponensek tömbjerekord típusREKORD ... endmezőkből álló típushalmaz típusSET OF alaptípusadott alaptípusú elemek halmazaszöveg-fileTEXTkarakterlánc alaptípus fájljafile típusFILE [OF alaptípus]alaptípus-komponensek fájljamutató típusPOINTERdeklarált típus memóriacím-változójaobjektum-típusOBJECTeljárás-típusPROCEDUREfüggvény-típusFUNCTION2. Struktúrált típusoktömb típusaivar 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ípusatype rekordtípusnév = record mező1 : típus1; mező2 : típus2; ... mezőN : típusN; end;var rekordnév : rekordtípus;halmaz típusatype halmaztípus = set of elem1 .. elemN; /maximum 256 elem/Algoritmuselemek1. Egyszerű algoritmuselemeküres utasítás;pl. case utasítás egyik ágában, ha nem fér az else ágbaértékadásvá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. Strukturált algoritmuselemekösszetett utasításBEGINutasítás ; utasítás ; utasítás ; ... ;END;elágazások (kétirányú, többirányú)IF logikai kifejezésTHEN 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ásokszámlálósFOR ciklusváltozó := kezdőérték TO/DOWNTO végérték DO utasítás;elöltesztelősWHILE log_kifejezés DO utasítás; {ha igaz, belép}hátultesztelősREPEAT {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ésePROCEDURE eljárásazonosító [(paraméterlista)]; deklarációs rész végrehajtási részFUNCTION 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ása paraméterátadás a formális paraméterlista felsorolásának sorrendjébentípusában meg kell egyeznie a formális paraméterlistában megadottakkal4. Unitok (speciális programkönyvtárak)fogalma, felépítése, készítéseAz 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;{ unitfej }INTERFACE{ globális dekl. } unitok, típusok, konstansok, változók eljárások, függvények fejrészeIMPLEMENTATION{ privát dekl. } belső deklarációk, eljárások, függvények interface-beli eljárások, függv. törzseBEGIN{ inicializációs rész }........ END.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ájlbanGraph, Graph3, Turbo3 külön TPU fájlokbanSystemált.célú eszközök (memória, lebegőpontos, string műveletek)Crtképernyő, színek, ablakok, billentyűzet, hang eljárások, függvényekDosa DOS hívásokat tartalmazó modulok gyűjteményeOverlayaz átlapolási technikát kezelő eszközöket tartalmazzaPrinternyomtatót (ill. Lst textfájlt) kezelő eljárások, függvényekGraphgrafikus kártyák kezelése, 50-nél több grafikus modulGraph3Turbo 3.0 grafikus rutinjai (pl. teknőc-grafika)Turbo3Turbo 3.0 verzió eljárásai, függvényei, változói5. Standard eljárások, függvényekinput, output eljárásokRead, ReadLn, Write, WriteLnképernyőkezelésszöveges üzemmódképernyőTextMode, NormVideo, Window, ClrScrsorokDelLine, InsLine, ClrEolkurzorGotoXY, WhereX, WhereYszínek kezeléseHigh-,LowVideo, TextBackGround, TextColorgrafikus üzemmódgrafikus meghajtókkarakterkészletekteknőc grafikaaritmetikai eljárások, függvények matematikai függvényekAbs, Sqr,Sqrt, Exp,Ln, Sin,Cos,ArcTannövelés, csökkentés, paritás Inc,Dec, Oddkerekítések, Ludolf-féle szám Int, Frac, Trunc,Round, PiszövegkezelésConcat, Length, Pos, Copy, Delete, Insertkonverziós eljárások, függvények Ord,Chr,UpCase, Str,Valegyéb eljárások, függvényekReadKey, KeyPressed, Delay, Sound, NoSound Randomize, Random, Pred, SuccállománykezelésDeklaráció VAR állománynév : TEXT [$nnnn] VAR állománynév : FILE OF komponenstípus általános műveletekERASE (filenév);RENAME (filenév,fizikai név);FLUSH (filenév);IORESULT;text típusú file-okra vonatkozó műveletekASSIGN (lognév, fiznév)fájlnév hozzárendelése változóhozAPPEND (lognév)létező fájl nyitása hozzáfűzésreREADLN (lognév, lista)olvasás a fájlbólWRITELN (lognév, lista)írás a fájlbaEOLN (lognév)sor végének ellenőrzéseSEEKEOLN (filenév);SEEKEOF (filenév);EOF (lognév)fájl végének ellenőrzéseCLOSE (lognév) fájl lezárásatípusos fájlokra vonatkozó műveletekAssign (lognév, fiznév)fájlnév hozzárendelése változóhozReWrite (lognév)új fájl nyitása olvasásra, írásraReSet (lognév)létező fájl nyitása olvasásra, írásraSeek (lognév, pozíció)pozícionálás a fájlban (0,1,...)Read (lognév, lista)olvasás a fájlból a változó(k)baWrite (lognév, lista)írás a fájlba a változó(k)bólFilePos (lognév)aktuális fájlpozíció (fv.)FileSize (lognév)elemek száma a fájlban (fv.)Truncate (filenév)törlés aktuális pozíciótól file végéigClose (lognév)fájl lezárásamemóriakezelés TP - DOS kapcsolat ParamCount,ParamStr, Haltinfo@tibysoft.huHa a menü tartalmát kívánja látni, kattintson valamelyik menüpontra.(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, <, >, <=, >=, =, <> )A Turbo Pascal 7.0 fejlesztői környezet