Pascal leírás A 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. A  Standard Pascal kibõvített mikrogépes (elsõsorban IBM PC) változata a Borland cég által kifejlesztett  Turbo 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ó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 A Turbo Pascal adattípusai: 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. 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 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/ Algoritmuselemek 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. 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; { unitfej }                         INTERFACE { globális dekl. }                                        unitok, típusok, konstansok, változók      eljárások, függvények fejrésze IMPLEMENTATION { privát dekl. }                                    belső deklarációk, eljárások, függvények       interface-beli eljárások, függv. törzse BEGIN { 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á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ú file-okra vonatkozó műveletek ASSIGN (lognév, fiznév) fájlnév hozzárendelése változóhoz APPEND (lognév) létező fájl nyitása hozzáfűzésre READLN (lognév, lista) olvasás a fájlból WRITELN (lognév, lista) írás a fájlba EOLN (lognév) sor végének ellenőrzése SEEKEOLN (filenév); SEEKEOF (filenév); EOF (lognév) fájl végének ellenőrzése CLOSE (lognév) fájl lezárása típusos fájlokra vonatkozó műveletek Assign (lognév, fiznév) fájlnév hozzárendelése változóhoz ReWrite (lognév) új fájl nyitása olvasásra, írásra ReSet (lognév) létező fájl nyitása olvasásra, írásra Seek (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)ba Write (lognév, lista) írás a fájlba a változó(k)ból FilePos (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éig Close (lognév) fájl lezárása memóriakezelés TP - DOS kapcsolat ParamCount,ParamStr, Halt info@tibysoft.hu Ha 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