You are on page 1of 97

BEVEZETS

A mai kor embernek, de fleg az rtelmisgnek lassan a mindennapjai rszv


vlik a szmtgp. ltalnosan elterjedt a szvegszerkesztk s a tblzatkezelk
hasznlata. Termszetesen sok egyb szoftver is ltezik, felhasznli szoftverek
tmkelege vr felfedezsre, amelyekbl mindenki azt vlasztja ki, amelyik
munkjhoz, hobbijhoz, egyb feladatai megvalstshoz szksges. Sok esetben
azonban nincs a piacon olyan clszoftver, ami a legmegfelelbb lenne, vagy esetleg
a feladat nagysga, jellege nem is teszi szksgess, indokoltt gyri" szoftver
alkalmazst. Klnsen gyakran kerl ilyen helyzetbe a mrnk, aki a munkja
sorn felmerlt problmkat, megoldsra vr feladatokat a sajt maga ltal rt
szmtgpes program segtsgvel oldja meg.
A programok, szoftverek ksztsre szmos programnyelv ll rendelkezsre, mint
pldul a Fortran, a Basic, a C, a Pascal, a Clipper stb. Mindegyik nyelvnek
megvannak a sajtossgai, erssgei s gyengi. Az adatfeldolgozsi feladatokra a
Clipper a legalkalmasabb, matematikai clokra szvesen hasznljk a Fortran-t. A
C a Windows programozsban jratosak szmra kedvelt nyelv. A Pascal egy
ltalnos cl programozsi nyelv, amivel a legklnbzbb jelleg feladatokat
meg lehet oldani.
Ezrt a programozsi nyelvek kzl a Pascal oktatsra kerl sor, amely hatkony,
rugalmas, ugyanakkor viszonylag knnyen elsajtthat nyelv. A Borland cg
egymst kvet Turbo Pascal verzii egyre tbb szolgltatst nyjtanak, amelyek
jelentsen megknnytik a programozk munkjt, s amivel gyakorlatilag
mindenfle programozsi feladatot meg lehet valstani.
Egy programnyelv elsajttsa azonban nem nlklzheti a programozs ltalnos
alapelveinek ismerett. Ezrt a segdlet els rszben rviden ttekintjk a
programtervezs legfontosabb momentumait, amelyeket mg a legegyszerbb
program ksztse eltt s sorn clszer szem eltt tartani.
A tovbbi fejezetekben a Pascal programozs lnyegi elemeit tekintjk t, annyit,
amennyi az alapok elsajttshoz szksges. A kiadvny termszetesen nem
helyettestheti a minden rszletre kiterjed Pascal referenciaknyvek hasznlatt.
Vgl sszefoglaljuk a Turbo Pascal eljrsait s fggvnyeit.

1. A szmtgp s a program
1.1. A kettes s a tizenhatos szmrendszer
A szmtgp mkdshez programokra van szksg. A legalapvetbb, a legels
programot, a BIOS-t, vagy az opercis rendszert, a DOS-t is meg kellett rni, azt a
szmtgp szmra rthet formban kzlni kell. A szmtgpben, mint
elektronikus eszkzben, nem a tzes szmrendszer hasznlatos, hanem a kettes, ahol
kt llapot a termszetes (van feszltsg, vagy nincs feszltsg). gy ott a kettes
(binris) szmrendszert hasznljuk, melyben a kt jel a 0 s az 1.
A kettes szmrendszerben gy kvetik egymst a tzes alap rendszerben ismert
szmok:
0

10

10

11 100 101 110 111 1000 1001 1010

Egy binris szm ltalnos formja:

vagy kzrthetbben:

Hogyan tudunk egy tzes szmrendszerbeli szmot kettes rendszerben felrni? A


szmot elosztjuk 2-vel, a maradk vagy 1, vagy 0 lesz. A 2-vel val osztst addig
vgezzk mikzben a maradkokat felrjuk , amg a hnyados nulla nem lesz.
Ezek a maradkok kpezik a szm binris jegyeit (fordtott sorrendben).
Pldul a 35 brzolsa kettes szmrendszerben:
35 : 2 =
17 : 2 =
8:2=
4:2=
2:2=
1:2=

17,
8,
4,
2,
1,
0,

maradk: 1
maradk: 1
maradk: 0
maradk: 0
maradk: 0
maradk: 1

Az eredmny a maradk oszlopban lthat, alulrl olvasva. A 35 kettes


szmrendszerbeli megfelelje teht: 100011.

A szmtgp - mint emltettk - nullkkal s egyesekkel dolgozik, ezeket biteknek


(binary digit, binris szmjegy) nevezzk. A legkisebb kezelhet, mozgathat
egysg a byte (bjt), ami nyolc bitbl ll:
0 0 1 0 0 0 1 1

Az egy bjton trolhat legkisebb rtk a 00000000, a legnagyobb pedig az


11111111. Ez utbbi szm eggyel kisebb, mint az 100000000, vagyis rtke: 28 -1=
256 -1= 255. Egy bjton teht 256 klnbz rtk trolhat, 0-tl 255-ig. Ennek
megfelelen alkottk meg a mindenki ltal jl ismert ASCII kdrendszert, ami a
szmtgp szmra teszi rthetv a bet- s szmkaraktereket, valamint az egyb
jeleket.
De hogyan lesz ebbl tizenhatos szmrendszer? rjuk fel pldaknt a 39715
decimlis szmot binris formban:
1001101100100011
Ht ez bizony elgg ijeszt! De ha a bjt 4-4 bitjt sszefogjuk s ezeket j
karakterekkel jelljk, akkor egyszerbb lesz a felrt forma. sszesen 16 darab
jelre van szksg. Az els tz a 0-9 szmjegy, a tovbbi hat pedig az ABC els hat
betje (A-F):
0000 = 0

1000 = 8

0001 = 1

1001 = 9

0010 = 2

1010 = A (10)

0011 = 3

1011 = B (11)

0100 = 4

1100 = C (12)

0101 = 5

1101 = D (13)

0110 = 6

1110 = E (14)

0111 = 7

1111 = F (15)

Ez teht a tizenhatos (hexadecimlis) szmrendszer, amely tulajdonkppen a binris


rendszer egyszerstse rvn jtt ltre. Ezzel a 39715 szm hexadecimlis formja
a kvetkez lesz:
Binris
Hexadecimlis

1001 1011 0010 0011


9

A hexadecimlis szmokat gy jelljk, hogy a szm el egy $ jelet tesznk, vagy a


szm utn egy H vagy h bett. Ez a kln jells azrt fontos, mert ha trtnetesen
nincs a szmjegyek kztt bet, nem lehetne eldnteni, hogy a szm milyen

szmrendszer. A plda szerinti szmot a kvetkezkppen rjuk le: $9B23, vagy


9B23H.
Decimlis szmrendszerbl hexadecimlisra hasonl eljrssal vlthatunk, mint a
kettes szmrendszer esetn, csak az oszt itt a 16 lesz.
{Csak zrjelben: a szmtstechnikban az 1024 bjtot nevezzk 1 kilobjtnak,
mgpedig azrt, mert a 2 hatvnyai kzl a 210=1024 ll legkzelebb az 1000-hez.
A tovbbiakban 1 MB (megabjt) = 1024 kB s 1 GB (gigabjt) = 1024 MB.}

1.2. A gpi kd
A szmtgp a programot (azaz az utastsokat) s az adatokat a memriban
trolja. A szmtgp memrija bjtokbl ll, melyek sorszmozva vannak 0-tl
n-1-ig, ahol n a memria mrete, a sorszmokat a megfelel bjtok cmeinek
nevezzk. A cmeket hexadecimlisan adjk meg. A memria minden bjtjnak van
egy cme (annak meghatrozsa, hogy melyik bjtrl van sz) s van egy tartalma
(a bjt aktulis rtke, amely 0 s $FF kz eshet). A memria brmely bjtjt
kzvetlenl el tudjuk rni, adatot trolhatunk benne s ki is tudjuk olvasni belle.
Ezt vgzi a szmtgp processzora.
A processzor (kzponti feldolgozegysg, CPU) felgyeli a program vgrehajtst
s az egyb eszkzkkel val kapcsolattartst. A processzor regiszterekbl ll,
amelynek nagysga az adott processzorra jellemz adat: 8, 16, 32 stb. bites lehet. A
regiszter tulajdonkppen trolhely a processzorban, ahol a CPU gyorsabban tudja
az adatokat mozgatni, mint a memribl, memriba. A processzor kt f rszbl
ll: a vezrlegysgbl s az aritmetikai/logikai egysgbl. A vezrlegysg
utasts regiszterbl s utastsszmllbl ll. Az utasts regiszterben mindig az
ppen aktulis utasts van, az utastsszmll pedig a kvetkez utasts
memriacmt tartalmazza. A vezrlegysg az aritmetikai egysggel vgrehajttatja
az utastst. Az akkumultor, mint regiszter, az adat ideiglenes trolsra szolgl.
Az aritmetikai/logikai egysg aritmetikai mveleteket hajt vgre, s az adott
feltteltl fggen el tudja dnteni, melyik utastssal folytatdjon a vgrehajts.
Ahhoz, hogy a szmtgp megrtse azokat az adatokat s utastsokat, amelyeket a
kitztt feladat megoldsa cljbl kell vgrehajtani, azt n. gpi kdban kell a
"tudomsra hozni". A gpi kd program teht a gp szmra vgrehajthat
utastsok sorozata, ezrt ezt futtathat programnak (executable program [.EXE]) is
nevezik. Egy gpi kd utasts (mvelet, opertor) az utasts kdjval kezddik,
ami ltalban egy bjt. Az utastskdot az utasts paramterei (argumentum,
operandus) kvetik, de van paramter nlkli utasts is.

1.3. Assembly nyelv


A programozk munkjt sokkal knnyebb kell tenni. Erre talltk ki az Assembly
nyelvet, amely elg rendszerkzeli ahhoz, hogy a processzor tulajdonsgait jl ki
lehessen hasznlni, de ugyanakkor rugalmasabb, rthetbb s egyszeren
mdosthat, javthat. A programoz az utastsokat nem szmokkal, hanem
emlkeztetkkel rja meg. Van egy program, amely elemzi s gpi kdd alaktja,
lefordtja ezt a forrsprogramot. A fordtst vgz programot Assemblernek
nevezzk.
Az Assembly forrsprogram utastsait soronknt rjuk. A programnak lnyegileg
kt rsze van: programterlet s adatterlet. A program az, ami fut, s kzben
hasznlja az adatokat.
A programozk szmra azrt ez sem az igazi megolds! Egy alacsony szint
nyelvnek, mint az Assembly nyelvnek is, tbb htrnya van. Az egyik, hogy a
programoznak sokat kell dolgoznia, a msik, hogy azok gpenknt klnbznek.
Alacsony szint nyelven a klnbz processzorokra teljesen klnbz
programokat kell rni. Ezek a programok nem hordozhatk, vagyis az egyik
processzoron megrt programot nem tudjuk egy msik tpusn futtatni. A megoldst
a magas szint programnyelvek kifejlesztse s alkalmazsa adta.

1.4. A magas szint nyelvek


A magas szint nyelvek jobban hasonltanak az emberi gondolkodshoz. Egy
magas szint forrsprogrambl mr rnzsre is sokat ki lehet olvasni, sejteni lehet,
hogy milyen adatokkal, milyen sorrendben, milyen mveleteket hajt vgre, ha az
gpi kdd lesz alaktva.
A magas szint nyelvek, gy a Pascal is, a programoz munkjt nagymrtkben
knnytik, hiszen a rszletek tlalva vannak, csak be kell azokat helyezni
programunkba. Persze ahhoz, hogy ilyen knnyedn, emberkzelien tudjunk
programot rni, ahhoz meg kellett egyszer rni azt a programot, ami ezeket az
emberkzeli utastsokat rtelmezi, s gpi kdra lefordtja (mert a szmtgp csak
a gpi kdot ismeri). Az ilyen programot nevezik fordtnak (compiler). Egy magas
szint utasts tbb szz vagy ezer gpi kd utastst is jelenthet egyszerre. A
magas szint programnyelven megrt forrsprogram mr hordozhat, vagyis t
lehet vinni ms gpekre is. A fordtprogram persze tovbbra sem hordozhat,
ezrt a forrsprogramot az adott szmtgpre megrt fordtprogrammal a
szmtgp gpi kdjv kell alaktani.
A legelterjedtebb magas szint programozsi nyelvek ma a C, Pascal, Clipper,
Basic, Fortran, PL/I, Cobol, Prolog, Smalltalk, Eiffel, CLOS, APL, Ada s mg

sorolhatnnk. Mindegyik nyelvnek megvannak a sajtossgai, erssgei s gyengi.


Ezek kzl azt clszer vlasztani, amelyik az adott krnyezetben a legjobban
elterjedt, rtnk hozz, a feladatainkat legegyszerbben meg tudjuk valstani, s
nem utols sorban, amelyik programnyelv leglisan hozzfrhet.

1.5. Az algoritmus
Amikor egy problmt meg akarunk oldani, ajnlatos elszr a konkrt
programozsi nyelvet flretenni, s azon gondolkodni, milyen lpseket kell
megtenni a problma megoldsnak rdekben. Legjobb, ha egyszeren lerjuk az
instrukcikat. Azon instrukcik halmazt, mely egy feladat megoldshoz
vezetnek, algoritmusnak nevezzk. Algoritmusokkal a htkznapokban is lptennyomon tallkozunk. Instrukcik sokflekppen megadhatk, pldul szban,
rajzban, rsban, magyar nyelven, angol nyelven vagy programozsi nyelven.
Az algoritmus teht egy t a felvetdtt problma megoldshoz. Legyen a feladat
pldul kt darab krta szerzse. Ahhoz, hogy elvgezzk a feladatot, meg kell
terveznnk az elvgzend tevkenysgket. Lehet, hogy az algoritmus nhny
elemi tevkenysg egyms utn vgrehajtand (szekvencilis) sorozata, mint
pldul:
Menj be a Tanszkre!
Keresd meg az adminisztrtort!
Krj tle kt darab krtt!
Hozd be a krtt az eladba!

Lehet, hogy a megolds bizonyos pontokon nem lthat elre s felttelektl


fggen ms s ms megoldst kell vlasztanunk. Ilyen pldul:
Menj be a Tanszkre!
Keresd meg az adminisztrtort!
Ha megtallod, akkor
Krj tle kt darab krtt!
klnben
Keress mshol krtt!
Gyere vissza az eladba!

Elfordulhat, hogy egy tevkenysget nem lehet "egybl" vgrehajtani, annak


vgrehajtshoz tovbbi instrukcik szksgesek. Ilyenkor a tevkenysget
rszletezni kell. Ilyen lehet pldul a "Menj be a Tanszkre" instrukci is:
Menj ki az eladbl!
Menj el a C/1 pletbe!
Az 1. emeleten keresd meg a 104. ajtt!
Kopogtass!
Lpj be az ajtn!

Elfordulhat, hogy a megolds rdekben valamely tevkenysget tbbszr is vgre


kell hajtani, vagyis ismtelni (iterlni) kell. Lehet, hogy az itercik szmt elre
tudjuk, lehet, hogy az ismtelt vgrehajtsnak felttele van. A "Krj tle kt darab
krtt!" instrukci pldul kt ismtld tevkenysgbl ll:
Csinld ktszer:
Krj tle egy darab krtt!

Az itercit ciklusnak is szoks nevezni. A cikluson a teljes ciklikus folyamatot


rtjk, az ismtlend tevkenysg pedig a ciklus magja.
Az algoritmus struktrjt teht szekvencik, szelekcik illetve itercik adjk,
amelyeket tetszleges mlysgben egymsba lehet gyazni.
A szmtgpen megoldand feladat algoritmizlsa esetn nem elegendek a fenti
pongyola megfogalmazsok. Az algoritmus lersnak egyrtelmnek, pontosnak,
lpsenknt vgrehajthatnak kell lennie. Nem lehetnek elre nem ltott akadlyok.
Szmtgp esetn a vgrehajtnak, vagyis a processzornak, nincsen
tlkpessge, t nem lehet bizonytalan helyzetek el lltani. Mit kell csinlni a
"Menj be a Tanszkre" instrukci rszletezseknt lert szekvencilis utastssor
pldjban akkor, ha nincs nyitva a Tanszk? Ebben az esetben a "Krj tle kt
darab krtt!" instrukci vgrehajthatatlan.
Az algoritmus illetve program leglnyegesebb tulajdonsgait, s a vele szemben
tmasztott kvetelmnyeket a kvetkez pontokban foglalhatjuk ssze:

Az algoritmus lpsekbl (elemi tevkenysgekbl, utastsokbl) ll. Az


algoritmus vgrehajtsa lpsenknt trtnik. Az algoritmus ltal lert, s a
vgrehajts sorn megtett lpsek sorozatt folyamatnak nevezzk.
Minden lpsnek egyrtelmen vgrehajthatnak kell lennie.
Egy algoritmusban hivatkozhatunk sszetett lpsekre is, melynek
rszletzst ksbb adjuk meg.
A vgrehajtsnak mindig van valamilyen trgya. Kell valami, amin az
utastst vgrehajthatjuk. A "Krj kt darab krtt" instrukci trgyai a kr
egyn, az adminisztrtor s a krtk. Ezeket a trgyakat a programozsban
adatoknak nevezzk.
A vgrehajtand instrukcinak mindig valamilyen clja van. A vgrehajts
sorn valamilyen vltozs kvetkezik be pldnkban a krtk az
adminisztrtortl tkerlnek az egynhez.
Az algoritmusnak vannak bemen (input) adatai, melyeket felhasznl. A
bemen adatok pldnkban az adminisztrtor illetve a krtk. Az algoritmus
feladata, hogy a krtk a clhelyre kerljenek.
Az algoritmusnak legalbb egy kimen (output) adatot produklnia kell.
Pldnkban a kimen adatok a valahol bemen krtk.

Az algoritmus legyen hatkony! Az instrukcik legyenek knnyen


kvethetk, pontosak, egyszerek s azokat minl rvidebb id alatt vgre
lehessen hajtani!
Az algoritmust gy kell megtervezni, hogy az elronthatatlan legyen!
Az algoritmus olyan legyen, hogy a fut program a felhasznl szempontjait
maximlisan vegye figyelembe, azaz legyen felhasznlbart!

1.6. Az algoritmus tervezse


Egy j algoritmus mg a legegyszerbb program rsnl is komoly segtsget
jelenthet. Egy szmtgpen megoldand feladat felvetdse pillanatban mris
ers a csbts, hogy az ember leljn a szmtgp el, s mr gpeljk is az
utastsokat. Miutn ksz vagyunk a berssal, a fordt ltal jelzett hibkat tbbkevesebb id alatt kijavtjuk. Az ilyen sszedobott program azonban a legritkbb
esetben mkdik helyesen. s akkor elkezddik a javtgats. A program bizonyos
adatokkal mkdik, msokkal nem. Ha valamit kijavtunk, helyette valami msik
problma jn el. Elbb-utbb gy sszekeverednk, hogy mr azt sem tudjuk, mi
is volt a feladat tulajdonkppen. A toldozs-foltozs nem szerencss mdszer,
megbzhat programot kizrlag tervszer programozssal kszthetnk!
Az algoritmus megtervezshez vezet els lps a problma krltekint elemzse
s megfogalmazsa. A megoldsi mdszer keresse csak akkor kezddhet el, ha a
feladatot pontosan ismerjk. Ahhoz, hogy egyrtelm legyen, mi is a feladat, a
feladat lerst rsban rgzteni kell! A feladat lerst feladat specifikcinak is
szoks nevezni. Az algoritmust csak a feladat pontos megfogalmazsa utn
prbljuk elkszteni, mgpedig programnyelvtl fggetlenl.
Az algoritmus tervezsnek alapja a rszekre bonts. Mivel - elssorban nagyobb
llegzet program esetn - a feladatot egyszerre nem tudjuk megoldani, azt kisebb
rszekre kell bontani. A rszeket meg kell oldani, majd a megoldott rszeket ssze
kell lltani. A lebonts illetve sszellts sorn a kvetkez krdsek merlnek
fel: hogyan bontsuk rszekre a nagy feladatot, a rszekre bonts utn hogy fogjunk
hozz a megoldshoz, vgl hogy trtnjen az sszeraks.
Alapveten kt irnyzatot klnbztetnk meg:

A megoldst fellrl lefel fokozatosan, lpsenknt finomtjuk s a kis


feladatokat csak a vgs fzisokban oldjuk meg.
Elszr megoldjuk a kisebb feladatokat, s aztn gondolkodunk az
sszellts struktrjn. Ez az alulrl felfel tervezs.

1.7. A strukturlt s a strukturlatlan program


Egy tetszleges algoritmus a kvetkez elemekbl pthet fel:

Szekvencia: egyms utn vgrehajtand tevkenysgek sorozata.


Szelekci: vlaszts megadott tevkenysgek kzl.
Iterci: megadott tevkenysgek ismtelt, tbbszri vgrehajtsa.
Felttel nlkli ugrs: vezrls tadsa a program egy megadott pontjra.

A csak szekvencikbl, szelekcikbl s itercikbl ptkez programot


strukturlt programnak nevezzk. A strukturlt programozsban a ciklusbl val
kiugrs fogalma ismeretlen. Ebbl kvetkezik, hogy a program minden
szekvencijnak - s gy az egsz programnak is - egyetlen belpsi s egyetlen
kilpsi pontja van, ennlfogva a program lnyegesen ttekinthetbb.
Egy bonyolultabb algoritmust nem lehet fejben megtervezni, ahhoz eszkzk
kellenek. Olyan eszkzre van szksg, mely ltalnosan elfogadott, s msok is
ismerik, hasznljk. Az algoritmusok ttekinthet formban val lersra
szmtalan eszkz ltezik. Ilyen a mondatszer lers, a folyamatbra, vagy a
struktogram. Ezek kzl rszletesebben a folyamatbrval ismerkednk meg.

1.8. A folyamatbra
A folyamatbra segtsgvel a program dinamikus viselkedst, folyamatt
rszletekbe menen brzolni tudjuk. Tekintsk most t a folyamatbra elemi
jellseit. A program folyst nyilak mutatjk, ahol trtnik valami, ott valamilyen
csompont van. Tevkenysgcsomponton thaladva a tevkenysg vgrehajtdik.
Dntscsomponthoz rkezve a Feltteltl fggen a vezrls az Igaz vagy a
Hamis (Igen vagy Nem) gon folytatdik. A gyjtcsomponton val thalads
mindig egyrtelm.

Brmely program e hrom elem segtsgvel felpthet, a tbbi jells csak


brzolsi knnyebbsg. Kapcsoldsi pontot akkor hasznlunk, ha helyhiny miatt
brnkat egy msik lapon folytatjuk. Az adatbevitel s az adatkirs jellsre is
kln elemeket hasznlunk.

Az itercikat a kvetkezkppen ptjk fel: a vezrls ismtelten visszatr a


ciklusmag el, de az jbli vgrehats eltt egy dntscsompont tallhat, mely
megengedi a ciklus elhagyst. Alapveten kt fajta iterci ltezik - az egyik a
ciklusmag eltt tesztel, a msik a ciklusmag utn, ezek az elltesztel illetve
htultesztel ciklusok.

A nvekmnyes ciklus azt jelenti, hogy a ciklusmagban megadott tevkenysg


elre meghatrozott szmban, valamely vltoz (ciklusvltoz) nvekv rtkeire
hajtdik vgre valamettl valameddig. Olyan iterciknl hasznljuk, amelyeknl
pontosan tudjuk a vgrehajtsok szmt. A nvekmnyes ciklust folyamatbrn
elltesztel ciklussal tudjuk megvalstani gy, hogy az brba beptjk a
ciklusvltoz rtknek belltst, illetve mdostsait.
Ezek utn nzzk meg, hogy a folyamatbra segtsgvel hogyan tudjuk lerni a
krts pldnkat. Emlkeztetl a plda: nincs krtm, hozni kellene a Tanszkrl.
Rszletezve:
1. Megkrdezem, vllalkozik-e valaki arra, hogy bemenjen krtrt a
Tanszkre.
2. Ha igen, menjen be a Tsz-re.
3. Krje meg Editet, adjon egy darab krtt.
4. Ha nincs Edit, keressen valaki mst, s krjen tle krtt.
5. Jjjn vissza a krtval, adja ide.
6. Ha nem tall senkit, jjjn vissza res kzzel.
7. Ha nem vllalkozik senki a hallgatk kzl, bemegyek n.
8. Kiveszek a szekrnybl egy darab krtt.
9. Visszajvk az eladba, s folytatjuk az rt.

1.9. A struktogram
A struktogram egy strukturlt brzolsi mdszer, megalkotja Chapin (ezrt
Chapin chart-nak is hvjk). E jells annyiban hasonlt a folyamatbrhoz, hogy a
tervezs itt is kvlrl befel trtnik. Sajnos, ahogy a struktrban lejjebb
megynk, gy egyre kevesebb hely marad tevkenysgeink lershoz. Pldk az
albbi brkon lthatk.

1.10. A mondatszer lers


A mondatszer lers lnyege, hogy a programot mondatszer elemekbl ptjk
fel. Annyiban tr el a folyamatos rstl, hogy bizonyos szablyokat be kell
tartanunk, a struktrk kpzsre megllapods szerinti formkat s szavakat
hasznlunk. Nzznk nhny pldt:
Be- s kivitel:
Be: ...felsorols...[megszortsok]
Ki: ...felsorols...[kirsi formk]

Szekvencia:
Tevkenysg1
Tevkenysg2
Tevkenysg3

Egyg szelekci:
Ha Felttel teljesl, akkor Tevkenysg(ek) vgrehajtsra kerl(nek), egybknt
nem. A program az Elgazs vge utn folytatdik:
Ha Felttel akkor
Tevkenysg(ek)
Elgazs vge

Ktg szelekci:
Ha Felttel teljesl, akkor Tevkenysg(ek)1 kerl(nek) vgrehajtsra, egybknt
Tevkenysg(ek)2. Mindkt esetben a program az Elgazs vge utn folytatdik:
Ha Felttel akkor
Tevkenysg(ek)1
egybknt
Tevkenysg(ek)2
Elgazs vge

2. A szoftverfejleszts
Egy adott problmnak szmtgp segtsgvel val megoldsa egy hossz s
bonyolult munkafolyamat vgeredmnye. A program elksztsnek
munkafolyamatt a felmerl problmtl a ksztermkig programfejlesztsnek
nevezzk. Nagy feladat esetn, amikor tbb programbl ll rendszerrl van sz,
rendszerfejlesztsrl beszlnk. A szoftver fejlesztse alapveten ngy rszbl ll:
elemzs, tervezs, kdols s tesztels (l. az brt). Az els kett a problma
megoldst clozza, mg az utbbi kett a megoldst implementlja (megvalstja),
azaz lefordtja a szmtgp nyelvre.

2.1. Az elemzs
Az elemzs sorn felmrjk a helyzetet: mire van szksg, mik a lehetsgek. A
problma megoldsnak ebben a szakaszban a szban forg problmt minden
szempontbl egyrtelmen definilni kell, ezzel a problmamegolds tbbi fzist
idben lnyegesen lecskkenthetjk s hibamentesebb tehetjk. Ehhez az
szksges, hogy a feladat megfogalmazsa legyen teljes, rthet, egyrtelm,
pontos, tmr, szemlletes, elrelt, jl felptett s tagolt.
A fejleszts e szakaszban tisztzni kell tbbek kztt, hogy milyen adatokat vr a
program, s milyen adatokat kell annak produklnia. A beviteli (input) adatokkal
kapcsolatban a kvetkez krdsek merlhetnek fel:

Mik az input adatok?


Milyen a beviteli formjuk?

Milyen kapcsolatok vannak a beviteli adatok kztt?

A kiviteli (output) adatoknl tbbek kztt a kvetkezket kell megllaptani:

Milyen adatokat kell megrizni?


Milyen formban kell az adatokat megrizni?
Mennyi adatrl van sz?
Hogyan tudjuk ezeket az adatokat ellltani?

Az elemzs fzisnak dokumentuma kisebb feladatok esetn a feladatspecifikci,


vagyis a feladat pontos megfogalmazsa. Nagyobb rendszerek esetn rendszertervet
kell kszteni.

2.2. A tervezs
A programtervezs feladata, hogy az analzis sorn sszegyjttt informcikat s
adatokat alapul vve logikailag vglegesen kialaktsa az adatstruktrkat s az
adatokon manipull algoritmusokat. A program tervezse komoly, kreatv
tevkenysg, mely nagy szakrtelmet ignyel. Hogy milyen tervezsi mdszert
vlaszt az ember, az a kvetkez dolgoktl fgghet:

Milyen szmtgpre kszl a program?


Mekkora a megoldand feladat?
Milyen mdszerek llnak rendelkezsre?
Mik a tervez lehetsgei szoftverekben, felkszltsgben?

A programtervezs alapja a rszekre bonts. A feladatot bonyolultsgtl


fggen rszekre kell szedni. A trekvs az hogy a rszek minl fggetlenebbek
legyenek egymstl, hiszen gy a program sokkal ttekinthetbb, a hibakeress,
karbantarts, tovbbfejleszts sokkal knnyebb, egyrtelmbb.
A programtervezsi mdszerek llandan vltoznak. Hossz ideig a modulris
programozs volt a jellemz. Lnyege, hogy a programot fellrl lefel
funkcionlisan egyre kisebb lpsekre (modulokra, eljrsokra) bontjuk. A
modulris programozst a Jackson-fle programtervezsi mdszer vltotta fel,
amely szintn fellrl lefel bontja a programot, de itt a programszerkezet
felptst az adatok szerkezete hatrozza meg. Napjainkban az objektum-orientlt
programtervezs hdt, segtsgvel kisebb energia-befektetssel sokkal
biztonsgosabban tudjuk megtervezni a programjainkat. A mdszer lnyege az,
hogy az egyes objektumok adataikkal s funkciikkal egytt a program tbbi
rsztl fggetlenek, s teljes mrtkben felelsek a rjuk bzott feladatrt.

A tervezsi szakasz dokumentcija a programterv. A program megtervezsvel a


problma lnyegileg meg van oldva, mr csak a kdols van htra a
megvalstshoz.

2.3. A kdols
Ha a terv elkszlt, akkor jhet annak implementlsa (kivitelezse). Az
implementci els szakasza a programterv kdolsa egy adott programnyelven,
vagyis a forrsprogram elksztse. Ez a szakasz elgg mechanikus, hiszen az
elzekben a feladat logikai megoldsa elkszlt. A programnyelv, amelyen
kdolunk, lehet brmilyen (mi a Turbo Pascal-t fogjuk hasznlni). A kdolsi
szakasz dokumentcija a forrsnyelvi lista. Egy forrsnyelvi lista akkor j, ha
pontosan a programterv alapjn kszl, ttekinthet, olvashat, tmr s
egyrtelm megjegyzsekkel van megtzdelve.
A forrsprogram begpelsvel termszetesen mg nem vagyunk kszen, hiszen
brmilyen gondosan is terveztnk s brmilyen jl gpelnk, az mg tele lehet
hibval. Szintaktikai hibnak nevezzk azt a hibt, amelyet a fordtprogram nem
tud rtelmezni. Ennek oka lehet gpelsi hiba, vagy az, hogy nem ismerjk elgg a
programnyelvet. A szintaktikai hibk kiszrse utn a futtathat program tesztelse
kvetkezik.

2.4. A tesztels
Prbafuttatskor mg sok hibt szlelnk, ez termszetes. Azonban minl
alaposabbak voltak az elz fzisok, annl nagyobb a valsznsge, hogy a
program gy fog mkdni, ahogy elkpzeltk. A program futsakor mg sokfle
hiba derlhet ki. A program lellhat pldul futsi hibval, de kiderlhet az is, hogy
a program rosszul mkdik. A kisebbik baj, ha a hiba forrsa pldul egy-egy
utasts helytelen hasznlata. A kellemetlenebb a logikai, az n. szemantikai hiba.
Ilyen esetben a problma mlyen gykerezhet, mg az is elkpzelhet, hogy a hibt
a problma elemzsi fzistl kezdve hurcoljuk. A tesztels folyamn klnbz
prbaadatokkal futtatjuk a programot, amelyeket gy kell sszelltani, hogy
minden lehetsges rtket felvegyenek.
A program tesztelsekor a kvetkezkre kell figyelni:

Pontosan gy mkdik a program, ahogy az a feladat lersban szerepel?


Nem lehet elrontani?
Elg hatkony?
Biztonsgos a hasznlata?

A program felhasznlbart (knyelmes a hasznlata, eszttikus, nem


idegest)?

A tesztelsi fzis dokumentcija a ksz program s a tesztadatok listja.

2.5. Dokumentls
Minden fzisnak megvan a maga termke", dokumentcija. A program
fejlesztsnek befejeztvel a teljes dokumentcit (vagyis mind a ngy fzis
dokumentcijt) meg kell rizni. Csak a teljes dokumentci birtokban lehet
ksbb a programon vltoztatsokat eszkzlni. A program fejlesztst vgigksr
dokumentcik sszessgt fejleszti dokumentcinak nevezzk.
A fejleszti dokumentci rszei:

a feladatspecifikci,
a programterv,
a forrsprogram,
a ksz program,
a tesztadatok listja,
a program hasznlatnak ismertetse.

A felhasznli dokumentci rszei:

a feladat lersa,
a szksges hardver krnyezet,
a szoftver krnyezet (opercis rendszer, a futtatshoz szksges egyb
szoftverek),
a program betltse, indtsa,
a program hasznlatnak rszletes lersa: billentyk, menk stb. hasznlata,
mkdsi lers,
kpernytervek, listatervek,
hibalehetsgek, a hibazenetek felsorolsa,
biztonsgi elrsok (pl. adatok idszakos mentse).

3. A Pascal programozsi nyelv


A Pascal magas szint programozsi nyelv, amelyet Niklaus Wirth alkotott meg
Zrichben az 1960-as s 70-es vek forduljn. A nyelvet Blaise Pascalrl, a nagy
17. szzadi francia matematikusrl s filozfusrl nevezte el. Az Algol s ms
nyelvek logikjbl kiindulva, azokat - fleg az adatszervezs tern - j elemekkel
bvtve, remek programnyelvet alkotott. A Standard Pascal meglehetsen puritn
nyelv volt, csak a legszksgesebb parancsokat s utastsokat tartalmazta, a
programoznak meglehetsen sok munkja volt. A programnyelv azonban valban
jl hasznlhat, kzel ll az emberi gondolkodshoz s knnyen elsajtthat. Ezrt
aztn nem kell csodlkozni, hogy rohamtempban terjedt el a vilgban - fleg a
szemlyi szmtgpek megjelense ta. Szoftvercgek sora adta ki sajt vltozatt,
kiegsztve jabb parancsokkal, fggvnyekkel, mikzben a kezelst egyre
knyelmesebb tettk, integrlt keretrendszert alkottak hozz stb. Az egymssal
konkurl szoftvercgek Pascal vltozatai kzl ktsgtelenl a Borland cg lett a
legsikeresebb. Az vek sorn a Turbo Pascal verzik kztt ma a 7.0-nl tartanak,
de mr vekkel ezeltt megjelent a Windows-os vltozat is. St megjelent a Delphi
nev, szintn Pascal-kd Windows-os fejlesztrendszer 16 s 32 bites vltozata is.
Az oktatsi segdletben a Turbo (Borland) Pascal 7.0 verzival foglalkozunk.

3.1. A Pascal nyelv szerkezete


A Pascal program nyelvezete ersen emlkeztet a programstruktra mondatszer
lersra. Az angolul tudk a parancs- s utastsnevek ismeretben - a nyilvnval
ktttsgekkel - szinte szablyos mondatokat fogalmazva rhatjk meg
programjaikat. Termszetesen az angol nyelvet nem ismerk szmra sem jelent
problmt a programozs Pascal nyelven.
A Pascal nyelv programozs ismertetst tbbflekppen el lehet kezdeni.
Ismertethetjk a program ptelemeit, a szimblumokat, a foglalt szavakat, de
taln clszerbb, ha a program ltalnos szerkezetvel kezdjk.
Egy Pascal-program a kvetkez f rszekbl ll:

programfej,
deklarcis rsz,
az eljrsok s a fggvnyek csoportja,
fprogram.

program ProgramNv;
uses szabvnyos s egyb egysgek; PROGRAMFEJ
type adattpusok;
const globlis konstansok;

DEKLARCIS RSZ

var globlis vltozk;


label globlis cmkk;
function FggvnyNv1;
begin
...
end;
procedure EljrsNv1;
begin
...
end;

ELJRS- s FGGVNYBLOKK

procedure EljrsNv2;
begin
...
end;
BEGIN
...
END.

FPROGRAM

A programfej ktelezen a Program kulcsszval kezddik, amelyet a program neve


(azonostja) kvet. J, ha programnvknt olyan nevet adunk, ami utal a program
feladatra, s clszer a programot ezen a nven is menteni (hajlkony vagy merev) lemezre. Mentskor a program automatikusan .PAS kiterjesztst kap, ezt kln
nem is kell megadnunk. A fjlnv-ads ktttsgei egybknt ugyanazok, mint a
DOS-ban (8 angol karakter stb.). A programfejben kell megnevezni a uses kulcssz
utn azokat a rendszerhez tartoz egysgeket (unit-okat), amit a programrs
megkvetel. Az egysgekrl a ksbbiekben mg lesz sz, most csak annyit, hogy
ezekben helyezkednek el - megfelel csoportostsban - a Turbo Pascal parancsai,
utastsai. Ilyen unit-okat termszetesen a programoz is kszthet, de ez inkbb
csak a nagy mret programok esetn indokolt.
A deklarcis rszben azt adjuk meg, hogy milyen tpus vltozkkal fogunk
dolgozni (type), az adott tpus vltozknak milyen nevet adunk (var), milyen
llandkat (konstansokat) szerepeltetnk a programban (const), valamint itt kell
megadni a programban alkalmazott cmkket is (label). Mindezek a jellemzk
globlis jellegek, ami azt jelenti, hogy rvnyessgi tartomnyuk az egsz
program. Ebbl az is kvetkezik, hogy ugyanezeknek megvannak a loklis
megfelelik is, amelyek a programnak csak egy meghatrozott rszre rvnyesek.
Az eljrs- s fggvnyblokk azokat az eljrsokat s fggvnyeket tartalmazza,
amelyeket a programtervezs sorn hoztunk ltre. Az eljrsokban azokat a
feladatrszeket helyezzk el, amelyek logikailag, funkcionlisan egy egysget
kpeznek (a feladat rszekre bontsrl mr volt sz korbban!). Egyszer esetben
pldul az egyik eljrsban az adatbevitelt szerepeltethetjk, egy msikban az
adatokkal val manipullst, egy harmadikban pedig az eredmnyek kiratst.

Az eljrs mindig a procedure kulcsszval kezddik, amit a neve kvet, utna


opcionlisan a paramterek, a sort pedig pontosvesszvel zrjuk le. A
vgrehajtand parancssorokat a begin (kezds) utn soroljuk fel, az eljrs vgt
pedig az end (vge) szval jelljk, utna pedig pontosvesszt tesznk (a begin
utn soha nem tesznk pontosvesszt!). Egybknt a parancssorokat is mindig a
pontosvesszvel kell lezrni. Hiba runk kln sorba valamit, ha nem tesznk
kzjk pontosvesszt, a fordt egy sornak fogja tekinteni az egszet. A fggvny
felptse nagyjbl hasonl az eljrshoz, csak function kulcsszval kezddik, s
mindig van paramtere.
A fprogram szintn a begin s az end kulcsszavak kztt helyezkedik el, de itt az
end utn pontot tesznk, ezzel jelezzk, hogy vge a programnak. A fprogram a
programunk vgrehajt rsze. Itt hivatkozunk azokra az eljrsokra s
fggvnyekre, amelyek az eljrs- s fggvnyblokkban helyezkednek el. Pldul
megnevezzk az adatbevitelrt felels eljrst, majd a feldolgoz eljrst, vgl
pedig a kirat eljrst.

3.2. A Pascal nyelv ptelemei


A Pascal nyelven megrt program ptelemei, azaz legkisebb rtelmezhet
egysgei a kvetkezk:

szimblumok,
fenntartott szavak,
azonostk,
cmkk,
konstansok,
elvlasztjelek.

A programban szabadon hasznlhatjuk a kis- s nagybetket, a fordt nem tesz


klnbsget kzttk.
a) Szimblumok: A programban bizonyos szimblumokat hasznlunk. Gondoljunk
csak a matematikai mveletek vgzsre (mveleti jelek, relcis jelek, zrjelek
stb.). A Pascal programokban hasznlatos szimblumokat tartalmazza az albbi
tblzat.
+

<

>

<=

>=

<>

'

..

()

[]

{}

(* *)

b) Foglalt szavak: A Pascal nyelvnek vannak bizonyos fenntartott szavai, amit a


rendszer hasznl. A foglalt szavakat, vagy kulcsszavakat a programoznak nem

szabad hasznlni a programban vltozk, konstansok, eljrsok, vagy brmi ms


elnevezsre. A foglalt szavakat foglalja ssze a kvetkez tblzatban.
and

asm

array

case

const

constructor destructor

div

do

downto

else

end

exports

file

for

if

implementatio
n

function goto

begin

in

inherited inline

interface

label

library

mod

nil

not

object

of

or

packed procedure program

record

repeat

set

shl

shr

string

then

to

type

unit

until

uses

var

while

with

xor

c) Azonostk: Az azonostk a program bizonyos elemeinek elnevezsre


szolglnak. Azonostkat maga a Pascal is tartalmaz, pl. az Integer, a ReadLn,
vagy a Write. Vannak azonban olyan elemek, amiket neknk kell elnevezni, pl. a
programnak nevet kell adni, az egyes vltozkat, konstansokat, eljrsokat is el kell
keresztelni.
Az azonost ASCII karakterekbl llhat (kis- s nagybetk, szmjegyek). Vannak
azonban bizonyos megszortsok:

kis- s nagybetket (kezet nlkl!) tetszs szerint hasznlhatunk;


szmmal nem kezddhet, de lehet benne;
ktjel nem, de alhzsjel ( _ ) lehet benne;
szkz, *, !, ? nem lehet;
azonos vltoz- vagy konstansnv nem szerepelhet ktszer (eltr tpus
esetn sem);
fenntartott sz nem lehet;
hossza nem meghatrozott (de csak az els 63 karakter szmt).

Az elmondottak rtelmben j nevek lehetnek a kvetkezk:


Hki, Hallgatok, Folyo_Ev, Bbe1, Bbe2, ALMA

Ezek azonban rosszak:


2Bbe, Hallgatk, Foly v, 222, Egy*Egy, Gyere!

Ahhoz, hogy a fordt tudja, hogy pl. a Hallgatok egy vltoznk azonostja, a
deklarcis rszben kzlni kell vele. Sajt vltozink nevt a tpusmegads s a
vltozk felsorolsa helyn adhatjuk meg (a type s a var kulcsszavak utn). Az
azonos tpus vltozkat vesszvel elvlasztva lehet felsorolni, az utols utn pedig
pontosvesszt kell tenni.
d) Cmkk: A cmkket Wirth az eredeti Pascal nyelvben nem is akarta
szerepeltetni, mert szerinte nlkle is megoldhat brmilyen programozsi feladat.
Mire is hasznljuk a cmkket? Arra, hogy a program brmely pontjrl
elkldhetjk a vezrlst a program egy msik pontjra. A goto 10; utasts
segtsgvel pldul a program vezrlse az utasts helyrl tugrik a 10: cmkvel
megjellt helyre (a cmke utn kettspontot kell tenni!). A cmke elhelyezkedhet a
goto eltti vagy utni programrszen. A cmke nemcsak szm lehet, hanem sz is
(pl. Ide, vagy Gyere). Ahhoz, hogy a fordt felismerje a goto utni cmkt, a
deklarcis rszben a label kulcssz utn kell elhelyezni. Ha tbb cmke is van,
akkor vesszvel elvlasztva kell felsorolni ket, a vgn pontosvesszvel.
e) Konstansok: A konstans lehet szm- vagy szvegkonstans. llandkat akkor
adunk meg, ha egy bizonyos szmrtket vagy szvegrszt a programban gyakran
hasznlunk. Ezeket az adatokat kzvetlenl a programba (pl. kpletbe,
sszefggsbe) is be lehet rni, de ha esetleg a programfejleszts sorn mdostani
szksges, akkor sokkal egyszerbb llandknt meghatrozni, s csak ezt az egy
rtket javtani. Ilyen llandk lehetnek pldul az 'Osszesen:', 1456, 21E7, 273.16. A konstansokat a const kulcssz utn egyenlsgjelet hasznlva
ismertetjk, pl. gy:
sum = 'Osszesen:'; ,

vagy
T0abs = -273.16; .

f) Elvlaszt elemek: A Pascal program elvlaszt szimblumai a szkz s a


sorvg-jel. A szkznek a programozs elemeinek felsorolsakor van jelentsge (a
hasznlatos szavak kz szkzt tesznk, ez termszetes), a sorvg jel pedig
ltalban pontosvessz (a program vgn lv end utn pont). Ha egy programsor
utn nem tesznk pontosvesszt, akkor a fordt a kvetkez sort is az elz
folytatsnak fogja tekinteni.
A forrsnyelvi program sorokbl ll. Minden sor maximlisan 126 karaktert
tartalmazhat, de ezt nem clszer kihasznlni. A kpernyn egybknt is
maximlisan csak 80 karakter fr el (st a szvegszerkeszt ablak kerete miatt mg
kevesebb). A sor vgt pontosvesszvel jelezzk a fordt szmra.

A program adott helyein megjegyzseket helyezhetnk el, ha indokolt. A


megjegyzseket kapcsos zrjelek kz tesszk, de hasznlhatjuk a (* s *) prokat
is. Ilyen megjegyzs lehet pldul az, hogy
{Az adatbeolvasas kezdete} ,

vagy
(* Az n szerinti ciklus vege *) .

3.3. A Pascal tpusai


Minden program adatokkal dolgozik. A fordt szmra azonban nem mindegy,
hogy egy adat betkarakter(eke)t, egsz szmot, vagy tizedes trtet tartalmaz, ettl
fgg ugyanis az, hogy mekkora memriaterleten troljuk az adatot. A Borland cg
Pascal verzii egyre szlesebb skljt nyjtjk a klnbz tpusoknak, az egsz
szm jelzsre pldul t klnbz lehetsg is rendelkezsre ll.

3.3.1. Egyszer tpusok


Az egyszer tpusokhoz tartoz vltozk tpusazonostjt nem kell a type kulcssz
utn ismertetni. Tekintsk t rviden ezeket a tpusokat:
shortint 8 bit eljeles
integer
Egsz tpusok

Vals tpusok
Karakter tpus

longint 32 bit eljeles

-32768..32767
-2147483648..2147483647

byte

8 bit eljel nlkli 0..255

word

16 bit eljel nlkli 0..65535

real

6 bjt 11-12 j.

-2.9E-39..17E38

single

4 bjt 7-8 j.

-1.5E-45..3.4E38

double

8 bjt 15-16 j.

-5.0E-324..1.7E308

char

1 bjt ASCII

(0 .. 255)

Karakterlnc tpus string[h]


Logikai tpus

16 bit eljeles

-128..127

ASCII

boolean 1 bjt 0, 1

h max:255
False,True

a) Az egsz tpus: A kezd programozk hajlamosak arra, hogy az egsz tpust


automatikusan integer-nek lltsk be. Ha megnzzk azonban azt, hogy az integer
tpus 32 bit memriaterletet ignyel, a shortint vagy a byte tpus pedig csak 8-at,
akkor ltjuk, hogy nem mindegy, melyiket jelljk meg egyik, vagy msik
vltoznk tpusnak. Ha pldul tudjuk, hogy valamely egsz tpus vltoznk

legfeljebb csak a 10-es nagysgrend krli rtket vesz fel, akkor elegend
shortint tpust megjellni. Ha radsul mg azt is tudjuk, hogy ez az rtk negatv
nem lehet, akkor a byte-ot vlaszthatjuk. Azt azrt meg kell vallani, hogy ennek
elssorban nagyobb programrendszereknl van jelentsge.
b) A vals tpus: Hasonl megfontolsokat lehet tenni a vals tpusok
megjellsekor is, de itt csak hrom tpus kzl vlaszthatunk. Az ltalnos a real
tpus. Egsz tpus vltoz is belefr, fleg ha az egsz tpusoknl nagyobb
szmbrzolst kvnunk meg.
c) A karakter tpus: Az ASCII karakterek mindegyike megadhat karakter (char)
tpusnak. Ez azt jelenti, hogy nemcsak a betkarakterek, de a szmok is lehetnek
char tpusak. Ilyenkor azonban a szmokkal nem tudunk matematikai mveleteket
vgezni (az tkonvertlsra azrt van lehetsg). Karakter tpus csak egyetlen
karakter lehet, s ezeket aposztrfok kz kell tenni (pl. 'K', vagy '2'). Az ASCII
karakter kdjt is megadhatjuk, ilyenkor # jelet tesznk a kd el (pl. #248, ami a
[fok] jelnek felel meg). Ekkor azonban nem hasznlunk aposztrfokat.
d) A karakterlnc tpus: A karakterlnc tulajdonkppen char tpus karakterek
sorozata (a rgebbi Pascal verzikban gy is kellett definilni). Ezt is aposztrfok
kz tesszk, pl. 'Eredmeny'. A karakterlnc tpust a string kulcsszval jelezzk. A
kulcssznak lehet paramtere, ami a karakterlnc hosszt jelenti. A plda szerinti
sz hossza 8 karakter, ezrt ezt a szt a string[8] tpusazonost rhatja le. A
paramter maximum rtket jelent, ennyi, vagy ettl kevesebb karakterbl llhat a
vltoz, klnben fordtskor hibazenetet kapunk. Az 'Eredmeny' karakterlncnak
adhatunk pldul string[15] tpusazonostt is. A karakterlnc legnagyobb hossza
egybknt 255 karakter lehet (ebben az esetben nem kell paramtert jellni).
e) Logikai tpus: A logikai tpust a boolean kulcsszval jelljk. Kt rtke van,
true (igaz) s false (hamis). A vltoz trolsa 1 bjton trtnik: true=1, false=0.

3.3.2. sszetett tpusok


Az eddigiekben ismertetett tpusokkal nem kell trdnnk, ami a tpusazonostst
illeti (magyarul: nem kell a type mgtt felsorolni). A kvetkezkben olyan
tpusokrl lesz sz, amelyek sszetettek. Az ilyen tpus vltozk tbb
meghatrozott rtket is felvehetnek. Ezeket a tpusokat azonban a type kulcssz
utn ismertetni kell.
a) A felsorolt tpus: Az ilyen tpust gy adjuk meg, hogy valamennyi lehetsges
rtkt felsoroljuk. Az rtkeket zrjelben, egymstl vesszvel kell felsorolnunk:
Madarak = (fecske, golya, sas, bagoly);
Lanyok = (Anna, Jolan, Eva, Adrienn);

Napok = (Hetfo,Kedd,Szerda,Csutortok,Pentek,Szombat,Vasarnap);

Az egyes rtkekhez sorszmokat rendel a Pascal (0, 1, 2, 3, ... ).


b) Az intervallum tpus: Hasonl az elzhz, de itt egy intervallumot,
pontosabban annak als s fels hatrt adjuk meg. Tulajdonkppen az intervallum
tpus egy mr ltez sorszmozott tpus intervalluma. Pldk:
Betuk : 'A'..'Z';
MunkaNapok : Hetfo..Pentek;

Az els plda a char tpus, a msodik plda pedig az elz pontban ismertetett
Napok sorszmozott tpus intervalluma. Az intervallum megadsnl
megfigyelhetjk, hogy a Pascal az intervallumok jellsre kt pontot (..) hasznl.
c) A rekord tpus: A rekord tulajdonkppen egy adatmez, amely klnbz
tpusokbl llhat, de egy egysgknt kezelhet. A vltozkat a record s az end
kulcsszavak kztt soroljuk fel. Nzznk egy pldt:
Datum = record
Ev : 1900..2000;
Ho : 1..12;
Nap : 1..31;
end;
Hallgato = record
VezNev, KerNev : string[20];
SzulIdo : Datum;
TanKor : string[4];
TanAtlag : real;
end;

Lehetsg van arra is, hogy a rekord vltozi kztt egy msik rekordot
alkalmazzunk. Pldnkban gy van begyazva a Hallgato nev rekord tpus
vltozba a Datum nev. A programban egy ilyen rekordos vltozra a
kvetkezknt hivatkozhatunk: Hallgato.TanKor.
d) A tmb tpus: A tmb tpust a kulcsszava utn array tpusnak is nevezik. A
tpus meghatrozott szm s tpus elembl ll. Az elemek szmt (pontosabban
intervallumt) szgletes zrjelbe rt indexekkel adjuk meg, az elemek tpust
pedig az of kulcssz utn jelljk. Az elemekre a programban az index alapjn
hivatkozhatunk. Pldk:
Oszlop = [1..10] of real;
Sor = array[1..20] of real;

A fenti deklarciban szerepl adatokra pldul az Oszlop[3] vagy a Sor[15]


formban hivatkozhatunk. A kt deklarci egyestsbl ktdimenzis tmbt
(tblzatot) hozhatunk ltre:
Tablazat = array[1..10,1..20] of real;

A hivatkozs mdja ebben az esetben: Tablazat[3][15], vagy egyszerbben:


Tablazat[3,15].
Az array tpus hromdimenzis tmb ltrehozsra is hasznlhat:
Tomb = array[1..10,1..20,1..4] of real;

e) A halmaz tpus: A halmaz egy sorszmozott alaptpus intervallumnak


sszessgt foglalja magban. Pldul:
KarakterKeszlet = set of char;

Az ismertetett tpusokon kvl van mg nhny olyan, ami nem kpezi a tananyag
rszt (objektum, llomny, mutat tpusok). Ezekrl a Pascal referenciaknyvek
adnak tjkoztatst.

4. A Turbo Pascal keretrendszer


A rendszer teleptsvel kapcsolatos tudnivalkra jelen kiadvnyban nem
vllalkozhattunk, feltteleztk, hogy a program megfelel mdon mr teleptve van
a szmtgpre.

4.1. A kperny felptse


A program indthat a DOS promptrl is s a Windows-bl is. Elbbi esetben a TP
parancsot kell berni s Enter-t nyomni. Utbbi esetben egyszeren a Turbo Pascal
ikonra kell ktszer kattintani. Brmely megoldst vlasztjuk, megjelenik a
keretrendszer kpernyje.

A kperny fels rszn ltjuk a mensort (vagy fment). A menk kztt az


egrrel mozoghatunk, illetve vlaszthatunk, de hasznlhatk a nylmozgat
billentyk is. A mensorba az F10 funkcibillentyvel mehetnk fel. Valamely
menttel kivlasztsa Enter-rel, vagy egrkattintssal lehetsges. Ekkor legrdl
egy almen, amelyben a le-fel kurzormozgat nyilakkal (s az egrrel)
mozoghatunk. Az albbi bra a megnyitott File ment mutatja.

Aki ismeri a Windows-t, sok hasonlsgot fedezhet fel a menrendszer


hasznlatban, itt is vannak bizonyos egyezmnyes jelek az egyes menttelek
utn. Pldul lthatunk pontokat egyes cmek utn. Ez azt jelenti, hogy
prbeszdablak nylik meg a parancs aktivizlsa utn. Ha egy nylfej ltszik a cm
utn, akkor egy jabb almen nylik meg. Nhny mencm utn azokat a
billentykombincikat tntetik fel, amelyekkel kzvetlenl hvhatk az adott
parancsok.
A kperny als rszn helyezkedik el a sttuszsor. Itt ltalban a legfontosabb
parancsok kzvetlen elrsi lehetsgei ltszanak, de egy-egy parancs kijellsekor
rvid lers is megjelenik hasznlatrl. A kperny kzepn a felhasznli fellet
helyezkedik el, ezen pedig a szvegszerkeszt ablak. Tbb ilyen ablak is
megnyithat egyszerre, valamennyi a benne szerkesztett program nevt viseli (ha
mr el lettek mentve), ezek a Windows-hoz hasonlan egymst tfedve, vagy
egyms alatt helyezkedhetnek el. Az aktv ablak mindig ketts kerettel van
krbevve. Az ablakok kztt az F6, illetve a Shift-F6 billentykkel vlthatunk
(vagy egrkattintssal). Indulskor azonban csupn egyetlen nvtelen ablak ltszik
(NONAME00.PAS).

4.2. Szvegszerkeszts
Korbban mr volt arrl sz, milyen szerkezete van egy programnak, milyen foglalt
szavak vannak a Pascal-ban, milyen mdon lehet vltozinkat elnevezni. Ahhoz,
hogy a program szerkesztst el tudjuk kezdeni, ismernnk kell a Pascal
szvegszerkesztsi szablyait, parancsait. Az egr s az Edit men hasznlata sok
mindent megknnyt, de ltalban gyorsabban jutunk eredmnyre, ha a kvetkez

billentykombincikat hasznljuk (egybknt nem is minden lehetsg adott a


menben):
ltalban mozgs a szvegben: nyilak, PgDn, PgUp
Ugrs a sor elejre:

Ctrl - Q S vagy Home

Ugrs a sor vgre:

Ctrl - Q D vagy End

Ugrs a kperny elejre:

Ctrl - Q E vagy Ctrl - Home

Ugrs a kperny vgre:

Ctrl - Q X vagy Ctrl - End

Ugrs a program elejre:

Ctrl - Q R vagy Ctrl - PgUp

Ugrs a program vgre:

Ctrl - Q C vagy Ctrl - PgDn

Ugrs a blokk elejre:

Ctrl - Q B

Ugrs a blokk vgre:


Beszr md (insert) be, ki:

Ctrl - Q K
Ctrl - V vagy Ins

Sor beszrsa:

Ctrl - N

Sor trlse:

Ctrl - Y

Blokk elejnek kivlasztsa:

Ctrl - K B

Blokk vgnek kivlasztsa:

Ctrl - K K

Sz kivlasztsa:

Ctrl - K T

Blokk msolsa:

Ctrl - K C

Blokk trlse:

Ctrl - K Y

Blokk thelyezse:

Ctrl - K V

Blokk egy karakterrel jobbra:

Ctrl - K I

Blokk egy karakterrel balra:

Ctrl - K U

Keress:

Ctrl - Q F

Csere:

Ctrl - Q A

Keress vagy csere folytatsa: Ctrl - L

A felsorolsban a blokk alatt egy kijellt szvegrszt kell rteni. A


szvegszerkesztsnl mindenkppen meg kell emlteni, hogy - legalbbis kezdetben
- az kezet nlkli karaktereket hasznljuk. Amikor mr megismertk a
lehetsgeket, a karakterlncok esetn hasznlhatunk kezetes karaktereket is.
Ezeket gy lehet berni, hogy az Alt billentyt lenyomva tartva, a billentyzet
numerikus blokkjn betjk a karakter ASCII kdjt.

4.3. A menk
A program hasznlathoz elkerlhetetlen a legfontosabb menpontok ismerete.
Tekintsk t ezrt a Turbo Pascal menit, csak a legfontosabb menpontokat,
parancsokat ismertetve!

4.3.1. A File men


A megnyitott men az elz brn mr lthat volt.
New: j szvegszerkeszt ablakot nyit meg.
Open: Ezzel a paranccsal tlthetnk be egy llomnyt a szvegszerkeszt ablakba.
A kvnt fjlt prbeszdablakbl vlaszthatjuk ki. Az ablak Name mezjben
tvonal s fjlnv is megadhat. Vlasztani kzvetlenl a Files listaablakbl is
lehet.
Save: Menti az aktv ablak tartalmt a megadott nven s a megadott knyvtrba.
Az F2 funkcibillenty ugyanezt a parancsot hvja. A ments funkci csak akkor
funkcionl, ha vltoztats trtnt a programban.
Save as...: Ments ms nven (s/vagy ms knyvtrba).
Save all: Menti az sszes megnyitott ablak tartalmt.
Change dir...: A menponttal msik knyvtrt s/vagy msik meghajtt
vlaszthatunk, jellhetnk ki.
Print: Az aktv ablak tartalmt nyomtathatjuk ki. Ha csak egy rszt akarjuk
nyomtatni, akkor eltte ki kell jellni az adott blokkot.
DOS shell: Ha valamirt ki akarunk lpni a DOS opercis rendszerbe (a Pascal
bezrsa nlkl), akkor ezen a menponton keresztl tehetjk meg. A Pascal-ba az
Exit paranccsal trhetnk vissza.
Exit: Kilps a Pascal-bl. Ha el nem mentett fjljaink vannak, a program rkrdez
a mentsre.

4.3.2. Az Edit men

Az Edit men a szerkesztsi parancsokat foglalja ssze.

Undo, Redo: A legutols mvelet visszavonsra, illetve visszalltsra


hasznlhat.
Cut: Kivgja s vglapra helyezi az elzleg kijellt szveget.
Copy: Vglapra msolja az elzleg kijellt szveget.
Paste: A vglapra helyezett szveget a kurzor helyre illeszti.
Clear: gy trli a kijellt rszt, hogy az nem kerl a vglapra.
Show clipboard: Megtekinthet a vglap tartalma.

4.3.3. A Search men

A menbe a klnbz keressi funkcik vannak beptve.


Find...: Szveget kereshetnk vele. A megnyl prbeszdablakban megadhat a
szveg, megadhat, hogy megklnbztesse-e a kis- s nagybetket (Case
sensitive), vagy hogy csak teljes szavakat kell-e keresni (Whole words only).
Megadhat a keress tartomnya, azaz hogy a teljes szvegben, vagy csak a kijellt
blokkban kell keresni (Global, Selected), a keress irnya elre, vagy vissza
(Forward, Backward) trtnjen s mg sok egyb.
Replace...: Szveget cserlhetnk, a Text to find sorba a keresend, a New text
sorba a csereszveget kell berni. A keressi funkcinl megismert belltsi
lehetsgek itt is megvannak. A Change all bekapcsolsval valamennyi
elfordulst automatikusan lecserli.
Search again: A keressi, illetve csere mvelet ismtelhet.
Go to line number...: A megadott szm sorra ugrik a kurzor.

4.3.4. A Run men

A futtats, hibakeress menje.


Run: Futtatja a programot. Ha a program szvege megvltozott, akkor elbb
automatikus fordtsra s szerkesztsre kerl sor (jegyezzk meg a Ctrl-F9
billentykombincit!).
Step over: A programfuts kvetsre val. Szubrutinokba nem megy be (F8).
Trace into: A programfuts soronknti kvetsre val. Szubrutinok hvsakor a
szubrutinok utastsain is vgigmegy a program. Itt is fontos az F7
funkcibillenty.
Go to cursor: Nem fut vgig a program, hanem csak az aktulis kurzorpozciig.
Program reset: A hibakeress befejezsekor ezzel szabadthatk fel a memrik,
tiszta lappal indul a kvetkez futtats.

4.3.5. A Compile men

A fordts s szerkeszts menje.


Compile: Az aktv ablak tartalmt lefordtja, de nem futtatja.
Make: A program az sszes hozztartoz modullal egytt fordtja le a programot.
Futtathat .EXE llomnyt is kszt. Ismtelt hvskor csak a vltoztatott modulok
fordtdnak le.

Build: Hasonlt a Make-hez, de minden esetben lefordt minden modult.


Primary file...: A Make s a Build ltal hasznlt elsdleges fjl adhat meg. Ha e
helyett mgis az aktulis ablakban lv programot akarjuk lefordttatni, akkor a
Compile menpontot kell vlasztani.

4.3.6. A Debug men

A menpont alatt a hibakeress funkciit talljuk.


Breakpoints...: Trspontokat helyezhetnk el a program klnbz pontjaira.
Evaluate/modify...: A programfuts sorn keletkezett vltoz rtkekre lehet
rkrdezni az Expression mezben, az rtkek a Result mezben jelennek meg.
Add watch...: Egy figyelend vltozt lehet berni, a programfuts sorn
figyelemmel ksrhet az rtk alakulsa.
Add brakepoint...: Trspontokat lehet beszrni a programba.

4.3.7. A Tools men

A Tools men a Turbo Pascal rendszer tbbi elemnek elrst teszi lehetv
amennyiben minden fel van installlva.

4.3.8. Az Options men

Az Options menben a Turbo Pascal klnbz belltsait lehet elvgezni.

4.3.9. A Window men

A Window menben az ablakkezelssel kapcsolatos parancsok vannak


sszefoglalva.
Tile: A megnyitott ablakokat mozaikszeren helyezi el a munkaasztalon.
Cascade: A megnyitott ablakokat tfedssel jelenti meg.
Close all: Valamennyi megnyitott ablakot bezrja. Mdosts esetn rkrdez a
mentsre.
List...: Kilistzza a megnyitott fjlokat.
A tbbi menpont az ablakok mretezsvel, illetve a megnyitott ablakok
kivlasztsval fgg ssze.

4.3.10. A Help men

A Help menben a segtsgnyjts cmszavai vannak elhelyezve. Lehet keresni


cmszavak szerint, meg lehet tanulni a Help kezelst stb. A rendszer emellett
helyzetrzkeny sgval is rendelkezik. Ha pldul egy Pascal kulcsszn vagy
parancson ll a kurzor, akkor a Ctrl-F1 billentyk lenyomsra lerst kapunk az
adott tmrl. Az About... a rendszer verziszmrl s a gyrtrl ad informcit.

5. Programozs Pascal-ban
5.1. Utastsok
A programok futst, azt hogy az adatokkal mit csinljon a program, utastsokkal
lehet vezrelni. Az egyszer vagy elemi utastsok - a feldolgozs legkisebb rszei
- kz az rtkads, az eljrshvs s az ugrs tartozik. Az egyszer utastsoktl
eltren a strukturlt utastsok segtsgvel egymsba gyazott feldolgozsi
szintek hozhatk ltre. Ltezik sszekapcsol, with, feltteles s ciklusutasts.

5.1.1. rtkads
Egy vltoznak rtkadssal adhatunk rtket. Az rtkadsban szerepl kifejezs
lehet rtk, azonost vagy fggvnyhvs. Az rtkads opertora a := jel, aminek
a jelentse: legyen egyenl. Az rtkad opertor bal oldaln egy vltoz ll, jobb
oldaln pedig egy kifejezs. Nzznk nhny pldt:
x:=50;
Hki:=H0-dh;
b5:=Sqr(B[i])+x1;
DarabSuly:=mdb;
y:=Hatvany(a5,3);

5.1.2. Eljrshvs
Egy eljrs (procedure) azonostja megadsval hvhat. Lehet paramteres vagy
paramter nlkli eljrs. A paramteres eljrshvskor a paramtereket zrjelben
kell megadni. Az eljrsoknak a programban ltalban a hvs eltt kell
elhelyezkedni.
Pldk:
AdatKiiras;
Keret(2,2,10,5);

5.1.3. A goto utasts


A programvezrlst tadhatjuk egy - elzleg a label kulcssz utn definilt cmkre, amelynek az utastssal azonos blokkban kell lennie.
Pldul:

goto 1;

vagy

goto Ide;

5.1.4. Az sszekapcsol utasts


Az sszekapcsol utastssal (a begin s az end kulcssz-pr) az egy blokkba
tartoz utastsokat fogjuk ssze.
Pldul:
procedure AdatKiiras;
begin
GotoXY(5,2);WriteLn(Magassag);
GotoXY(5,4);WriteLn(Szelesseg);
end;

5.1.5. A feltteles utastsok


A feltteles utastsokkal a program felttel(ek)tl fgg futsa vezrelhet. Ide
tartozik az if s a case utasts.

5.1.5.1. Az if utasts
Az if (jelentse: ha) felttele csak igaz vagy hamis eredmnyt adhat. Tbbirny
elgazst az if ... then ... else kombincijval vagy a case utastssal lehet elrni.
Pldk:
a) Ha az x rtke kisebb vagy egyenl 10, mindenkppen vegye fel a 10 rtket:
if x<=10 then x:=10;

b) Ha az x rtke kisebb 10-nl, akkor adjunk hozz 1-et, ms esetben legyen az


rtke 10:
if x < 10
then x:=x+1
else x:=10;

5.1.5.2. A case utasts

A case (jelentse: eset) utasts egy szelektorbl s egy elgazsi listbl ll. A
szelektornak sorszmozott tpusnak kell lennie. Az elgazsok kz if-es g is
bepthet. A case utastsban is lehet else g, amelyre akkor kerl a vezrls, ha
nem ltezik a kifejezsnek megfelel elgazsi t. A case utastst minden esetben
end zrja le. Nagyon jl hasznlhat a case utasts - tbbek kztt - menk
tteleinek kezelsre.
Plda: az v hnapjainak napszmnak meghatrozsa a HoNap szelektor
segtsgvel trtnik. Szkv esetn if-es elgazst alkalmaztunk.
case HoNap of
1,3,5,7,8,10,12: NapSzam:=31;
4,6,9,11: Napszam:=30;
2: if SzokoEv then Napszam:= 29
else Napszam:=28;
end;

5.1.6. A ciklusok
A ciklusok segtsgvel megismtelhet a program meghatrozott rsze. Ide
soroljuk a for ... to (downto), a while ... do, a repeat ... until s a with ... do
utastsokat.

5.1.6.1. A repeat ... until utasts


A repeat ... until tpus ciklus felptse: ismteld (repeat) a kvetkez
programrszt addig (until), amg a kvetkez felttel megvalsul. Azaz a program
az until kulcssz utn ll felttelt rtkeli ki. Az utastsok legalbb egyszer
lefutnak, s a ciklus addig ismtldik, amg a felttel igaz lesz.
Pldk:
a) Addig krjnk be adatot, mg a bert rtk 1 s 10 kz esik, az ettl eltr
rtkeket ne fogadja el.
repeat
WriteLn('Irj be egy szamot');
ReadLn(x);
until
(x>=1) and (x<=10);

b) Addig ne trtnjen semmi, amg valamelyik (brmelyik) billentyt le nem


nyomjuk.
repeat until KeyPressed;

5.1.6.2. A while ... do utasts


Az elz ciklusutastssal szemben a while ... do utasts a ciklus elejn vizsglja a
felttelt, s az utastsok csak akkor ismtldnek, ha a felttel igaz.
Plda:
while x<=10 do
begin
osszeg:=osszeg+x;
WriteLn('sszeg=',osszeg);
end;

5.1.6.3. A for utasts


A for utastssal numerikus ciklus kszthet, amelyben a ciklusvltoz megadott
rtkig vltozik. A ciklusvltoz a to szval nvelhet, a downto szval
cskkenthet.
Plda:
for i=1 to 10 do
begin
osszeg:=osszeg+x[i];
WriteLn('sszeg=',osszeg);
end;

5.1.6.4. A with utasts


A with utasts a rekord tpus vltozk mezinek egyszerbb kezelst teszi
lehetv (itt csak jelezzk, hogy az objektum tpusnl is hasznlatos). A
tpusismertets sorn kzlt plda rekordjaira pldul a kvetkez mdon
hivatkozhatunk:
with nlkl:
ReadLn(Hallgato.VezNev);
ReadLn(Hallgato.KerNev);
ReadLn(Hallgato.TanKor);
ReadLn(Hallgato.TanAtlag);

Ugyanez a with utasts segtsgvel:


with Hallgato do begin

ReadLn(VezNev);
ReadLn(KerNev);
ReadLn(TanKor);
ReadLn(TanAtlag);
end;

5.2. Az eljrsok s a fggvnyek


A programban deklarlt eljrsok s fggvnyek arra teremtenek lehetsget, hogy
a programunkat logikailag s funkcionlisan meghatrozott klnll egysgekre
bontsuk. Az eljrsokat s a fggvnyeket a fprogram (vagy egy msik eljrs)
vezrli.

5.2.1. Eljrsok
Az eljrs deklarlsa a procedure kulcsszval indul, amelyet az azonost (nv)
kvet. A nv utn zrjelben paramter(ek) is megadhat(k). Az eljrs szerkezete
kicsiben kveti a program szerkezett. Az eljrs feje utn a bels (loklis)
vltozk, tpusok, konstansok s cmkk felsorolsa kvetkezik (de nem biztos,
hogy vannak). Az utastsokat begin s end; kztt kell felsorolni, minden utastst
logikailag kln sornak tekintve, azaz pontosvesszt tve a vgre (ettl mg lehet
egy sorba tbb utastst rni). A zr end utn is pontosvesszt kell tenni.
procedure EljarasNev(parameter);
loklis cmkk,
konstansok,
vltozk,
tpusok
begin
Utastsok;
end;

a) Plda paramter nlkli eljrsra (adatbeviteli rutin):


procedure AdatBe;
begin
ClrScr;
GotoXY(2,2);WriteLn('Darab neve = ');
GotoXY(20,2);ReadLn(DbNev);
GotoXY(2,4);WriteLn('Darabmagassag =');
GotoXY(20,4);ReadLn(Hdarab);
GotoXY(2,6);WriteLn('Darabhosszusag =');
GotoXY(20,6);ReadLn(Ldarab);
GotoXY(2,8);WriteLn('Homerseklet =');
GotoXY(20,8);ReadLn(Tdarab);

end;{--AdatBe---------}
A fenti pldban megfigyelhetjk, hogy az egyes adatok bekrse eltt kirjuk az
adat megnevezst (pl. 'Darab neve ='), majd utna krjk be az adatot (DbNev).
A kvetkez adatok esetn hasonlan jrunk el. Adatbeviteli kpernyknl
kedvezbb azonban, hogy elszr felsoroljuk a bekrend adatok neveit (ez a
clszerbb, mert ltjuk, hogy mely adatokra lesz szksg), ezt kveten pedig
sorban bekrdezzk az adatokat:
procedure AdatBe;
begin
ClrScr;
GotoXY(2,2);WriteLn('Darab neve = ');
GotoXY(2,4);WriteLn('Darabmagassag =');
GotoXY(2,6);WriteLn('Darabhosszusag =');
GotoXY(2,8);WriteLn('Homerseklet =');
GotoXY(20,2);ReadLn(DbNev);
GotoXY(20,4);ReadLn(Hdarab);
GotoXY(20,6);ReadLn(Ldarab);
GotoXY(20,8);ReadLn(Tdarab);
end;{--AdatBe---------}
gy viszont az eljrs gyakorlatilag kt kln funkcival rendelkez rszre oszlik,
amit tovbbvihetnk egszen odig, hogy akr kt kln eljrsba is helyezzk a
kt rszt:
procedure Kiiras;
begin
ClrScr;
GotoXY(2,2);WriteLn('Darab neve = ');
GotoXY(2,4);WriteLn('Darabmagassag =');
GotoXY(2,6);WriteLn('Darabhosszusag =');
GotoXY(2,8);WriteLn('Homerseklet =');
end;{--Kiiras---------}
procedure AdatBe1;
begin
GotoXY(20,2);ReadLn(DbNev);
GotoXY(20,4);ReadLn(Hdarab);
GotoXY(20,6);ReadLn(Ldarab);
GotoXY(20,8);ReadLn(Tdarab);
end;{--AdatBe1--------}
b) Plda paramteres eljrsra:
A kvetkez eljrs a kperny adott helyre megadott mret s sznsszellts
egyvonalas keretet rajzol. Ez sszesen hat paramter megadst ignyli: a

kezdpont koordinti (x0, y0), az oszlopok s sorok szma (osz, ssz), valamint az
alap s a keret vonalnak szne (alapsz, keretsz).
Procedure Keret
(x0,y0,osz,ssz,alapsz,keretsz:integer);
var o,r,s:integer;
begin
TextBackGround(alapsz);
TextColor(keretsz);
GotoXY(x0,y0);Write(#218);
for o:=1 to osz do Write(#196);
Write(#191);
for s:1 to ssz+1 do begin
GotoXY(x0,x0+s);Write(#179);
for r:=1 to osz do Write(' ');
GotoXY(x0+osz+1,y0+s);Write(#179);
end;
s:=s+ssz;
GotoXY(x0,x0+ssz+1);Write(#192);
for o:=1 to osz do Write(#179);
Write(#217);
end;
Az eljrs hvsa a kvetkez mdon trtnik (a keret a kperny 2. sornak 5.
karakternl kezddjn, 20 karakter szles s 6 sor magas legyen; az alapszn piros,
a keret szne pedig srga legyen):
Keret(5,2,20,6,4,14);
A sznek kezelsrl a segdlet tovbbi rszben mg lesz sz.

5.2.2. Fggvnyek
A fggvny abban klnbzik az eljrstl, hogy rtket (de csak egy rtket) ad
vissza. Deklarlsa a function kulcsszval indul, amelyet az azonost (nv), a
paramterek s az eredmny tpusnak deklarlsa kvet. Az utastsblokkban
adjuk meg a vgrehajtand utastsokat. A fggvnyt az azonostval kell hvni, a
paramterek tpusnak s sorrendjnek egyeznie kell.
A kvetkez plda tetszleges kitevj hatvnyozsra alkalmas fggvnyt mutat be
(a Pascal nyelvben csak a ngyzetre emelsre van beptett fggvny, ez az Sqr).
function Hatvany(alap,kitevo:real):real;
begin
hatvany:=exp(kitevo*ln(alap));

end;

Hasznlata:
Eredmeny:=2.85*hatvany(szam,4);

5.2.3. Paramterek
A paramterekrl sok sz esett mr korbban. Nzzk meg most, mik is ezek.
Paramtereket az eljrsok s fggvnyek deklarlsakor adhatunk meg az
azonost (nv) mgtt, kerek zrjelek kztt. A paramterek tulajdonkppen a
rutinon belli loklis vltozk. A paramterekre az azonostkkal hivatkozhatunk.
A Turbo Pascal hrom paramtertpust klnbztet meg:

rtkparamter,
vltoz paramter,
tpus nlkli paramter.

Ha egy paramtert csak az azonostjval adunk meg, akkor rtkparamterrl


beszlnk. Ha a paramter eltt a var kulcssz ll, s a paramtert tpusdeklarci
is kveti, akkor vltoz paramterrl van sz. Ha a var utn nem ll
tpusdeklarci, akkor tpus nlkli a paramter.

6. Egysgek a Turbo Pascal-ban


Az egysgek (unit-ok) zrt, nll modulok, adott cllal. rhatunk ilyet mi is, de a
Turbo Pascal-nak vannak olyan sajt bels egysgei is, amelyekben a Turbo
Pascal eljrsait s fggvnyeit helyeztk el. Ezeket az anyag utols fejezetben
bcsorrendben ismertetjk.

6.1. A Turbo Pascal standard egysgei


A Turbo Pascal szmos eljrst s fggvnyt knl, ezek megfelel
csoportostsban a szabvnyos egysgekben helyezkednek el. Ha valamely
egysgbl akarunk hasznlni eljrst vagy fggvnyt, akkor a programfejben a uses
kulcssz utn meg kell nevezni az adott egysget (a System kivtelvel). A
standard egysgek rendben a kvetkezk:

System egysg: a szabvnyos nyelvi krnyezethez tartoz nyelvi elemek,


konstansok, vltozk, fggvnyek s eljrsok.
Crt (Cathode Ray Tube) egysg: a kpernys kirs s a billentys bevitel
elemei.
DOS egysg: a Pascal - DOS kapcsolat elemei.
Graph egysg: a rajzols (grafikai objektumok s szvegek) elemei.
Overlay egysg: nagy programok ellltsnak lehetsgei (tlapolsos
technikk).
Printer egysg: a nyomtatra rst teszi lehetv.
Turbo3 s Graph3 egysg: a TP 3.0 verzij programok illesztsre.

6.1.1. A System egysg


Ebben az egysgben azon nyelvi elemek, konstansok, vltozk, eljrsok s
fggvnyek vannak, amelyek a szabvnyos nyelvi krnyezethez tartoznak. Ezt az
egysget valamennyi program ignyli, ezrt a uses utn nem kell, de nem is szabad
szerepeltetni!
A kvetkez felsorols azokat a legfontosabb elemeket tartalmazza a System unitbl, amelyekkel a flvi tanulmnyaink sorn biztosan tallkozunk:
Pi : Real {3.1415926535897932385}
Exp (x:Real) : Real
Ln (x:Real) : Real
Sqr (x)
Sqrt (x:Real) : Real

Abs(x)
Round (x:Real) : Longint
Frac (x:Real) : Real
Int (x:Real) : Real
Trunc (x:Real) : Lingint
Sin (x:Real) : Real
Cos (x:Real) : Real
ArcTan(x:Real)
Concat (St1, St2 ..:String)
Copy (St:String; tl, db:Integer) : String
Delete (var St:String; tl, db:Integer)
Insert (St1:String; var St0:String; tl:Integer)
Length (St:String) : Integer
Pos (St1, St0:String) : Byte
Str (x; var St:String)
Val (St:String; var V; var kd:Integer)
Read (V)
ReadLn (V)
Write (V)
WriteLn (V)
Exit

6.1.2. A Crt egysg


A Crt unit a billentyzetrl val bevitel s a kpernyre rs valamennyi elemt
tartalmazza. Segtsgvel lekrdezhet a billentyzet, bellthatk a kperny
zemmdjai s sznei, ablakok definilhatk, hangok llthatk el stb.
A Crt egysg nhny fontosabb eleme:
ClrScr
Delay (ms:Word)
GotoXY (X,Y:Byte)
KeyPressed : Boolean
ReadKey : Char
TextBackGround (szn:Byte)
TextColor (szn:Byte)
Window (X1,Y1,X2,Y2:Byte)

A Crt egysgben vannak a sznkdok is, ezekkel lehet a kperny, az ablakok s az


rs szneit belltani (a TextBackGround s a TextColor eljrsok
felhasznlsval). A sznkdok a kvetkezk (httrszn 0..7, betszn 0..15):

Black (fekete)

DarkGray (sttszrke)

Blue (kk)

LightBlue (vilgoskk)

Green (zld)

10

LightGreen (vilgoszld)

Cyan (trkiz)

11

LightCyan (vilgostrkiz)

Red (piros)

12

LightRed (vilgospiros)

Magenta (lila)

13

LightMagenta (vilgoslila)

Brown (barna)

14

Yellow (srga)

LightGray (vilgosszrke)

15

White (fehr)

6.1.3. A Dos egysg


A Dos egysg a DOS opercis rendszer elrst teszi lehetv (megszaktsok,
id-dtum, lemezegysgek, llomnyok, DOS-krnyezet stb. lekrdezse):
DiskFree

DiskSize

DosVersion

FindFirst

FindNext

GetDate

GetTime

SetDate

SetTime

6.1.4. A Graph egysg


A Graph egysg - mint nevbl is kvetkezik - a Turbo Pascal grafikai
lehetsgeit foglalja ssze (kb. 70 rutin). Az egysghez hasznlni kell a grafikus
krtyk meghajtit tartalmaz .BGI (Borland Graphics Interface) llomnyokat is.
Nhny Graph elem:
Arc

Bar

Circle

DrawPoly

Ellipse

InitGraph

Line

LineTo

MoveTo

6.1.5. Tovbbi egysgek


Az Overlay egysg kevs rutinbl ll. Ezek vezrlik az overlay (tlapolsos)
technikt. Az overlay mdszert akkor alkalmazzuk, amikor nagyon nagy a
programunk s memriagondjaink vannak. A lnyege az, hogy a programnak
mindig csak az a rsze tltdik be a trba, amelyre a hivatkozs trtnik.
A Printer unit a nyomtatra val kirst teszi lehetv, azrt ha nyomtatni is
akarunk a programbl, szerepeltetni kell a uses sorban.
A Turbo3 s a Graph3 egysgek a kompatibilits miatt maradtak meg, a Turbo
Pascal 3.0 verzij programok aktulis verzi al val illesztsre szolglnak.

6.2. Az egysgek felptse


Az egysgek lehetv teszik, hogy modulrisan programozzunk. Az egysgek zrt,
nll modulok, adott cllal. Az egysg a fprogramhoz hozzszerkeszthet
trgykd, amely .TPU kiterjesztssel mentdik lemezre. Elssorban nagy mret
programok esetn runk egysget, amikor a fprogramunk, pontosabban annak
lefordtott kdja meghaladn a 64 kB-ot. De ettl fggetlenl is rdemes
csoportostani a hasonl cl rutinjainkat, mert ettl a program szerkezete
vilgosabb, ttekinthetbb vlik.
Az egysg felptse nagyjbl hasonl a programhoz: fejbl, illeszt rszbl,
kifejt rszbl s vgrehajt rszbl ll.
Az egysgfejben a unit kulcssz utn az egysg azonostja (neve) kvetkezik,
majd pontosvessz. Erre kell hivatkozni az egysg hasznlatakor a fprogram uses
sorban.
Az illeszt rsz (interface) feladata a programhoz s a tbbi egysghez val
illeszts biztostsa. Itt kell felsorolni azokat az eljrsok s fggvnyek fejrszt,
amiket hasznlni akarunk (paramterekkel egytt). Csak az itt megadott eljrsok,
fggvnyek, konstansok stb. hvhatk meg a fprogrambl vagy egy msik
egysgbl. Amit itt nem tntetnk fel, az csak az egysg szmra lthat, azon
kvl nem (hiba trtnt meg a kifejtse a tovbbiakban). Ez az egysg
kommunikcis rsze.
Az implementation vagy kifejt rsz a leghosszabb rsze az egysgnek. Itt kell
megrnunk az illeszt rszben felsorolt eljrsokat, fggvnyeket, de a paramteres
rszt el kell hagyni a fejbl. Termszetesen ms eljrsok s fggvnyek is
lehetnek ebben a rszben, de ezek csak az egysg szmra rhetk el, loklis
jellegek.

A vgrehajt rszben olyan utastsokat helyeznk el, amellyel az egysg


valamely rszt elksztjk, vagy valamilyen mdon az egysg feladatval
sszefgg. Igen gyakori azonban, hogy sem a kifejt rszben, sem a vgrehajt
rszben nem szerepel semmi. Ezeket nem ktelez megadni. Elfordul, hogy az
egysgnek csak az a feladata, hogy nhny tpust, vltozt s llandt definiljon.
Ilyenkor is fel kell azonban tntetni az implementation kulcsszt, a vgrehajt
rsz begin-je azonban elhagyhat (az end. nem!).
unit UnitNv;

EGYSGFEJ

interface
uses Szabvnyos unit-ok, egyb unit-ok;
type globlis adattpusok;
const globlis konstansok;
var globlis vltozk;
label globlis cmkk;
eljrsok, fggvnyek fejei
function FggvnyNv1;
procedure EljrsNv1;
procedure EljrsNv2;

ILLESZT RSZ

implementation
type loklis adattpusok;
const loklis konstansok;
var loklis vltozk;
label loklis cmkk;
function FggvnyNv1;
begin
...
end;

KIFEJT RSZ

procedure EljrsNv1;
begin
...
end;
procedure EljrsNv2;
begin
...
end;
BEGIN
...
END.

VGREHAJT RSZ

7. Eljrsok s fggvnyek
A kvetkezkben a Turbo Pascal szabvnyos System, Crt, Dos, Graph s
Overlay unit-jainak (egysgeinek) eljrsait s fggvnyeit bcrendben rjuk le.
A rutinok hasznlathoz az szksges, hogy a uses fenntartott sz utn megadott
egysget a programhoz szerkesszk. A System kivtel, ezt nem szabad felsorolni.
Ezt jeleztk azzal is, hogy a felsorolsban a System unit-ba tartoz eljrsoknl s
fggvnyeknl nem rtuk ki az egysg nevt.
A paramterek a fggvny- vagy az eljrsnv (azonost) utn kvetkeznek,
zrjelek kztt. A vltozparamtereket a var fenntartott sz vezeti be. Ha a
deklarci adattpust is tartalmaz, akkor ezt kettspontnak kell megelznie. Az
rtkparamterek eltt nem ll var sz. Az opcionlis paramterek vltoz- s
rtkparamterek is lehetnek, ezeket szgletes zrjelek kztt adjuk meg. Az
opcionlis paramterek hasznlhatk, de nem ktelezk.
Abs

Fggvny

Szintaxis: Abs(numerikus kifejezs);


Paramter: numerikus kifejezs: vals vagy egsz; az eredmny tpusa olyan, mint
a paramter tpusa.
A fggvny a vals vagy az egsz szm abszolt rtkt adja vissza. Az eredmny
ugyanolyan tpus, mint a paramter.
Addr

Fggvny

Szintaxis: Addr(argumentum);
Paramter: argumentum: valamely vltoz, eljrs vagy fggvny azonostja; az
eredmny tpusa: Pointer.
A fggvny eredmnye egy mutat, amely az argumentum memriabeli cmt
tartalmazza. Az argumentum brmilyen vltoz, eljrs vagy fggvny azonostja
lehet.
Lsd mg: Ofs, Ptr, Seg
Append

Eljrs

Szintaxis: Append(llomnyvltoz);
Paramter: var llomnynv: Text.
Az eljrssal bvtsre nyithatunk meg egy szveges llomnyt. Az Append
eljrssal megnyitott llomnyba csak rni lehet. A hozzrs az llomny vgn
indul, teht fellrjuk az llomnyvgjelet (^Z). A vltozt elbb az
Assign(llomnyvltoz, llomnynv) eljrssal egy meglv llomnyhoz kell
rendelni. A mvelet sikere az IOResult fggvnnyel krdezhet le. Ebben az
esetben a {$I-} direktvval ki kell kapcsolni az automatikus I/O ellenrzst. Ha az

eredmny 0, akkor a mvelet sikeres volt, ha viszont nem nulla, akkor hiba trtnt.
Lsd mg: Assign, Close, Reset, Rewrite
Arc

Eljrs (Graph egysg)

Szintaxis: Arc(X, Y, Kezdszg, Zrszg, Sugr);


Paramterek: X,Y: Integer; Kezdszg, Zrszg, Sugr: Word.
Az eljrs - grafikus mdban - krcikket rajzol, amelynek mrett a kezd- s a
zrszg, valamint a sugr adja meg. A kzppont az (X, Y) pozciba kerl. A
kezd- s a zrszget fokban kell rtelmezni, ahol a nulla fok a kzpponttl
vzszintesen jobbra van. A szg az ramutat jrsval ellenttesen nvekszik.
Lsd mg: Circle, Ellipse, FiIlEllipse, GetArcCoords, GetAspectRatio, PieSlice,
Sector, SetAspectRatio
ArcTan

Fggvny

Szintaxis: ArcTan(numerikus kifejezs);


Paramter: numerikus kifejezs: Real; az eredmny tpusa: Real.
A fggvny az tadott argumentum arkusz tangenst adja vissza. A szmtsok
mrtkegysge a radin.
Lsd mg: Cos, Sin
Assign

Eljrs

Szintaxis: Assign(llomnyvltoz, 'fizikai llomnynv');


Paramter: var llomnyvltoz: tpus nlkli, tpusos vagy Text llomny; a
fizikai llomnynv String.
Az eljrs a tetszleges llomnyvltozhoz hozzrendeli a karakterlnccal
megadott fizikai llomnyt. Az llomnyra a deklarlt vltozval hivatkozhatunk a
programban. Ha az llomny egy alknyvtrban van, akkor a a teljes tvonalat is
meg kell adni (a DOS-ban hasznlt mdon \ karakterrel kell megadni (pl.
'C:\PELDA\TESZT\TESZT.PAS').
Lsd mg: Append, Close, Reset, Rewrite
AssignCrt

Eljrs (Crt egysg)

Szintaxis: AssignCrt(llomnyvltoz);
Paramter: var llomnyvltoz: Text.
Automatikusan egy llomnyvltozt rendel a kpernyhz. Optimalizlt be- s
kiviteli rutinokat hasznl, gy felgyorsulnak a kpernys kirsok.
Bar

Eljrs (Graph egysg)

Szintaxis: Bar(X1, Y1, X2, Y2);


Paramterek: X1, Y1, X2, Y2: Integer
Az eljrs - grafikus mdban - ngyszget rajzol, amelyet kitlt az aktulis sznnel.
A bal fels sarkot az X1 s az Y1, a jobb alst pedig az X2 s az Y2 hatrozza meg.
A sznt s a kitltsi mintt a SetFillStyle s a SetFillPattern eljrs lltja be.
Lsd mg: Bar3D, GraphResult, SetFillStyle, SetFillPattern, SetLineStyle
Bar3D

Eljrs (Graph egysg)

Szintaxis: Bar3D(X1, Y1, X2, Y2, Mlysg, Tet);


Paramterek: X1, Y1, X2, Y2: Integer; Mlysg: Word; Tet: Boolean
Az eljrs - grafikus mdban - hromdimenzis oszlopot rajzol, amelynek ells
lapjt kitlti az aktulis sznnel. A bal fels sarkot az X1 s az Y1, a jobb alst
pedig az X2 s az Y2 hatrozza meg. A Mlysg paramter a trbeli mlysget
lltja be. A Tet paramterrel azt adhatjuk meg, hogy az oszlop tetejn legyen-e
lezrs.
Lsd mg: Bar, GraphResult, SetFillStyle, SetFillPattern, SetLineStyle
BlockRead

Eljrs

Szintaxis: BlockRead(llomnyvltoz, Trol, Hossz [, Eredmny]);


Paramter: var llomnyvltoz: File; var Trol: Byte vagy Char; Hossz Word;
var Eredmny: Word
Az eljrssal valamely tpus nlkli, megnyitott llomnybl meghatrozott szm
adatrekordot olvashatunk be egy vltozhoz rendelt memriaterletre. Az
opcionlis Eredmny paramter a beolvasott rekordok szmt tartalmazza. A
memriaterlet teljes mrete a Hossz*rekordmret formulval szmthat ki. Ha a
rekord mrett nem adjuk meg, akkor az llomny megnyitsakor a Turbo Pascal
automatikusan 128-ra lltja be az sszes rekordmretet. Hvsonknt legfeljebb 65
535 bjt (64 Kbjt) olvashat be a BlockRead segtsgvel.
Lsd mg: BlockWrite
BlockWrite

Eljrs

Szintaxis: BlockWrite(llomnyvltoz, trol, hossz [, eredmny]);


Paramter: var llomnyvltoz: File; var trol: Byte vagy Char; hossz: Word;
var eredmny: Word.
Az eljrssal meghatrozott szm adatrekordot rhatunk ki egy llomnyba a
memria valamely fenntartott terletrl. A vltozk s a jellemzk ugyanazok,
mint a BlockRead eljrs esetben, de az Eredmny itt a kirt rekordok szmt adja
vissza.
Lsd mg: BlockRead
ChDir

Eljrs

Szintaxis: ChDir('karaktersorozat');
Paramter: karaktersorozat: String.
Az eljrssal az aktulis lemezt s/vagy knyvtrt vltoztathatjuk meg. A lemez s
a katalgusok jellse ugyanolyan, mint a DOS-ban. A mvelet sikere az IOResult
fggvnnyel krdezhet le. Ebben az esetben a {$I-} direktvval ki kell kapcsolni
az automatikus I/O ellenrzst. Ha az eredmny 0, akkor a mvelet sikeres volt, ha
viszont nem nulla, akkor hiba trtnt.
Lsd mg: GetDir, MkDir, RmDir
Chr

Fggvny

Szintaxis: Chr(numerikus kifejezs);


Paramter: a numerikus kifejezs: Byte, az eredmny tpusa: Char
A fggvny visszaadja a megadott szmnak - mint ASCII kdnak - megfelel
karaktert.
Lsd mg: Ord
Circle

Eljrs (Graph egysg)

Szintaxis: Circle(X,Y, Sugr);


Paramterek: X, Y: Integer; Sugr: Word.
Az eljrs - grafikus mdban - az aktulis sznnel krt rajzol az (X, Y) kzppont
kr. A kr mrett a Sugr paramter hatrozza meg.
Lsd mg: Arc, Ellipse, FillEllipse, GetArcCoords, GetAspectRatio, PieSlice,
Sector, SetAspectRatio
ClearDevice

Eljrs (Graph egysg)

Szintaxis: ClearDevice;
Az eljrs trli a teljes kpernyt. Grafikus zemmdban a kurzort a (0,0) pontba
viszi.
Lsd mg: ClearViewPort, CloseGraph, GraphDefaults, InitGraph,
RestoreCrtMode, SetGraphMode
ClearViewPort

Eljrs (Graph egysg)

Szintaxis: ClearViewPort;
Az eljrs-grafikus mdban trli az aktulis ablakot. Ezzel egy idben a kurzor az
ablak (0,0) pontjra ll.
Lsd mg: SetViewPort, GetViewSettings
Close

Eljrs

Szintaxis: Close(llomnyvltoz);
Paramter: var llomnyvltoz: tetszleges llomnytpus.
Az eljrs lezrja a tetszleges tpus llomnyt, amelyet elzleg az Append, a
Reset vagy a Rewrite nyitott meg. Az llomnyvltozt elbb az Assign eljrssal valamely fizikai llomnyhoz kell rendelni. A mvelet sikere az IOResult
fggvnnyel krdezhet le. Ebben az esetben a {$I-} direktvval ki kell kapcsolni
az automatikus I/O ellenrzst. Ha az eredmny 0, akkor a mvelet sikeres volt, ha
viszont nem nulla, akkor hiba trtnt.
Lsd mg: Append, Assign, Reset, Rewrite
CloseGraph

Eljrs (Graph egysg);

Szintaxis: CloseGraph;
Az eljrs lezrja a grafikus zemmdot, s visszakapcsol abba a szveges mdba,
amely elzleg aktv volt.
Lsd mg: DetectGraph, GetGraphMode, InitGraph, RestoreCrtMode,
SetGraphMode
ClrEol

Eljrs (Crt egysg);

Szintaxis: ClrEol;
Az eljrs trli a sort a kurzor pozcijtl a sor vgig, mikzben szkzket r ki.
A ClrEol hvsa eltt a TextBackGround eljrssal llthat t a httrszn. A
kurzor pozcija nem vltozik. A ClrEol csak az aktulis ablakban trl.
Lsd mg: ClrScr, Window
ClrScr

Eljrs (Crt egysg);

Szintaxis: ClrScr;
Trli a kpernyt, mikzben szkzket r ki. Hvsa eltt a httrszn a
TextBackGround eljrssal llthat be. A ClrScr csak az aktulis ablakra
vonatkozik.
Lsd mg: ClrEol, Window
Concat

Fggvny

Szintaxis: Concat('Karakterlnc1'[,'Karakterlnc2',...,'Karakterlnc n']);


Paramter: Karakterlncok: String, az eredmny tpusa: String.
A fggvny - a megadott sorrendben - legfeljebb 255 karakter hosszsg lncc
fzi ssze a karakterlncokat. A hatron tlnyl karaktereket levgja.
Lsd mg: Copy, Delete, Insert, Length, Pos
Copy

Fggvny

Szintaxis: Copy(`Karakterlnc', Hely, Hossz);


Paramterek: Karakterlnc: String; Hely, Hossz: Integer; az eredmny: String.
A megadott karakterlnc Hely karaktertl kezdve kimsol Hossz darab karaktert.
Lsd mg: Concat, Insert, Delete, Length, Pos
Fggvny

Cos

Szintaxis: Cos(numerikus kifejezs);


Paramter: numerikus kifejezs: Real; az eredmny tpusa: Real.
A fggvny az tadott argumentum koszinuszt adja vissza. A szmts
mrtkegysge a radin.
Lsd mg: ArcTan, Sin
Fggvny

CSeg

Szintaxis: CSeg;
Az eredmny tpusa Word.
A fggvny a fut program vagy rutin kdszegmensnek cmt adja vissza. rtke
attl fgg, hogy a fprogrambl vagy egy eljrsbl hvjuk-e.
Lsd mg: DSeg, SSeg
Eljrs

Dec

Szintaxis: Dec(numerikus kifejezs [,n]);


Paramter: var numerikus kifejezs: sorszmozott tpus ; n: Longint.
Az eljrs eggyel cskkenti a vltozt (x:=x-1). Ha a paramterek kztt az
opcionlis n is szerepel, akkor az eljrs ennyivel cskkenti a vltozt (x:=x-n).
Lsd mg Inc, Pred.
Delay

Eljrs (Crt egysg)

Szintaxis: Delay(milliszekundum);
Paramter: milliszekundum: Word
Az eljrs a megadott milliszekundumnyi idre felfggeszti a program futst (a
klnbz gpeken krlbell ugyanazt a ksleltetst eredmnyezi).
Lsd mg: Sound, NoSound
Delete

Szintaxis: Delete(`Karakterlnc', Hely, Hossz);


Paramter: var Karakterlnc: String; Hely, Hossz: Integer.
Trli a karakterlncbl az adott pozcin lv, adott hosszsg szakaszt.
Lsd mg: Concat, Copy, Insert, Length, Pos

Eljrs

DelLine

Eljrs (Crt egysg)

Szintaxis DelLine;
Az eljrs az aktulis ablakban trli a sort, amelyben a kurzor villog. A tovbbi
sorok eggyel feljebb lpnek. Az ablak utols sort az aktulis httrsznnel egytt
trli.
Lsd mg: InsLine, Window
DetectGraph

Eljrs (Graph egysg)

Szintaxis: DetectGraph(Grafikus meghajt, Grafikus md);


Paramter: var Grafikus meghajt: Integer; var Grafikus md: Integer.
Az eljrs meghatrozza, hogy milyen grafikus krtya van a gpben, s
eredmnyknt a meghajt s az azon hasznlhat legnagyobb szmrtk md
rtkt adja vissza. Akkor hasznljuk, ha a program meghatrozott fajtj grafikus
krtyt ignyel. Ha a krtya megfelel, akkor a grafikus mdra val tvltskor a
visszaadott rtkeket tadhatjuk az InitGraph eljrsnak.
Lsd mg: InitGraph, InstallUserDriver, GraphResult
DiskFree

Fggvny (Dos egysg)

Szintaxis: DiskFree(meghajt)
Paramter: meghajt: Byte; az eredmny tpusa: Longint.
Visszaadja a szban forg meghajtban lv lemez szabad terletnek mrett
bjtokban. A 0 jelenti az aktulis, az 1 az A:, a 2 a B: stb. meghajtt.
Lsd mg: DiskSize, GetDir
DiskSize

Fggvny (Dos egysg)

Szintaxis: DiskSize(meghajt)
Paramter: meghajt: Byte; az eredmny tpusa: Longint.
A fggvny a megadott meghajtban lv lemez teljes kapacitst adja vissza. A 0
jelenti az aktulis, az 1 az A:, a 2 a B: stb. meghajtt.
Lsd mg: DiskFree, GetDir
Dispose

Eljrs

Szintaxis: Dispose(mutatnv [, destruktor metdus]);


Paramter: var mutatnv: Pointer; destruktor metdus: Destructor.
Az eljrs felszabadtja a lefoglalt memrit. Dinamikus vltozk szmra a New
s a GetMem eljrsokkal lehet memrit foglalni. Alaphelyzetben egy mutatt
adunk t az eljrs hvsakor. Az objektumorientlt kiterjeszts hasznlatakor a
vltoz valamely objektum tpus mutatja, a destruktor metdus pedig a szban

forg az objektumban deklarlt destruktor.


Lsd mg: FreeMem, GetMem, New, Release
DosExitCode

Fggvny (Dos egysg)

Szintaxis: DosExitCode
Az eredmny tpusa Word.
A fggvny az alprogrambl val kilpskor, azaz a fprogramba val
visszatrskor a kilps kdjt adja meg. Az eredmnyben az als bjt a program
kilpsi kdja (norml befejezds esetn 0). A fels bjt az albbiak egyike lehet:
0 - norml befejezds
1 - megszakts a Ctrl-C vagy a Ctrl-Pause letsvel
2 - megszakts eszkzhiba miatt
3 - kilps a Keep eljrssal
Lsd mg: Exec
DosVersion

Fggvny (Dos egysg)

Szintaxis: DosVersion
Az eredmny tpusa: Word.
A fggvny a DOS verziszmt adja vissza. A fels s az als bjtot kln
rtkknt kell kezelni: az als a f-, a fels pedig az alverzi szmt tartalmazza.
Lsd mg: Hi, Lo
DrawPoly

Eljrs (Graph egysg)

Szintaxis: DrawPoly(pontszm, trspontok);


Paramterek: pontszm: Word; var trspontok: tpus nlkli paramter.
Az eljrs - grafikus mdban - adott szm trsponttal elltott sokszget rajzol. A
Trspontok vltoz tpus nlkli paramter, amely a sarkok koordintit adja meg.
A koordintaprok szmt a Pontszm rtk hatrozza meg.
Lsd mg: FillPoly, GetLineSettings, SetColor, SetLineStyle, GraphResult
DSeg

Fggvny

Szintaxis: DSeg
Az eredmny tpusa: Word.
A fggvny annak az adatszegmensnek a cmt adja vissza, amelyben a fut
program globlis vltozi tallhatk.
Lsd mg: CSeg, SSeg
Ellipse

Eljrs (Graph egysg)

Szintaxis: Ellipse(X, Y, Kezdszg, Zrszg, Xsugr, Ysugr);


Paramter: X,Y: Integer; Kezdszg, Zrszg: Word; Xsugr, Ysugr: Word.
Az eljrssal ellipszist rajzolhatunk az (X, Y) kzppont kr. Az Xsugr s az
Ysugr az ellipszis x, illetve y irny kiterjedst hatrozza meg. A fokokban
megadott kezd- s zrszg segtsgvei ellipsziscikk is rajzolhat. A nulla fok a
kzpponttl vzszintesen jobbra van. Az irny ellenttes az ramutat jrsval.
Az eljrs az aktulis sznnel s vonalstlussal rajzol.
Lsd mg: Arc, Circle, FillEllipse, GetArcCoords, GetAspectRatio, PieSlice,
Sector, SetAspectRatio
EnvCount

Fggvny (Dos egysg)

Szintaxis: EnvCount
Az eredmny tpusa: Integer.
A fggvny a DOS krnyezeti (environment) vltozinak szmt adja vissza. Ezek
kztt tallhat pldul a Path DOS paranccsal belltott katalgussor is.
Lsd mg: EnvStr, GetEnv, ParamCount, ParamStr
EnvStr

Fggvny (Dos egysg)

Szintaxis: EnvStr(numerikus kifejezs)


Paramter: numerikus kifejezs: Integer; az eredmny tpusa: String.
A fggvny a numerikus kifejezssel megadott sorszm DOS krnyezeti vltoz
szvegt, karakterlncknt adja vissza.
Lsd mg: EnvCount, GetEnv, ParamStr
Eof

Fggvny

Szintaxis: Eof(llomnyvltoz) tpusos s tpus nlkli llomnyokra


Eof[(llomnyvltoz)] szveges llomnyokra

Paramterek: var llomnyvltoz: tpusos vagy tpus nlkli llomny; var


llomnyvltoz: Text; az eredmny tpusa: Boolean.
A fggvny azt vizsglja, hogy elrtk-e az llomny vgt. Ha vgigolvastunk egy
llomnyt, akkor az eredmny True lesz. A mvelet sikere az IOResult
fggvnnyel krdezhet le. Ebben az esetben a {$I-} direktvval ki kell kapcsolni
az automatikus I/O ellenrzst. Ha az eredmny 0, akkor a mvelet sikeres volt, ha
viszont nem nulla. akkor hiba trtnt.
Lsd mg: Eoln, SeekEof, SeekEoln
Eoln

Eljrs

Szintaxis: Eoln((llomnyvltoz)]; szveges llomnyokra


Paramter: var llomnynv: Text; az eredmny tpusa Boolean.
Az eljrs True rtket ad vissza, ha az llomnymutat az llomny valamely

sornak vgn van. A mvelet sikere az IOResult fggvnnyel krdezhet le.


Ebben az esetben a {$I-} ki kell kapcsolni az automatikus I/O ellenrzst. Ha az
eredmny 0, akkor a mvelet sikeres volt, ha viszont nem nulla, akkor hiba trtnt.
Lsd mg: Eof, SeekEof, SeekEoln
Erase

Eljrs

Szintaxis: Erase(llomnyvltoz);
Paramter: var llomnyvltoz: tetszleges llomnytpus.
Az eljrs trli az llomnyt, amelyet az Assign hvsakor valamely
llomnyvltozhoz rendeltnk. A trlend llomnynak nem szabad nyitva lennie.
A mvelet sikere az IOResult fggvnnyel krdezhet le. Ebben az esetben a {$I-}
ki kell kapcsolni az automatikus I/O ellenrzst. Ha az eredmny 0, akkor a
mvelet sikeres volt, ha viszont nem nulla, akkor hiba trtnt.
Lsd mg: Rename
Exec

Eljrs (Dos egysg)

Szntaxis: Exec('Katalgus llomnynv', 'Parancssor');


Paramter: Katalgus llomnynv, Parancssor: String.
Az eljrs kilp az aktulis programbl, s a megadott parancssorral elindtja a
paramterrel meghatrozott programot (pl. `C:\COMMAND.COM'). Ha nem adunk
meg katalgust, akkor az eljrs az aktulisat veszi alapul. A kiterjesztst is meg
kell adni, ez az llomny tpust hatrozza meg (.EXE, .COM, .BAT). A
Parancssor vltozval paramtereket is tadhatunk ('/C DIR *.PAS').
Lsd mg: DosExitCode, SwapVectors
Exit

Eljrs

Szintaxis: Exit;
Az eljrssal kzvetlenl a hvhoz lehet visszatrni valamely fggvnybl vagy
eljrsbl. Ha az eljrst fprogramban hvjuk, akkor az Exit befejezi a teljes
program futst.
Lsd mg: Halt
Exp

Fggvny

Szintaxis: Exp(numerikus kifejezs)


Paramter: numerikus kifejezs: Real; az eredmny: Real.
A fggvny az "e" szm valamely hatvnyt adja vissza. A kitevt a paramterrel
adhatjuk meg. A fggvny alapja az "e" szm termszetes szm (2,7182818285), az
exponencilis pedig egy vals szm.
Lsd mg: Ln

Fail

Eljrs

Szintaxis: Fail;
Az eljrs felszabadtja az egyik dinamikus objektum-elfordulst, s elhagyja a
konstruktor metdust. Az eljrs csak konstruktorbl hvhat.
FExpand

Fggvny (Dos egysg)

Szintaxis: FExpand('llomnynv')
Paramter: llomnynv: PathStr; az eredmny tpusa: PathStr.
A fggvny a megadott llomny nevt kiterjeszti a lemeznvvel s az
tvonallerssal. Az eredmnyt csupa nagybetvel adja vissza. Az
FExpand('test.pas') eredmnye pldul a 'C:\TP\PELDA\TEST.PAS' karakterlnc
lesz, ha az aktulis katalgus a C:\TP\PELDA.
Lsd mg: FindFirst, FindNext, FSplit
FilePos

Fggvny

Szintaxis: FilePos(llomnyvltoz)
Paramter: var llomnyvltoz: tpusos vagy tpus nlkli llomny, az
eredmny tpusa: Longint.
A fggvny hvsval valamely tpus nlkli vagy tpusos llomny pozcijt
krdezhetjk le. Szveges llomnyokra a fggvny nem hasznlhat. Ahhoz, hogy
bjtpozcit kapjunk, a visszaadott rtket meg kell szoroznunk a rekordmrettel.
Lsd mg: FileSize, Seek
FileSize

Fggvny

Szintaxis: FileSize(llomnyvltoz)
Paramter: var llomnyvltoz: tpusos vagy tpus nlkli llomny, az eredmny
tpusa: Longint.
Visszaadja a megnyitott tpusos vagy tpus nlkli llomny komponenseinek
szmt. Szveges llomnyokra nem hasznlhat.
Lsd mg: FilePos
FillChar

Eljrs

Szintaxis: FillChar(Kezdcm, Hossz, 'Karakter');


Paramter: var Kezdcm: tetszleges vltoz; Hossz: Word; Karakter: Char vagy
Byte.
Az eljrs az adott karakterrel s az adott hosszsgban feltlti az adott kezdcm
memriaterletet. A karakterek Byte vagy Char tpusak lehetnek. Az eljrst
karakterlncok feltltsre is hasznlhatjuk, de ebben az esetben nem szabad
megfeledkeznnk a karakterlnc aktulis hossznak (nulladik karakter)

belltsrl.
Lsd mg: Move
FillEllipse

Eljrs (Graph egysg)

Szintaxis: FillEllipse(X, Y, Xsugr, Ysugr);


Paramterek: X, Y: Integer; Xsugr, Ysugr: Word.
Az eljrs - grafikus mdban - (X, Y) kzppont ellipszist rajzol a megadott
Xsugr s Ysugr kiterjedssel, majd a SetFillPattern s a SetFillStyle eljrsokkal
belltott mintval ki is tlti azt.
Lsd mg: Arc, Circle, Ellipse, GetAspectRatio, PieSlice
FillPoly

Eljrs (Graph egysg)

Szintaxis: FillPoly(pontszm, trspontok);


Paramter: pontszm: Word; var trspontok: tpus nlkli paramter.
Az eljrs - grafikus mdban - a megadott koordintaprok alapjn sokszget
rajzol, s a felletet kitlti a SetFillPattern s a SettFillStyle eljrsokkal belltott
mintval. A trspontok vltoz tpus nlkli paramter, amely a sarkok
koordintit adja meg. A koordintaprok szmt a pontszm rtk hatrozza meg.
Lsd mg: DrawPoly, GetFillSettings, GetLineSettings, SetColor, SetFillStyle,
SetFillPattern, SetLineStyle, GraphResult
FindFirst

Eljrs (Dos egysg)

Szintaxis: FindFirst('Katalgus llomnynv', attribtum, keres);


Paramterek: Katalgus llomnynv: String; attribtum: Byte; var keres:
SearchRec.
Az eljrs a megadott katalgusban keres egy llomnyt. Ha nem adjuk meg a
katalgust, akkor az eljrs az aktulisban keres. A keress eredmnye a DosError
vltozban vizsglhat.
Lsd mg: FindNext, FExpand
FindNext

Eljrs (Dos egysg)

Szintaxis: FindNext(Keres);
Paramter: var Keres: SearchRec.
Megismtli a FindFirst eljrssal elindtott llomnykeresst. A Keres vltoznak
SearchRec tpusnak kell lennie. A keress eredmnye a DosError vltozban
vizsglhat.
Lsd mg: FindFirst, FExpand
FloodFill

Eljrs (Graph egysg)

Szintaxis: FloodFill(X, Y, Szn):


Paramterek: X, Y: Integer; Szn: Word.
Grafikus mdban az X s Y paramterekkel megadott pontbl indulva kitlt
valamely behatrolt terletet. Ahol az eljrs egy msik sznnel tallkozott,
abbahagyja a kitltst. Ha a megadott pont valamely objektumon kvl helyezkedik
el, akkor az objektum krnyezett tlti ki.
Lsd mg: GetFillPattern, SetFillPattern, SetFillStyle
Flush

Eljrs

Szintaxis: Flush(llomnyvltoz);
Paramter: var llomnyvltz: Text.
Az eljrs hvsval a megnyitott szveges llomny puffernek tartalmt
kirathatjuk a lemezre. A mvelet sikere az IOResult fggvnnyel krdezhet le.
Ebben az esetben a {$I-} ki kell kapcsolni az automatikus I/O ellenrzst. Ha az
eredmny 0, akkor a mvelet sikeres volt, ha viszont nem nulla, akkor hiba trtnt.
Lsd mg: Append, Reset, Rewrite
Frac

Fggvny

Szintaxis: Frac(numerikus kifejezs)


Paramter: numerikus kifejezs: Real; az eredmny tpusa: Real.
A fggvny valamely numerikus kifejezs tizedes rszt adja vissza. A szmts a
z:=x-Int(x) formulnak felel meg.
Lsd mg: Int
FreeMem

Eljrs

Szintaxis: FreeMem(mutat, mret);


Paramter: var mutat: Pointer; mret: Word.
Az eljrs felszabadt egy lefoglalt memriaterletet. A vltoz tetszleges tpus
mutat lehet, amelyhez a GetMem, illetve New eljrssal vagy rtkads tjn
rendeltnk dinamikus memrit. A Mret vltoz rtknek meg kell egyeznie a
terlet bjtokban mrt mretvel.
Lsd mg: Dispose, GetMem, Release
FSearch

Fggvny (Dos egysg)

Szintaxis: FSearch('llomnynv', 'knyvtrak');


Paramterek: llomnynv: PathStr; knyvtrak: String; az eredmny tpusa:
PathStr.
A fggvny a megadott knyvtrakban keresi az llomnyt. A knyvtrakat
pontosvesszvel elvlasztva kell megadni: Ha az eljrs az llomnyt megtallta,
akkor a teljes tvonalat adja vissza. Ha a Path paranccsal megadott sszes

knyvtrtt vgig szeretnnk nzni, akkor adjuk t paramterknt a GetEnv('Path')


fggvnyt.
Lsd mg: FExpand, FSplit, GetEnv
FSplit

Eljrs (Dos egysg)

Szintaxis: FSplit('Katalgus llomnynv',Katalgus,Nv,Kiterjeszts);


Paramterek: Katalgus llomnynv: PathStr; var Katalgus: DirStr; var Nv:
NameStr: var Kiterjeszts: ExtStr.
Az eljrs felbontja a megadott llomny nevt, s a klnbz rszeket elhelyezi a
Katalgus, a Nv s a Kiterjeszts ' paramterekben. Ha valamelyik rsz hinyzik
az eredeti lncbl, akkor a hinyz rsznek megfelel vltoz res karakterlncot
fog tartalmazni.
Lsd mg: FExpand; FindFirst, FSearch
GetArcCoords

Eljrs (Graph egysg)

Szintaxis: GetArcCoords(krv);
Paramter: var krv: ArcCoordsType.
Grafikus mdban az eljrs visszaadja a legutols Arc hvssal rajzolt krv adatait.
Lsd mg: Arc, Circle, Ellipse, PieSlice, Sector
GetAspectRatio

Eljrs (Graph egysg)

Szintaxis: GetAspectRatio(Vzszintes korrekci, Fggleges korrekci);


Paramter: var Vzszintes korrekci, var Fggleges korrekci: Word.
A kpernykn klnbzik a vzszintes sorokban s a fggleges oszlopokban
elhelyezked pontok szma. Ahhoz, hogy a kr alak objektumok valban kerekek
legyenek, korrekcis rtket (torzts) kell megadni, amelyet az illet grafikus
eljrsok (Arc, Circle, PieSlice) automatikusan felhasznlnak. Grafikus mdban
ezzel az eljrssal lehet lekrdezni a korrekcis rtkeket.
Lsd mg: Arc, Circle, GetMaxX, GetMaxY, PieSlice, SetAspectRatio
GetBkColor

Fggvny (Graph egysg)

Szintaxis: GetBkColor;
Az eredmny tpusa: Word.
Grafikus mdban az aktulis httrszn palettaindext adja vissza.
Lsd mg: GetColor, GetPalette, InitGraph, SetAllPalette, SetBkColor, SetColor,
SetPalette
GetCBreak

Eljrs (Dos egysg)

Szintaxis: GetCBreak(megszakts);
Paramter: var megszakts: Boolean.
Az eljrs megadja, hogy a DOS a Ctrl-Pause billentys megszaktst csak a be- s
a kiviteli mveletek esetn vagy folyamatosan vizsglja-e.
Lsd mg: SetCBreak
GetColor

Fggvny (Graph egysg)

Szintaxis: GetColor
Az eredmny tpusa: Word.
Grafikus mdban az aktulisan hasznlt sznpaletta indext adja vissza.
Lsd mg: GetBkColor, GetPalette, InitGraph, SetAlIPalette, SetColor, SetPalette
GetDate

Eljrs (Dos egysg)

Szintaxis: GetDate(v, Hnap, Nap, A ht napja);


Paramterek: var v, Hnap, Nap, A ht napja: Word.
Az eljrs a DOS dtumrtkeit adja vissza. Az v 1980 s 2099, a hnap 1 s 12, a
nap 1 s 31, a ht napja pedig 0 s 6 kztti rtket vehet fel. A 0 a vasrnapot
jelenti.
Lsd mg: SetDate, GetTime, SetTime
GetDefaultPalette

Eljrs (Graph egysg)

Szintaxis: GetDefaultPalette(sznpaletta);
Paramter: var sznpaletta: PaletteType
Grafikus mdban az eljrs a mindenkori grafikus meghajt sznpalettjt adja
vissza.
Lsd mg: InitGraph, GetPalette, SetPalette, SetAllPalette
GetDir

Eljrs

Szintaxis: GetDir(meghajtszm, tvonal);


Paramter: meghajtszm: Byte; var tvonal: String
Az eljrs - karakterlncknt - az adott meghajt aktulis katalgusnak teljes
tvonalt adja vissza. A 0 az aktulis, az 1 az A:, a 2 a B: stb. meghajtt jelenti. A
mvelet> sikere az IOResult fggvnnyel krdezhet le. Ebben az esetben a {$I-}
ki kell kapcsolni az automatikus I/O ellenrzst. Ha az eredmny 0, akkor a
mvelet sikeres volt, ha viszont nem nulla, akkor hiba trtnt.
Lsd mg: ChDir, MkDir, RmDir
GetDriverName

Fggvny (Graph egysg)

Szintaxis: GetDriverName
Az eredmny tpusa: String.
Grafikus mdban az aktulis grafikus meghajt nevt adja vissza.
Lsd mg: GetModeName, InitGraph
GetEnv

Fggvny (Dos egysg)

Szintaxis: GetEnv('karakterlnc');
Paramter: karakterlnc: String; az eredmny tpusa: String.
A fggvny a karakterlnccal meghatrozott DOS krnyezeti vltoz rtkt adja
vissza. E vltozk kztt tallhat pldul a Path paranccsal belltott keressi
tvonalsorozat is.
Lsd mg: EnvCount, EnvStr
Eljrs (Dos egysg)

GetFAttr

Szintaxis: GetFAttr(llomnyvltoz, attribtum);


Paramter: var llomnyvltoz: tetszleges llomnyvltoz; var attribtum:
Word.
Az eljrs annak az llomnynak az attribtumt adja vissza, amelyet elzleg - az
Assign eljrssal - valamely llomnyvltozhoz rendeltnk. Az llomnynak
lekrdezs kzben nem szabad nyitva lennie.
Lsd mg: SetFAttr, GetFTime, SetFTime
GetFillPattern

Eljrs (Graph egysg)

Szintaxis: GetFillPattern(kitlt minta);


Paramter: var kitlt minta: FiIIPatternType
Az eljrs grafikus mdban - a kitlts aktulis bitmintjt adja vissza. A
jellemzket a SetFillPattern s a SetFillStyle eljrsok lltjk be.
Lsd mg: FillPoly, GetFillStyle, SetFillStyle, SetFillPattern
GetFillSettings

Eljrs (Graph egysg)

Szintaxis: GetFillSettings(kitltsi informcik);


Paramter: var kitltsi informcik: FillSettingsType
Grafikus mdban az aktulis kitltsi mintt s sznt adja vissza.
Lsd mg: FillPoly, GetFillPattern, SetFillStyle, SetFillPattern
GetFTime

Eljrs (Dos egysg)

Szintaxis: GetFTime(llomnyvltoz, dtum id);


Paramter: var llomnyvltoz: tetszleges llomnyvltoz; var Dtum-id:
Longint.

Az eljrs valamely megnyitott llomny legutbbi mdostsnak dtumt s


idejt adja vissza. Az rtket pakolt formban kapjuk meg. Ezt az UnpackTime
eljrssal lehet norml formra hozni.
Lsd mg: SetFTime, PackTime, UnpackTime
GetGraphMode

Fggvny (Graph egysg)

Szintaxis: GetGraphMode
Az eredmny tpusa: Integer
A fggvny - grafikus mdban - az aktulis grafikus mdot adja vissza. A
visszaadott rtk - a klnbz grafikus meghajtk fggvnyben - 0 s 5 kz
eshet. A Graph egysg konstansokat deklarl a klnbz grafikus meghajtkhoz.
Lsd mg: DetectGraph, GetMaxMode, GetModeRange, InitGraph, SetGraphMode
GetImage

Eljrs (Graph egysg)

Szintaxis: GetImage(X1, Y1, X2, Y2, Bittrkp);


Paramter: X1, Y1, X2, Y2: Integer; var Bittrkp: tpus nlkli paramter.
Grafikus mdban ezzel az eljrssal lehet a koordintkkal megadott kprszletet a
memriba msolni, ahol a bal fels sarkot az (X1, Y1 ), a jobb alst pedig az (X2,
Y2) hatrozza meg. A Bittrkp paramternek tadott rtk azoknak a
kpadatoknak a kezdcme lesz, amelyeket el kell menteni.
Lsd mg: ImageSize, PutImage
GetIntVec

Eljrs (Dos egysg)

Szintaxis: GetIntVec(megszaktsszm, vektor);


Paramter: megszaktsszm: Byte; var vektor: Pointer.
Az eljrs a 0 s 255 kztti megszaktsi vektor szmt kapja meg. Az eljrs a
mutat tpus vektorvltozban adja vissza a vektor tartalmt.
Lsd mg: SetIntVec
GetLineSettings

Eljrs (Graph egysg)

Szintaxis: GetLineSettings(vonalinformcik);
Paramter: var vonalinformcik: LineSettingsType
Az eljrs - grafikus mdban - az aktulisan belltott vonalstlust adja vissza.
Lsd mg: DrawPoly, SetLineStyle
GetMaxColor

Fggvny (Graph egysg)

Szintaxis: GetMaxColor
Az eredmny tpusa: Word.
A fggvny - grafikus mdban - azt adja vissza, hogy az aktulis grafikus

meghajtn legfeljebb hny szn hasznlhat.


Lsd mg: SetColor, GetMaxColor
GetMaxMode

Fggvny (Graph egysg)

Szintaxis: GetMaxMode
Az eredmny tpusa: Word
A fggvny - grafikus mdban - az aktulis grafikus meghajtn bellthat
legnagyobb felbontst adja vissza.
Lsd mg: GetMaxColor, GetModeRange, SetGraphMode
GetMaxX

Fggvny (Graph egysg)

Szintaxis: GetMaxX
Az eredmny tpusa: Integer
A fggvny - grafikus mdban - azt adja vissza, hogy az aktulis grafikus meghajt
aktulis zemmdjban legfeljebb hny kppont van a kperny valamely
vzszintes sorban.
Lsd mg: GetMaxY, GetX, GetY, MoveTo
GetMaxY

Fggvny (Graph egysg)

Szintaxis: GetMaxY
Az eredmny tpusa: Integer
A fggvny - grafikus mdban - azt adja vissza, hogy az aktulis grafikus meghajt
aktulis zemmdjban legfeljebb hny kppont van a kperny valamely
fggleges oszlopban.
Lsd mg: GetMaxX, GetX, GetY, MoveTo
GetMem

Eljrs

Szintaxis: GetMem(mutat, mret);


Paramterek: var mutat: Pointer; mret: Word.
Az eljrs lefoglal egy dinamikus terletet a memriban, s ennek kezdcmt a
vltozban adja vissza. Legfeljebb 65 521 bjt (64 Kbjt) foglalhat le egy
hvssal.
Lsd mg: FreeMem, Dispose, New, Mark, Release
GetModeName

Fggvny (Graph egysg)

Szintaxis: GetModeName(mdszm)
Paramter: mdszm: Integer, az eredmny tpusa: String.
Grafikus mdban az aktulis grafikus meghajt aktulis zemmdjnak nevt adja

vissza.
Lsd mg: GetDriverName, GetGraphMode, GetModeRange
GetModeRange

Eljrs (Graph egysg)

Szintaxis: GetModeRange(Grafikus meghajt, Lo Md, Hi md);


Paramter: Grafikus meghajt: Integer; var Lo md: Integer; var Hi md: Integer.
Az eljrs - az aktulis grafikus mdtl fggetlenl - az adott meghajtn rvnyes
legkisebb s legnagyobb zemmd rtket adja vissza.
Lsd mg: GetDriverName, DetectGraph, GetGraphMode, GetMaxMode
GetPalette

Eljrs (Graph egysg)

Szintaxis: GetPalette(paletta);
Paramter: var paletta: PaletteType.
Az eljrs - grafikus mdban - az aktulisan hasznlt sznpalettt adja meg.
Lsd mg: GetDefaultPalette, GetMaxColor, GetPaletteSize, GetPalette
GetPaletteSize

Fggvny (Graph egysg)

Szintaxis: GetPaletteSize
Az eredmny tpusa: Integer
A fggvny - grafikus mdban - az aktulisan betlttt sznpalettn hasznlhat
sznek szmt adja vissza.
Lsd mg: GetDefauItPalette, GetMaxColor, GetPalette, SetPalette
GetPixel

Fggvny (Graph egysg)

Szintaxis: GetPixel(X, Y)
Paramter: X, Y: Integer, az eredmny tpusa: Word.
A fggvny - grafikus mdban - az adott kppont sznt adja vissza.
Lsd mg: PutPixel, Getlmage, Putlmage, SetWriteMode
GetTextSettings

Eljrs (Graph egysg)

Szintaxis: GetTextSettings(szveginformcik);
Paramter: var szveginformcik: TextSettingsType
Az eljrs - grafikus mdban - a bettpus s a szvegirny belltsait adja meg.
GetTime

Eljrs (Dos egysg)

Szintaxis: GetTime(ra, Perc, Msodperc, Szzadmsodperc);


Paramter: var ra, Perc, Msodperc, Szzadmsodperc: Word.
Az eljrs a DOS-ban rvnyes rendszerid ra, perc, msodperc s

szzadmsodperc komponenseit adja meg.


Lsd mg: GetDate, SetDate, SetTime, UnpackTime
GetVerify

Eljrs (Dos egysg)

Szintaxis: GetVerify(rsellenrzs);
Paramter: var rsellenrzs: Boolean.
Az eljrssal lekrdezhet, hogy lemezre rskor a DOS automatikusan ellenrzi-e
az adatokat.
Lsd mg: SetVerify
GetViewSettings

Eljrs (Graph egysg)

Szintaxis: GetViewSettings(ablak);
Paramter: var ablak: ViewPortType
Az eljrs - grafikus mdban - az aktulis ablak jellemzit adja meg.
Lsd mg: ClearViewPort, SetViewPort
GetX

Fggvny (Graph egysg)

Szintaxis: GetX
Az eredmny tpusa: Integer
A fggvny - grafikus mdban - az aktulis ablakban rtelmezett vzszintes
kurzorpozcit adja vissza.
Lsd mg: GetViewSettings, GetY, InitGraph, MoveTo, SetViewPort
GetY

Fggvny (Graph egysg)

Szintaxis: GetY
Az eredmny tpusa: Integer
A fggvny - grafikus mdban - az aktulis ablakban rtelmezett fggleges
kurzorpozcit adja vissza.
Lsd mg: GetViewSettings, GetX, InitGraph, MoveTo, SetViewPort
GotoXY

Eljrs (Crt egysg)

Szintaxis: GotoXY(X, Y);


Paramter: X, Y: Byte
Az eljrs - szveges zemmdban - a szveges ablak megadott helyre viszi a
kurzort. Az X az oszlopot, az Y pedig a sort adja meg. A bal fels sarok
koordintja:1,1.
Lsd mg: Window, WhereX, WhereY

GraphDefaults

Eljrs (Graph egysg)

Szintaxis: GraphDefaults;
Az sszes grafikus jellemzt visszalltja az alaprtelmezs szerinti llapotba. A
kperny tartalma nem vltozik.
Lsd mg: InitGraph
GraphErrorMsg

Fggvny (Graph egysg)

Szintaxis: GraphErrorMsg(hibakd)
Paramter: hibakd: Integer; az eredmny tpusa: String
A fggvny a szban forg hibakdhoz tartoz grafikus hiba szvegt adja vissza.
Lsd mg: GraphResult, DetectGraph, InitGraph
GraphResult

Fggvny (Graph egysg)

Szintaxis: GraphResult
Az eredmny tpusa: Integer
A fggvny a legutbbi grafikus hiba kdjt adja vissza.
Lsd mg: GraphErrorMsg, IOResult
Halt

Eljrs

Szintaxis: Halt[(numerikus kifejezs)];


Paramter: numerikus kifejezs: Word
Az eljrs hvsa azonnal lelltja a program futst, s a vezrlst visszaadja a
DOS-nak. Opcionlisan egy paramtert is tadhatunk, amellyel a kilps kdjt
adhatjuk meg. A kilps mdjt a DosExitCode eljrssal lehet lekrdezni.
Lsd mg: Exit, RunError
Hi

Fggvny

Szintaxis: Hi(numerikus kifejezs)


Paramter: numerikus kifejezs: Integer vagy Word; az eredmny tpusa: Byte
A fggvny egy numerikus kifejezs fels bjtjt adja vissza.
Lsd mg: Lo, Swap
HighVideo

Eljrs (Crt egysg)

Szintaxis: HighVideo;
Az eljrs hvsa utn - szveges zemmdban valamennyi tovbbi kirs fnyesen
jelenik meg a kpernyn.
Lsd mg: NormVideo, LowVideo, TextColor, TextBackground

ImageSize

Fggvny (Graph egysg)

Szintaxis: ImageSize(X1, Y1, X2, Y2)


Paramter: X1, Y1, X2, Y2: Integer, az eredmny tpusa: Word
A fggvny - grafikus mdban - kiszmtja a megadott grafikus kprszlet
elmentshez szksges memria mrett. A mretet bjtokban adja vissza. A
terlet bal fels sarkt az (X1, Y1), jobb als sarkt pedig az (X2, Y2) hatrozza
meg.
Lsd mg: GetImage, PutImage
Inc

Eljrs

Szintaxis: Inc(numerikus kifejezs [, n]).


Paramter: var numerikus kifejezs: sorszmozott tpus; n: Longint
Az eljrs eggyel megnveli a vltozt (x:=x+1). Ha a paramterek kztt az
opcionlis n is szerepel, akkor az eljrs ennyivel nveli meg a vltozt (x:=x+n).
Lsd mg: Dec, Pred, Succ
InitGraph

Eljrs (Graph egysg)

Szintaxis: InitGraph(grafikus meghajt, grafikus md, 'knyvtr');


Paramter: var grafikus meghajt: Integer; var grafikus md: Integer; Knyvtr:
String.
Az eljrs - hvsa utn - a megadott knyvtrbl betlti a grafikus meghajtt, s a
kpernyt tkapcsolja az adott grafikus mdba.
Lsd mg: CloseGraph, DetectGraph, GraphDefaults, GraphResult,
InstallUserDriver, RestoreCrtMode, SetGraphBufSize, SetGraphMode,
RegisterBGIDriver
Insert

Eljrs

Szintaxis: Insert('Forrs karakterlnc', Cl karakterlnc, Pozci);


Paramterek: Forrs karakterlnc: String; var Cl karakterlnc: String; Pozci:
Integer.
Az eljrs-a megadott pozcinl beszr egy karakterlncot egy msikba.
Lsd mg: Delete, Copy, Concat, Length, Pos
InsLine

Eljrs (Crt egysg)

Szintaxis: InsLine;
Az eljrs beszr egy res sort a kurzor pozcijba. Az res sor hosszt az aktulis
szveges ablak hatrozza meg. A kurzor alatti sorok eggyel lejjebb toldnak, az
utols sor kiesik.
Lsd mg: DeILine, Window

InstallUserDriver

Fggvny (Graph egysg)

Szintaxis: InstallUserDriver('Nv', nil)


Paramter: Nv: String; AutoDetectPtr: Pointer; az eredmny tpusa: Integer
A fggvnnyel sajt kszts grafikus meghajtt szerkeszthetnk a programhoz. A
meghajtt az InitGraph tlt be. Az AutoDetectPtr mutat vagy nil rtk, vagy arra
a rutinra mutat, amely a meghajt megltt ellenrzi.
Lsd mg: InitGraph, InstallUserFont, RegisterBGIDriver
InstallUserFont

Fggvny (Graph egysg)

Szintaxis: InstallUserFont('Karakterkszlet llomnynv');


Paramter: Karakterkszlet llomnynv: String, az eredmny tpusa: Integer
A fggvnnyel felhasznli karakterkszletet szerkeszthetnk a programhoz.
Egyszerre legfeljebb 20 felhasznli karakterkszletet hasznlhatunk.
Lsd mg: InstallUserDriver, RegisterBGIFont, SetTextStyle
Int

Fggvny

Szintaxis: Int(numerikus kifejezs)


Paramter: numerikus kifejezs: Real, az eredmny tpusa: Real
A fggvny valamely vals szm egsz rszt adja vissza.
Lsd mg: Frac, Trunc, Round
Intr

Eljrs (Dos egysg)

Szintaxis: Intr(megszaktsszm, regiszter);


Paramter: megszaktsszm: Byte; var regiszter: Registers.
Az eljrs szoftvermegszaktst hajt vgre a megadott regiszterekkel. A regiszter
vltoz segtsgvel paramtereket adhatunk t, s tvehetjk az eredmnyt.
A Registers adattpust a Dos egysg deklarlja:
Registers = record case Integer of
0:(AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags:Word);
1:(AL,AH,BL,BH,CL,CH,DL,DH:Byte);
end;

Lsd mg: MsDos


IOResult

Fggvny

Szintaxis: IOResult
Az eredmny tpusa: Integer
A fggvny az ellenrztt be- s kivitelek hibakdjt adja vissza, ha az automatikus
I/O ellenrzst kikapcsoltuk a {$I-} direktvval. Ha az eredmny 0, akkor a
mvelet sikeres volt. A nem nulla rtk azt jelzi, hogy az ellenrzs sorn hiba

lpett fel.
Lsd mg: GraphResult
Keep

Eljrs (Dos egysg)

Szintaxis: Keep(numerikus kifejezs)


Paramter: numerikus kifejezs: Word
Az eljrs befejezi a program futst, s a programot rezidensen benn tartja a
memriban. Paramterknt a kilpsi kd (Exitcode) adhat meg, amelyet a DOS
vagy a hv program is megkap.
Lsd mg: DosExitCode
KeyPressed

Fggvny (Crt egysg)

Szintaxis: KeyPressed
Az eredmny tpusa: Boolean
A fggvny azt vizsglja, hogy a billentyzetpufferben van-e kiolvashat karakter.
Ha van, akkor True rtket ad vissza.
Lsd mg: ReadKey
Fggvny

Length

Szintaxis: Length('karakterlnc');
Paramter: karakterlnc: String, az eredmny tpusa: Integer
A fggvny visszaadja valamely karakterlnc karaktereinek szmt.
Lsd mg: Concat, Copy, Delete, Insert, Pos
Line

Eljrs (Graph egysg)

Szintaxis: Line(X1, Y1, X2, Y2);


Paramter: X1, Y1, X2, Y2: Integer.
Az eljrs - grafikus mdban - vonalat rajzol az (X1, Y1), illetve az (X2, Y2) ltal
megadott pontok kztt. A rajzols sznt, a vonalstlust s az rsi mdot a
SetColor, a SetLineStyle s a SetWriteMode eljrsokkal lehet belltani.
Lsd mg: LineTo, MoveTo, Rectangle, SetColor, SetLineStyle, SetWriteMode
LineRel

Eljrs (Graph egysg)

Szintaxis: LineRel(Xtvolsg, Ytvolsg);


Paramterek: Xtvolsg, Ytvolsg: Integer.
Az eljrs - grafikus mdban - az aktulis grafikus kurzor pozcijbl kiindulva
vonalat rajzol. A vonal vgpontjnak vzszintes s fggleges koordintit a
mindenkori kurzorpozci s a tvolsgrtkek sszege adja meg (pl.
Xvgpont:=GetX+Xtvolsg). A grafikus kurzor ezutn ebbe a pontba kerl. A

rajzolsznt, a vonalstlust s az rsi mdot a SetColor, a SetLineStyle s a


SetWriteMode eljrsok lltjk be.
Lsd mg: Line, LineTo, MoveRel, MoveTo, SetColor, SetLineStyle,
SetWriteMode
LineTo

Eljrs (Graph egysg)

Szintaxis: LineTo(X, Y);


Paramterek: X, Y: Integer
Az eljrs - grafikus mdban - az aktulis grafikus kurzorpozcitl kezdve az X s
Y paramterekkel megadott koordintapontig. A grafikus kurzor ezutn ebbe a
pontba kerl. A rajzolsznt, a vonalstlust s az rsi mdot a SetColor, a
SetLineStyle s a SetWriteMode eljrsok lltjk be.
Lsd mg: Line, LineRel, MoveTo, MoveRel, SetColor, SetLineStyle,
SetWriteMode
Fggvny

Ln

Szintaxis: Ln(numerikus kifejezs)


Paramter: numerikus kifejezs: Real; az eredmny tpusa: Real.
A fggvny valamely numerikus kifejezs termszetes alap logaritmust adja
vissza. A fggvny alapja az "e" (2,7182818285) termszetes szm. Ha ezt a
szmot az eredmnnyel hatvnyozzuk, akkor visszakapjuk a megadott numerikus
kifejezst.
Lsd mg: Exp
Fggvny

Lo

Szintaxis: Lo(numerikus kifejezs)


Paramter: numerikus kifejezs: Integer vagy Word, az eredmny: Byte
A fggvny valamely numerikus kifejezs als bjtjt adja vissza.
Lsd mg: Hi, Swap
LowVideo

Eljrs (Crt egysg)

Szintaxis: LowVideo;
Az eljrs - szveges zemmdban - alacsony fnyert llt be a tovbbi kpernys
kirsokhoz.
Lsd mg: HighVideo, NormVideo, TextColor, TextBackground
Mark

Szintaxis: Mark(mutat);
Paramter: var mutat: Pointer

Eljrs

Az eljrs a vltozba menti a heap-mutatt.


Lsd mg: Release, Dispose, FreeMem, GetMem, New
Fggvny

MaxAvail

Szintaxis: MaxAvail
Az eredmny tpusa: Longint
A fggvny visszaadja a dinamikus memriaterleten lefoglalhat legnagyobb
egybefgg rsz mrett.
Lsd mg: MemAvail
Fggvny

MemAvail

Szintaxis: MemAvail
Az eredmny tpusa: Longint
A fggvny visszaadja a dinamikus memria szabad terleteinek sszegt.
Lsd mg: MaxAvail
MkDir

Eljrs

Szintaxis: MkDir('karakterlnc');
Paramter: karakterlnc: String
Az eljrs alknyvtrat hoz ltre a megadott nven. A nevet a DOS szablyai
szerint kell definilni. A mvelet sikere az IOResult fggvnnyel krdezhet le.
Ebben az esetben a {$I-} direktvval ki kell kapcsolni az automatikus I/O
ellenrzst. Ha az eredmny 0, akkor a mvelet sikeres volt, ha viszont nem nulla,
akkor hiba trtnt.
Lsd mg: RmDir, ChDir, GetDir
Move

Eljrs

Szintaxis: Move(forrs, cl, hossz);


Paramter: var forrs: tetszleges tpus; var cl: tetszleges tpus; hossz: Word.
Az eljrs a forrssal meghatrozott memriacmrl a clterletre msolja a
megadott szm bjtot.
Lsd mg: FillChar
MoveRel

Eljrs (Graph egysg)

Szintaxis: MoveRel(Xtvolsg, Ytvolsg);


Paramterek: Xtvolsg: Integer; Ytvolsg: Integer
Az eljrs - grafikus mdban - az aktulis pozcihoz kpest mozgatja a grafikus
kurzort. A mozgs vgpontjnak vzszintes s fggleges koordintit a
mindenkori kurzorpozci s a megadott tvolsgok sszege adja (pl.

Vgpont:=GetX+Xtvolsg).
Lsd mg: LineRel, LineTo. MoveTo. GetX, GetY
MoveTo

Eljrs (Graph egysg)

Szintaxis: MoveTo(X, Y);


Paramter: X, Y: Integer
Az eljrs - grafikus mdban - az (X, Y) paramterekkel meghatrozott pontba
viszi a grafikus kurzort.
Lsd mg: GetMaxX, GetMaxY, GetX, GetY, MoveRel
MsDos

Eljrs (Dos egysg)

Szintaxis: MsDos(regiszter);
Paramter: var regiszter: Registers
Az eljrs meghv egy DOS rendszerfunkcit. A hvs megfelel az Intr eljrs $21
megszaktsszmmal val hvsnak: Intr($21, Regiszter);
A Registers tpust a Dos egysg deklarlja:
Registers=record
case Integer of
0:(AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags:Word);
1:(AL,AH.BL,BH,CL,CH,DL,DH:Byte); end;

Lsd mg: Intr


New

Eljrs/fggvny

Szintaxis: New(mutatnv [, konstruktor-metdus]);


Paramter: var mutatnv: Pointer; konstruktor-metdus: Constructor
Az eljrssal a memribl foglalhatunk le terletet valamely tetszleges
mutatvltoz szmra, amely a lefoglalt terlet kezdcmt tartalmazza majd. A
lefoglalt terlet mrett a vltozk adattpusa hatrozza meg. Az eljrs
objektumorientlt kiterjesztsben a mutat valamely objektumtpusra mutat, s az
eljrs meghvhatja az objektumhoz tartoz konstruktor metdust.
A New fggvnyknt is hasznlhat. Ebben az esetben valamely tetszleges tpus
mutatjt kapja, s a lefoglalt terlet cmt adja vissza. Ha konstruktort is tadunk,
akkor az els paramternek objektum tpusra kell mutatnia. Ilyenkor a fggvny
automatikusan meghvja a konstruktort is, s a dinamikus objektumra mutat
rtket adja vissza.
Lsd mg: GetMem, Dispose, FreeMem, Release
NormVideo

Eljrs (Crt egysg)

Szintaxis: NormVideo;
Az eljrs - szveges zemmdban - a karakterek kirsi mdjt visszalltja a

program indulsakor megadott rtkre.


Lsd mg: HighVideo, LowVideo, TextColor, TextBackground
Eljrs (Crt egysg)

NoSound

Szintaxis: NoSound;
Az eljrs kikapcsolja a Sound eljrssal bekapcsolt hangjelzst.
Lsd mg: Sound
Odd

Fggvny

Szintaxis: Odd(numerikus kifejezs)


Paramter: numerikus kifejezs: Longint, az eredmny tpusa Boolean
A fggvny megvizsglja, hogy a megadott numerikus rtk pratlan szm-e. Ha a
kifejezs pratlan szm, akkor a True rtket adja vissza, egybknt False lesz az
eredmny.
Ofs

Fggvny

Szintaxis: Ofs(argumentum)
Paramter: argumentum: vltoz vagy fggvny-/eljrsnv, az eredmny tpusa:
Word
A fggvny visszaadja a szban forg vltoz, fggvny vagy eljrs
memriacmnek eltolsi rszt.
Lsd mg: Seg, Addr
Ord

Fggvny

Szintaxis: Ord(Sorszmozott kifejezs)


A fggvny a megadott kifejezs sorszmt adja vissza.
OutText

Eljrs (Graph egysg)

Szintaxis: OutText(`karakterlnc');
Paramter: karakterlnc: String
Grafikus mdban ezzel az eljrssal lehet a grafikus kurzor pozcijba valamely
tetszleges szveget kirni. A numerikus kifejezseket elbb az Str eljrssal
karakterlncc kell alaktani. Az rsmd s az irny a SetTextStyle s a
SetTextJustify eljrsokkal llthat be.
Lsd mg: OutTextXY, SetTextStyle, SetTextJustify, GetTextSettings, TextHeight,
TextWidth, SetUserCharSize, Str
OutTextXY

Eljrs (Graph egysg)

Szintaxis: OutTextXY(X, Y, 'karakterlnc');


Paramter: X,Y: Integer; karakterlnc: String
Az eljrs - grafikus mdban - tetszleges szveget r ki az (X, Y) paramterekkel
meghatrozott pozciba. A numerikus kifejezseket elbb - az Str eljrssal karakterlncc kell alaktani. Az rsmd s az irny a SetTextStyle s a
SetTextJustify eljrsokkal llthat be.
Lsd mg: OutText, SetTextStyle, SetTextJustify, GetTextSettings, TextHeight,
TextWidth, SetUserCharSize, Str
OvrClearBuf

Eljrs (Overlay egysg)

Szintaxis: OvrClearBuf;
Az eljrs trli a memribl valamennyi betlttt overlay egysget, s az sszes
lefordtott overlay egysget tartalmaz .OVR llomnybl jra betlti a szksges
kdszegmenst.
Lsd mg: OvrGetBuf, OvrSetBuf
OvrGetBuf

Fggvny (Overlay egysg)

Szintaxis: OvrGetBuf
Az eredmny tpusa: Longint
A fggvny visszaadja az overlay terlet szmra fenntartott memria mrett
bjtokban. A terlet legalbb akkora, mint a program legnagyobb overlay egysge.
Lsd mg: OvrInit, OvrInitEMS, OvrSetBuf
OvrGetRetry

Fggvny (Overlay egysg)

Szintaxis: OvrGetRetry
Az eredmny tpusa: Longint
A fggvny visszaadja a Turbo Pascal-ban az overlay egysgek szmra fenntartott
overlay-vlt prbaterlet mrett.
Lsd mg: OvrSetRetry
OvrInit

Eljrs (Overlay egysg)

Szintaxis: OvrInit('llomnynv');
Paramter: llomnynv: String
Az eljrs inicializlja az overlay-kezelt, s megnyitja a karakterlnccal megadott
.OVR kiterjeszts llomnyt, amelyben a program valamennyi lefordtott overlay
egysge tallhat.
Lsd mg: OvrGetBuf, OvrInitEMS, OvrSetBuf
OvrInitEMS

Eljrs (Overlay egysg)

Szintaxis: OvrInitEMS;
Az eljrs az sszes lefordtott overlay egysget tartalmaz, .OVR kiterjeszts
overlay llomnyt tmsolja az EMS krtya memrijba, ha annak elegend a
szabad terlete. Ily mdon elmarad az overlay egysgek lemezrl val idignyes
betltse.
Lsd mg: OvrGetBuf, OvrInit, OvrSetBuf
OvrSetBuf

Eljrs (Overlay egysg)

Szintaxis: OvrSetBuf(mret);
Paramter: mret: Longint
Az eljrs belltja az overlay terlet bjtokban mrt mrett.
Lsd mg: OvrGetBuf
OvrSetRetry

Eljrs (Overlay egysg)

Szintaxis: OvrSetRetry(mret);
Paramter: mret: Longint
Az eljrs belltja az overlay-vlts prbaterletnek bjtokban mrt mrett lltja
be. Ha a ksbbiekben nem hivatkoznak azon overlay egysgek eljrsaira s
fggvnyeire, amelyek a fenntartott prbaterleten vannak, akkor ezek az egysgek
kikerlnek onnan.
Lsd mg: OvrGetRetry
PackTime

Eljrs (Dos egysg)

Szintaxis: PackTime(Dtum id, Id);


Paramter: var Dtumid: DateTime; var Id: Longint
Az eljrs a DateTime adattpus paramterrel megadott dtumot s idt pakolt
formban adja vissza a Longint tpus vltozban. A SetFTime eljrs pldul
pakolt formban vrja a dtumot.
A DateTime adattpust a Dos egysg deklarlja:
DateTime = record
Year, Month, {v 1980..2099, hnap 1..12}
Day, Hour, {nap 1..31, ra 0..23}
Min, Sec: Word; {percek, msodpercek 0..59}
end;

Lsd mg: UnpackTime, GetFTime, SetTime, SetFTime, SetTime


ParamCount

Fggvny

Szintaxis: ParamCount
Az eredmny tpusa: Word
A fggvny a programnak tadott parancssor paramterek szmt adja vissza.
Lsd mg: ParamStr

Fggvny

ParamStr

Szintaxis: ParamStr(numerikus kifejezs)


Paramter: numerikus kifejezs: Word; az eredmny tpusa: String
A fggvny karakterlncknt adja vissza a numerikus kifejezssel meghatrozott
sorszm parancssor paramtert.
Lsd mg: ParamCount, FSplit
Fggvny

Pi

Szintaxis: Pi
Az eredmny tpusa: Real
A fggvny a Pi matematikai lland rtkt adja viszsza (3,1415...).
Lsd mg: ArcTan, Cos, Sin
PieSlice

Eljrs (Graph egysg)

Szintaxis: PieSlice(X, Y, Kezdszg, Zrszg, Sugr);


Paramterek: X,Y: Integer; Kezdszg, Zrszg, Sugr: Word
Az eljrs - grafikus mdban - az adott sugrral krcikket rajzol az (X, Y)
paramterekkel megadott kzppont krl. A kezd- s a zrszget fokokban kell
megadni. A kitltsi mintt a SetFillPattern s a SetFillStyle eljrsokkal lehet
belltani.
Lsd mg: Arc, Circle, Ellipse, GetArcCoords, GetAspectRatio, SetAspectRatio,
SetFillStyle, SetFillPattern
Pos

Fggvny

Szintaxis: Pos('Rsz karakterlnc', 'Teljes karakterlnc');


Paramter: Rsz karakterlnc, Teljes karakterlnc: String; az eredmny tpusa:
Byte.
A fggvny olyan karakterlnc pozcijt adja vissza, amelynek valamennyi
karaktere - azonos sorrendben - megismtldik valamely msik karakterlncban.
Ha a Teljes karakterlnc vltozban nem tallhat meg az adott karakterlnc, akkor
a fggvny nullt ad vissza.
Lsd mg: Copy, Delete, Insert, Length
Pred

Fggvny

Szintaxis: Pred(sorszmozott kifejezs)


Az eredmny tpusa sorszmozott tpus.
A fggvny a megadott sorszmozott kifejezs sorszm szerinti elz rtkt adja
vissza.
Lsd mg: Dec, Inc, Succ

Fggvny

Ptr

Szintaxis: Ptr(Szegmens, Eltols)


Paramter: Szegmens, Eltols: Word, az eredmny tpusa: Pointer
A fggvny olyan mutatt ad vissza, amely a memria Szegmens:Eltols cmre
mutat. Az eredmnyt a ^ jellel a cm kzvetlen elrsre hasznlhatjuk.
Lsd mg: Addr
PutImage

Eljrs (Graph egysg)

Szintaxis: PutImage(X, Y, Bittrkp, BitBlt);


Paramterek: X, Y: Integer; var Bittrkp: tpus nlkli paramter; BitBlt: Word
Az eljrs - grafikus mdban - a memribl a kpernyre msolja a megadott
ngyszgletes kpet. A kp bal fels sarkt az (X, Y) hatrozza meg. A Bittrkp
vltoz a kpadatok memriabeli kezdcmt tartalmazza. A BtBlt paramter (BitBlock-Transfer) a kp s a clhely kapcsolatnak tpust adja meg.
Lsd mg: GetImage, ImageSize
PutPixel

Eljrs (Graph egysg)

Szintaxis: PutPixel(X, Y, szn);


Paramter: X, Y: Integer; szn: Word
Az eljrs - grafikus mdban - szn sznre lltja az (X, Y) paramterekkel
megadott kppontot.
Lsd mg: GetImage, GetPixel, PutImage
Random

Fggvny

Szintaxis: Random[(tartomny)]
Paramter: tartomny: Word
Az eredmny tpusa: Real vagy Word (a hvstl fggen).
A fggvny 0 s 1 kztti vletlen szmot ad vissza. Ha az opcionlis Tartomny
paramtert is megadjuk, akkor a vletlen szm 0 vagy annl nagyobb, de a szban
forg rtknl kisebb lesz. Ha a vletlen szmok eltr sorozatt szeretnnk
ismtelt fggvnyhvssal elrni, akkor a Randomize eljrst kell hvni, amely
vletlen kiindul helyzetbe lltja a vletlenszm-genertort.
Lsd mg: Randomize
Randomize

Szintaxis: Randomize;
Az eljrs vletlen kiindul helyzetbe lltja a vletlenszm-genertort.
Lsd mg: Random

Eljrs

Eljrs

Read

Szintaxis: Tpusos llomnyokra:


Read(llomnyvltoz, Vltoz1 [, Vltoz2, . , Vitoz n]);
Szveges llomnyokra:
Read([llomnyvltoz], Vltoz 1 [, Vltoz 2, . , Vltoz n));
Paramter:
Tpusos llomnyokra:
var llomnyvltoz: File of tetszleges tpus (az llomnyok s az objektumok
kivtelvel); Vltoz1, . ., Vltoz n: mint az llomny komponensei;
Szveges llomnyokra:
var llomnyvltoz: Text; Vltoz1, . ., Vltoz n: Char, Integer, Real vagy
String
Az eljrs valamely megnyitott tpusos llomnybl egy vagy tbb komponenst
beolvas a megadott vltozkba. A vltozk tpusa megegyezik az llomny
komponenseinek tpusval. Az eljrs msik formja - az opcionlis llomny
paramter nlkl - a billentyzetrl olvas a megadott vltozba. Vltozknt Char
s String, illetve vals s egsz adhat meg. Ha megadjuk az opcionlis
llomnyvltozt, akkor az eljrs a megnyitott szveges llomnybl olvas be egy
vagy tbb komponenst a vltozkba.
Lsd mg: ReadLn, ReadKey, Write, WriteLn
ReadKey

Fggvny (Crt egysg)

Szintaxis: ReadKey
Az eredmny tpusa: Char
A fggvny kiolvas egy karaktert a billentyzetpufferbl, de nem rja ki azt a
kpernyre.
Lsd mg: KeyPressed
ReadLn

Eljrs

Szintaxis: ReadLn([llomnyvltoz] Vltoz1 [, Vltoz2, . , Vltoz n]);


Paramter: var llomnyvltoz: Text; Vltoz1, . ., Vltoz n: Char, egsz, vals
vagy String
Az eljrs a Read bvtse. Valamely megnyitott szveges llomnybl olvas be
egy vagy tbb komponenst a vltozkba, majd automatikusan a sor vgre ugrik.
Vltozknt Char s String, illetve vals s egsz adhat meg. Az opcionlis
llomnyvltoz megadsa nlkl az eljrs a billentyzetrl olvas be a megadott
vltozkba, a bevitel vgt az Enter zrja.
Lsd mg: Read, Write, WriteLn
Rectangle

Eljrs (Graph egysg)

Szintaxis: Rectangle(X1, Y1, X2, Y2);


Paramter: X1, Y1, X2, Y2: Integer
Az eljrs - grafikus mdban - ngyszget rajzol a megadott koordintkkal. Az
(X1, Y1) a bal fels, az (X2, Y2) pedig a jobb als cscsot hatrozza meg.
Lsd mg: Bar, Bar3D, GetViewSettings, Line, SetColor, SetLineStyle,
SetWriteMode
RegisterBGIDriver

Fggvny (Graph egysg)

Szintaxis: RegisterBGIDriver(meghajt)
Paramter: meghajt: Pointer; az eredmny tpusa: Integer
A fggvny egy .OBJ llomnybl betlttt, vagy a programhoz szerkesztett
grafikus meghajtt regisztrl. Vrja a meghajt kezdcmt, amelyet bejegyez egy
bels tblzatba. A regisztrlsnak az InitGraph hvsa eltt kell lezajlania. A
regisztrlt meghajtkat a program a tovbbiakban mr nem keresi a lemezen, a
.BGI llomnyokban.
Lsd mg: InitGraph, InstallUserDriver, RegisterBGIFont
RegisterBGIFont

Fggvny (Graph egysg)

Szintaxis: RegisterBGIFont(karakterkszlet)
Paramter: karakterkszlet: Pointer; az eredmny tpusa: Integer
A fggvny egy .OBJ llomnybl betlttt, vagy a programhoz szerkesztett
vektorokkal lert karakterkszletet regisztrl. Vrja a karakterkszlet kezdcmt,
amelyet bejegyez egy bels tblzatba. A regisztrlsnak az InitGraph hvsa eltt
kell lezajlania. A regisztrlt karakterkszleteket a program a tovbbiakban mr nem
keresi a lemezen, a .CHR llomnyokban.
Lsd mg: InitGraph, InstallUserFont, RegisterBGIDriver
Release

Eljrs

Szintaxis: Release(mutat);
Paramter: var mutat: Pointer
Az eljrs trli valamennyi dinamikus vltozt, amelyet a Mark hvsa ta a New
vagy a GetMem eljrssal foglaltunk le. A mutatvltoz rtkt a Mark eljrs
elzetes hvsval llthatjuk be.
Lsd mg: Mark, Dispose, FreeMem
Rename

Eljrs

Szintaxis: Rename(llomnynv, 'jnv');


Paramterek: var llomnynv: tetszleges llomnyvltoz; j nv: String
Az eljrs tnevezi valamelyik lemezes llomnyt. Az llomnynv vltozhoz
elzleg tetszleges fizikai llomnyt kell rendelni az Assign eljrs meghvsval.

A megfelel DOS paranccsal ellenttben, az llomny az eljrssal tmozgathat


egy msik katalgusba is, ha az j nvben egy msik katalgust adunk meg.
Lemezek kztt azonban nem lehet tnevezni.
Lsd mg: Erase
Reset

Eljrs

Szintaxis: Reset(llomnyvltoz[, rekordmret]);


Paramter: var llomnyvltoz: tetszleges llomnyvltoz; rekordmret: Word
(csak tpus nlkli llomny esetn).
Az eljrs megnyit egy kls llomnyt, amelyet elzleg az Assign eljrssal
valamely fizikai llomnyhoz rendeltnk. A kls llomnynak lteznie kell,
klnben hiba lp fel. Az opcionlis Word tpus rekordmret vltozt csak tpus
nlkli llomnyok esetben lehet megadni. A mvelet sikere az IOResult
fggvnnyel krdezhet le. Ebben az esetben a {$I-} direktvval ki kell kapcsolni
az automatikus I/O ellenrzst. Ha az eredmny 0, akkor a mvelet sikeres volt, ha
viszont nem nulla, akkor hiba trtnt.
Lsd mg: Append, Assign, Rewrite, Truncate
RestoreCrtMode

Eljrs (Graph egysg)

Szintaxis: RestoreCrtMode;
Az eljrs abba a szveges zemmdba kapcsolja vissza a kpernyt, amely a
grafikus md eltt volt aktv.
Lsd mg: DetectGraph, InitGraph, SetGraphMode, TextMode
Rewrite

Eljrs

Szintaxis: Rewrite(llomnyvltoz[, rekordmret]);


Paramter: var llomnyvltoz: tetszleges llomnyvltoz; rekordmret: Word
(csak tpus nlkli llomny esetn).
Az eljrs ltrehoz s megnyit egy fizikai llomnyt, amelyet elzleg az Assign
eljrssal valamely llomnyvltozhoz kell rendelni. Ha az llomny a hvskor
mr ltezik, akkor az eljrs elbb trli, majd jonnan ltrehozza azt. Az opcionlis
rekordmret csak tpus nlkli llomnyok esetben adhat meg. A mvelet sikere
az IOResult fggvnnyel krdezhet le. Ebben az esetben a {$I-} direktvval ki
kell kapcsolni az automatikus I/O ellenrzst. Ha az eredmny 0, akkor a mvelet
sikeres volt, ha viszont nem nulla, akkor hiba trtnt.
Lsd mg: Append, Assign, Reset, Truncate
RmDir

Szintaxis: RmDir('karakterlnc');
Paramter: karakterlnc: String

Eljrs

Az eljrs trli a karakterlnccal megadott res katalgust. A mvelet sikere az


IOResult fggvnnyel krdezhet le. Ebben az esetben a {$I-} direktvval ki kell
kapcsolni az automatikus I/O ellenrzst. Ha az eredmny 0, akkor a mvelet
sikeres volt, ha viszont nem nulla, akkor hiba trtnt.
Lsd mg: ChDir, GetDir. MkDir
Fggvny

Round

Szintaxis: Round(numerikus kifejezs)


Paramter: numerikus kifejezs: Real
Az eredmny tpusa: Longint
A fggvny - a kerektsi szablyoknak megfelelen felfel vagy lefel - a
numerikus kifejezst a legkzelebbi egszre kerekti.
Lsd mg: Int, Trunc
RunError

Eljrs

Szintaxis: RunError[(hibakd)];
Paramter: hibakd: Word
Az eljrs a hvs helyn vget vet a programnak. Opcionlisan hibazenet rathat
ki a megadott hibakddal.
Lsd mg: Halt, Exit
Sector

Eljrs (Graph egysg)

Szintaxis: Sector(X, Y, Kezdszg, Zrszg, Xsugr, Ysugr);


Paramterek: X, Y: Integer; Kezdszg, Zrszg, Xsugr, Ysugr: Word
Az eljrs - grafikus mdban - ellipsziscikket rajzol. A szgeket fokokban kell
megadni. Az Xsugr a horizontlis, az Ysugr pedig a vertiklis kiterjedst
hatrozza meg. A kitltsi minta a SetFillPattern s a SetFillStyle eljrsokkal
llthat be.
Lsd mg: Arc, Circle, Ellipse, GetArcCoords, GetAspectRatio, PieSlice,
SetAspectRatio, SetFillStyle, SetFillPattern, SetLineStyle, SetGraphBufSize
Seek

Eljrs

Szintaxis: Seek(llomnyvltoz, pozci);


Paramter: var llomnyvltoz: tetszleges llomnyvltoz (kivtel a Text);
pozci: Longint
Az eljrs egy megnyitott, tetszleges tpus (kivtel a Text) llomny Pozci
paramterrel megadott komponensre viszi az llomnymutatt. Az llomny
bvtshez - a Seek(llomnyvltoz, FileSize(llomnyvltoz) hvssal - az
llomny vgre kell vinni a mutatt. A mvelet sikere az IOResult fggvnnyel
krdezhet le. Ebben az esetben a {$I-} direktvval ki kell kapcsolni az

automatikus I/O ellenrzst. Ha az eredmny 0, akkor a mvelet sikeres volt, ha


viszont nem nulla, akkor hiba trtnt.
Lsd mg: FilePos
SeekEof

Fggvny

Szintaxis: SeekEof[(llomnyvltoz)]
Paramter: var llomnyvltoz: Text; az eredmny tpusa: Boolean
Ugyanaz, mint az Eof fggvny, de a pozci vizsglata eltt tlpi valamennyi
szkz, tabultor s sorvg karaktert. Fkpp numerikus rtkek beolvassakor
hasznlhat. A mvelet sikere az IOResult fggvnnyel krdezhet le. Ebben az
esetben a {$I-} direktvval ki kell kapcsolni az automatikus I/O ellenrzst. Ha az
eredmny 0, akkor a mvelet sikeres volt, ha viszont nem nulla, akkor hiba trtnt.
Lsd mg: Eof, SeekEoln
SeekEoln

Fggvny

Szintaxis: SeekEoln[(llomnyvltoz)]
Paramter: var llomnyvltoz: Text; az eredmny tpusa: Boolean.
Ugyanaz, mint az Eoln, de a pozci vizsglata eltt tlpi valamennyi szkzt s
tabultor karaktert. Fkpp numerikus rtkek beolvassakor hasznlhat. A
mvelet sikere az IOResult fggvnnyel krdezhet le. Ebben az esetben a {$I-}
direktvval ki kell kapcsolni az automatikus I/O ellenrzst. Ha az eredmny 0,
akkor a mvelet sikeres volt, ha viszont nem nulla, akkor hiba trtnt.
Lsd mg: Eoln, SeekEof
Seg

Fggvny

Szintaxis: Seg(argumentum)
Paramter: argumentum: vltoz vagy fggvny-/eljrsnv; az eredmny tpusa:
Word
A fggvny a szban forg vltoz, fggvny vagy eljrs memriabeli
szegmenscmt adja vissza.
Lsd mg: Addr, Ofs
SetActivePage

Eljrs (Graph egysg)

Szintaxis: SetActivePage(grafikus lap);


Paramter: grafikus lap: Word
Grafikus mdban ezzel az eljrssal hatrozhat meg, hogy a grafikus krtya
melyik lapjra vonatkozzanak a rajzol utastsok, ha a krtynak tbb lapja is van
(pl. az EGA, a VGA s a Hercules krtyn legalbb kt lap van). Ebben az esetben
a httrben rajzolhatunk az aktv lapra. Ha vltogatjuk a lapokat, amelyekre a
httrben rajzoltunk, akkor mozg grafikt llthatunk el anlkl, hogy villogst

ltnnk. Vltani a SetVisualPage eljrssal kell.


Lsd mg: SetVisualPage
SetAllPalette

Eljrs (Graph eljrs)

Szintaxis: SetAllPalette(Paletta);
Paramter: var Paletta: tpus nlkli paramter.
Az eljrs - grafikus mdban - j sznpalettt llt be.
Lsd mg: GetBkColor, GetColor, GetPalette, GraphResult, SetBkColor, SetColor,
SetPalette, SetRGBPalette
SetAspectRatio

Eljrs (Graph egysg)

Szintaxis: SetAspectRatio(vzszintes korrekci, fggleges korrekci);


Paramter: vzszintes korrekci, fggleges korrekci: Word
Valamennyi kpernyn klnbzik a vzszintes s a fggleges sorokban lv
kppontok szma. Ahhoz, hogy a kr alak objektumok valban kerekek legyenek,
korrekcis rtket kell megadni, amelyet a grafikus eljrsok (Arc, Circle, PieSlice)
automatikusan felhasznlnak. Ha a betlttt grafikus meghajtval nem kapunk
optimlis eredmnyt, akkor az eljrssal adhatjuk meg a korrekcis rtkeket. A
Vzszintes korrekci s a Fggleges korrekci paramter rtkt a vzszintes s a
fggleges kppontok arnybl lehet kiszmtani.
Lsd mg: GetAspectRatio
SetBkColor

Eljrs (Graph egysg)

Szintaxis: SetBkColor(sznszm)
Paramter: sznszm: Word
Grafikus mdban ezzel az eljrssal lehet a httrsznt a sznpaletta adott sznre
belltani.
Lsd mg: GetBkColor, GetColor, GetPalette, SetAllPalette, SetColor, SetPalette,
SetRGBPalette
SetCBreak

Eljrs (Dos egysg)

Szintaxis: SetCBreak(megszakts);
Paramter: megszakts: Boolean
Az eljrs belltja, hogy a DOS mely hvsok sorn vizsglja a program Ctrl-Pause
billentykombincival val megszaktst.
Lsd mg: GetCBreak
SetColor

Eljrs (Graph egysg)

Szintaxis: SetColor(szn);
Paramter: szn: Word
Az eljrs - grafikus mdban - meghatrozza, hogy a sznpaletta melyik sznvel
rajzoljunk.
Lsd mg: GetBkColor, GetColor, GetPalette, SetAllPalette, SetBkColor,
SetPalette, SetRGBPalette
SetDate

Eljrs (Dos egysg)

Szintaxis: SetDate(v, Hnap, Nap, Ht napja);


Paramter: v, Hnap, Nap, Ht napja: Word.
Az eljrs belltja az opercis rendszerben nyilvntartott dtumot. Az v
1980...2099, a hnap 1...12, a nap 1...31, a ht napja pedig 0...6 kztti rtkeket
vehet fel, ahol a 0 a vasrnapot jelenti.
Lsd mg: GetTime, GetDate, SetTime
SetFAttr

Eljrs (Dos egysg)

Szintaxis: SetFAttr(llomnyvltoz, attribtum);


Paramter: var llomnyvltoz: tetszleges tpus; attribtum: Byte
Az eljrs megvltoztatja valamely tetszleges llomny attribtumait. Az
llomnynv vltozt - az Assign eljrssal - elzleg valamely fizikai
llomnyhoz kell rendelni, de nem szabad megnyitni.
Lsd mg: GetFAttr, GetFTime, SetFTime
SetFillPattern

Eljrs (Graph egysg)

Szintaxis: SetFillPattern(kitlt minta, szn);


Paramter: kitlt minta: FillPatternType; szn: Word
Az eljrs - grafikus mdban - belltja a sajt kitlt mintt s a sznt.
Lsd mg: Bar, Bar3D, FillPoly, GetFillPattern, GetFillSettings, PieSlice,
SetFillStyle
SetFillStyle

Eljrs (Graph egysg)

Szintaxis: SetFillStyle(kitlt minta, szn);


Paramter: kitlt minta, szn: Word
Az eljrs - grafikus mdban - meghatrozza a kitltsi mintt s a sznt.
Lsd mg: Bar, Bar3D, FillPoly, GetFillPattern, GetFillSettings, PieSlice,
SetFillPattern
SetFTime

Eljrs (Dos egysg)

Szintaxis: SetFTime(llomnyvltoz, dtum id);


Paramter: var llomnyvltoz: tetszleges tpus; dtum id: Longint
Az eljrs tlltja valamely megnyitott llomny legutols megvltoztatsnak
dtumt s idejt. A dtum id vltozban pakolt formban kell megadni az rtket.
Ezt a PackTime eljrssal tehetjk meg.
Lsd mg: GetFTime, PackTime, UnpackTime
SetGraphBufSize

Eljrs (Graph egysg)

Szintaxis: SetGraphBufSize(memriamret);
Paramter: memriamret: Word
Mieltt grafikus mdba vltunk, a szban forg eljrssal legfeljebb 64 Kbjtra kell
megnvelni a felletkitltsek s a sokszgek rajzolshoz fenntartott
memriaterletet. Alaphelyzetben, amikor az InitGraph eljrssal grafikus mdba
kapcsolunk, 4096 bjtos ez a terlet.
Lsd mg: FloodFill, FillPoly, InitGraph
SetGraphMode

Eljrs (Graph egysg)

Szintaxis: SetGraphMode(grafikus md);


Paramter: grafikus md: Integer
Az eljrs - grafikus mdban - belltja a megadott zemmdot. Trli a kpernyt,
s az sszes grafikus jellemzt (rajzol szn, ablak, grafikus kurzor stb.)
visszalltja az alaphelyzetbe.
Lsd mg: ClearDevice, DetectGraph, GetGraphMode, InitGraph,
RestoreCrtMode, GraphResult, GetMaxMode, GetModeRange
SetIntVec

Eljrs (Dos egysg)

Szintaxis: SetIntVec(megszaktsszm, vektor);


Paramter: megszaktsszm: Byte; vektor: Pointer
Az eljrs az adott szm megszaktsi vektort arra a memriacmre lltja, amelyre
a vektor mutat.
Lsd mg: GetIntVec
SetLineStyle

Eljrs (Graph egysg)

Szintaxis: SetLineStyle(vonalstlus, minta, vonalvastagsg);


Paramterek: vonalstlus, minta, vonalvastagsg: Word
Az eljrs - grafikus mdban - belltja a vonalstlust, a mintt s a vastagsgot. Ha
a vonalstlus paramter rtke 4, akkor a minta hatrozza meg a mintt, egybknt
az eljrs ez utbbit nem veszi figyelembe.
Lsd mg: DrawPoly, GetLineSettings, Line, LineRel, LineTo, GraphResult,
SetWriteMode

SetPalette

Eljrs (Graph egysg)

Szintaxis: SetPalette(sznszm, szn);


Paramter: sznszm: Word; szn: Shortint
Az eljrs - grafikus mdban - tlltja a sznpaletta kivlasztott sznt. A
SetPalette(0,Red) hvs hatsra valamennyi nulls (fekete) sznnel rajzolt vagy
kitlttt objektum piros szn lesz.
Lsd mg: GetBkColor, GetColor, GetPalette, SetAllPalette, SetBkColor, SetColor,
SetRGBPalette
SetRGBPalette

Eljrs (Graph egysg)

Szintaxis: SetRGBPalette(sznszm, vrs rtk, zld rtk, kk rtk);


Paramter: sznszm, vrs rtk, zld rtk, kk rtk: Integer
Az eljrs - grafikus mdban - tlltja az IBM8514 tpus vagy a 256 szn VGA
adapter sznpalettjt. Az eljrs a sznparamterek als bjtjbl csupn a fels hat
bitet veszi figyelembe.
Lsd mg: GetBkColor, GetColor, SetBkColor, SetColor, SetPalette
SetTextBuf

Eljrs

Szintaxis: SetTextBuf(llomnyvltoz, tmeneti tr [, mret]);


Paramterek: var llomnyvltoz Text; var tmeneti tr: tetszleges tpus; mret:
Word
Az eljrs lefoglal a memriban egy terletet valamely szveges llomnyvltoz
szmra. Ebben a memriban a rendszer az tmeneti adatokat trolja. Valamennyi
szveges llomnyvltozhoz egy-egy 128 bjtos terlet tartozik. Ha nagyobb a
felhasznli program, akkor ez a terlet a feladattl fggen megnvelhet - ebben
az esetben a futs is felgyorsul. Az eljrst nem szabad nyitott llomnyra
hasznlni, klnben elvesznek a fenntartott terleten lv adatok.
SetTextJustify

Eljrs (Graph egysg)

Szintaxis: SetTextJustify(vzszintes, fggleges);


Paramter: vzszintes, fggleges: Word
Az eljrs - grafikus mdban - a grafikus kurzor aktulis pozcijhoz kpest lltja
be a szveg helyzett. A kpernyre az OutText s OutTextXY eljrsokkal
rhatunk ki szveget.
Lsd mg: OutText, OutTextXY, SetTextStyle, TextHeight, TextWidth,
GetTextSettings, SetUserCharSize
SetTextStyle

Eljrs (Graph egysg)

Szintaxis: SetTextStyle(karakterkszlet, irny, karaktermret);


Paramter: karakterkszlet, Irny, Karaktermret: Word
Az eljrs - grafikus mdban - belltja a szvegek kirsakor hasznlt
karakterkszletet, irnyt s karaktermretet. A Turbo Pascal karakterkszletei 1 s
10 kztti karaktermret megadst teszik lehetv.
Lsd mg: GetTextSettings, OutText, OutTextXY, RegisterBGlFont,
SetTextJustify, SetUserCharSize, TextHeight, TextWidth
SetTime

Eljrs (Dos egysg)

Szintaxis: SetTime(ra, perc, msodperc, szzadmsodperc);


Paramter: ra, perc, msodperc, szzadmsodperc: Word
Az eljrs tlltja az opercis rendszerben nyilvntartott idt. Az rvnyes
rtkek: 0...23 az ra, 0...59 a perc s msodperc, valamint 0...99 a
szzadmsodperc megadsra.
Lsd mg: GetDate, GetTime, SetDate
SetUserCharSize

Eljrs (Graph egysg)

Szintaxis: SetUserCharSize(Xnagyt, Xkicsinyt, Ynagyt, Ykicsinyt);


Paramter: Xnagyt, Xkicsinyt, Ynagyt, Ykicsinyt: Word
Az eljrs - grafikus mdban - kt egymstl fggetlen vzszintes s fggleges
nagytsi s kicsinytsi tnyezt ad meg a hasznlt karakterkszlet rajzolshoz.
Lsd mg: SetTextStyle, OutText, OutTextXY, TextHeight, TextWidth
SetVerify

Eljrs (Dos egysg)

Szintaxis: SetVerify(rsellenrzs);
Paramter: rsellenrzs: Boolean
Az eljrs belltja, hogy lemezre rskor a DOS vgezzen-e ellenrzst, vagy sem.
Lsd mg: GetVerify
SetViewPort

Eljrs (Graph egysg)

Szintaxis: SetViewPort(X1, Y1, X2, Y2, vgs);


Paramter: Xt, Y1, X2, Y2: Integer; vgs: Boolean
Az eljrs - grafikus mdban - belltja a megadott koordintk szerinti grafikus
ablakot, amelynek bal fels sarkt az (X1, Y1), jobb als sarkt pedig az (X2, Y2)
hatrozza meg. Az is bellthat, hogy kell-e vgni, ha a grafikus objektumok
tlnylnak az ablakon.
Lsd mg: ClearDevice, ClearViewPort, GetViewSettings
SetVisualPage

Eljrs (Graph egysg)

Szintaxis: SetVisualPage(grafikus lap);


Paramter: grafikus lap: Word
Az eljrs - grafikus mdban - tvlt a grafikus krtya lapjai kztt, ha ezekbl
tbb is van (pl. az EGA, a VGA s a Hercules krtyknak legalbb kt lapja van).
Ha vltogatjuk a lapokat, amelyekre a httrben rajzoltunk, akkor mozg grafikt
llthatunk el anlkl, hogy a kperny villogna. Az aktv grafikus lap a
SetActivePage eljrssal llthat be.
Lsd mg: SetActivePage
SetWriteMode

Eljrs (Graph egysg)

Szintaxis: SetWriteMode(rsmd);
Paramter: rsmd: Integer
Az eljrs - grafikus mdban - meghatrozza, hogy a DrawPoly, a Line, a LineRel,
a LineTo s a Rectangle rutinok ltal rajzolt vonal fellrja-e a kpernytartalmat
(CopyPut md), vagy XOR logikai kapcsolatba kerljn vele (XorPut md).
Lsd mg: GetLineSettings, Line, Rectangle, SetLineStyle
Fggvny

Sin

Szintaxis: Sin(numerikus kifejezs)


Paramter: numerikus kifejezs: Real; az eredmny tpusa: Real
A fggvny az tadott argumentum szinuszt adja vissza. A szmts
mrtkegysge a radin.
Lsd mg: ArcTan, Cos
SizeOf

Fggvny

Szintaxis: SizeOf(argumentum)
Paramter: argumentum: vltoz vagy tpusazonost; az eredmny tpusa: Word
A fggvny a vltoz vagy az adattpus mrett adja vissza bjtokban.
Lsd mg: GetMem, FillChar, Move
Sound

Eljrs (Crt egysg)

Szintaxis: Sound(numerikus kifejezs);


Paramter: numerikus kifejezs: Word
Az eljrs megszlaltatja a szmtgp hangszrjt. Az rtket Hertz
mrtkegysgben vrja (impulzus/msodperc). A hang addig szl, amg a NoSound
eljrssal kikapcsoljuk.
Lsd mg: NoSound, Delay
SPtr

Fggvny

Szintaxis: SPtr
Az eredmny tpusa: Word
A fggvny a veremmutat veremszegmensbeli aktulis rtkt adja vissza. A
veremben a rutinok loklis vltozi kapnak helyet.
Lsd mg: SSeg
Sqr

Fggvny

Szintaxis: Sqr(numerikus kifejezs)


Paramter: numerikus kifejezs: egsz vagy vals, az eredmny tpusa a hvstl
fggen egsz vagy vals.
A fggvny a megadott kifejezs ngyzett adja vissza. Ugyanazt az eredmnyt
kapjuk, mintha az x*x mveletet hajtottuk volna vgre.
Sqrt

Fggvny

Szintaxis: Sqrt(numerikus kifejezs)


Paramter: numerikus kifejezs: Real; az eredmny tpusa Real
A fggvny a megadott kifejezs ngyzetgykt adja vissza.
SSeg

Fggvny

Szintaxis: SSeg
Az eredmny tpusa: Word
A fggvny a veremszegmens cmt adja vissza. A veremben a rutinok loklis
vltozi kapnak helyet.
Lsd mg: CSeg, DSeg, SPtr
Eljrs

Str

Szintaxis: Str(numerikus kifejezs, karakterlnc)


Paramter: numerikus kifejezs: Integer vagy Real; var karakterlnc: String
Az eljrs karakterlncc alaktja a numerikus kifejezst.
Lsd mg: Val, Write
Succ

Fggvny

Szintaxis: Succ(sorszmozott kifejezs)


Az eredmny tpusa az argumentumtl fgg.
A fggvny az tadott sorszmozott kifejezs sorszm szerint kvetkez rtkt
adja vissza.
Lsd mg: Dec, Inc, Pred

Fggvny

Swap

Szintaxis: Swap(numerikus kifejezs)


Paramter: numerikus kifejezs: Integer vagy Word
Az eredmny tpusa az argumentumtl fgg.
A fggvny felcserli a kifejezs als s fels bjtjt.
Lsd mg: Hi, Lo
Eljrs (Dos egysg)

SwapVectors

Szintaxis: SwapVectors;
Az eljrs a DOS megfelel megszaktsi vektorait felcserli a System egysg
globlis vltozinak rtkvel. Az eljrst az Exec hvsa eltt s utn kell
hasznlni.
Lsd mg: Exec
TextBackGround

Eljrs (Crt egysg)

Szintaxis: TextBackGround(szn);
Paramter: szn: Byte
Az eljrs - szveges zemmdban - belltja a tovbbi kpernys kirsok
httrsznt. A Crt egysg nyolc httrszn konstanst deklarl:
Black
= 0; { fekete }
Blue
= 1; { kk }
Green
= 2; { zld }
Cyan
= 3; { trkiz }
Red
= 4; { piros }
Magenta = 5; { lila }
Brown
= 6; { barna }
LightGray = 7; { vilgosszrke }

Lsd mg: TextColor, HighVideo, NormVideo, LowVideo


Eljrs (Crt egysg)

TextColor

Szintaxis: TextColor(szn);
Paramter: szn: Byte
Az eljrs - szveges zemmdban - belltja a karakterek tintasznt. A Blink
konstans (128) hozzadsval villogst rhetnk el.
A Crt egysg 16 sznkonstanst deklarl (a TextBackGround 0..7 sznvel egytt):
DarkGray

= 8; { sttszrke }

LightBlue
= 9; { vilgoskk }
LightGreen = 10; { vilgoszld }
LightCyan
= 11; { vilgostrkiz }
LightRed
= 12; { vilgospiros }
LightMagenta = 13; { vilgoslila }
Yellow
= 14; { srga }
White
= 15; { fehr }

Lsd mg: HighVideo, LowVideo, NormVideo, TextBackGround


TextHeight

Fggvny (Graph egysg)

Szintaxis: TextHeight('karakterlnc')
Paramter: karakterlnc: String; az eredmny tpusa: Word
A fggvny - grafikus mdban - lekrdezi a karakterlnc kppontokban (pixel)
mrt magassgt.
Lsd mg: OutText, OutTextXY. SetTextStyle, SetUserCharSize, TextWidth
TextMode

Eljrs (Crt egysg)

Szintaxis: TextMode(md);
Paramter: md: Word
Az eljrs - szveges mdban - belltja a kperny zemmdjt, valamint az
oszlopok s a sorok szmt.
Lsd mg: RestoreCrtMode, SetGraphMode
TextWidth

Fggvny (Graph egysg)

Szintaxis: TextWidth('karakterlnc')
Paramter: karakterlnc: String; az eredmny tpusa: Word
A fggvny - grafikus mdban - lekrdezi egy karakterlnc kppontokban (pixel)
mrt szlessgt.
Lsd mg: OutTextXY, SetTextStyle, TextHeight, SetUserCharSize, OutText
Trunc

Fggvny

Szintaxis: Trunc(numerikus kifejezs) Paramter: numerikus kifejezs: Real; az


eredmny tpusa Longint A fggvny egy vals szm egsz rszt adja vissza,
mikzben levgja a tizedeseket.
Lsd mg: Int, Round
Truncate

Eljrs

Szintaxis: Truncate(llomnyvltoz);
Paramter: var llomnyvltoz: tetszleges tpus (kivve a Text)
Az eljrs az aktulis pozcin levgja a tetszleges (kivve a Text) llomnyt. Az
llomnymutat s az llomny vge kztt valamennyi adat trldik. A mvelet
sikere az IOResult fggvnnyel krdezhet le. Ebben az esetben a {$I-}
direktvval ki kell kapcsolni az automatikus I/O ellenrzst. Ha az eredmny 0,
akkor a mvelet sikeres volt, ha viszont nem nulla, akkor hiba trtnt.
Lsd mg: Seek, Reset, Rewrite
TypeOf

Fggvny

Szintaxis: TypeOf(argumentum)
Paramter: argumentum: objektum tpus vagy elforduls.
Az objektumorientlt kiterjeszts fggvny visszaadja valamely objektumtpus
vagy elforduls virtulis metdustbljnak (VMT) mutatjt. A fggvnnyel
pldul egy elforduls adattpust lehet vizsglni.
UnpackTime

Eljrs (Dos egysg)

Szintaxis: UnpackTime(id, dtum id);


Paramter: id: Longint; var Dtum id DateTime
Az eljrs kicsomagolja a srtett formban megadott dtumot s idt. A norml
formj paramtereket elhelyezi a DateTime tpus vltozban.
Lsd mg: PackTime, GetFTime, SetFTime, GetTime, SetTime
UpCase

Fggvny

Szintaxis: UpCase(karakter)
Paramter: karakter: Char; az eredmny tpusa: Char
A fggvny a kisbetket nagyra alaktja. Ms karakterek esetn az eredmny
ugyanaz lesz, mint a paramter.
Val

Eljrs

Szintaxis: Val('karakterlnc', cl, hiba);


Paramter: karakterlnc: String; var cl: egsz vagy vals; var hiba: Integer
Az eljrs egy numerikus rtk szmjegyeknt olvas valamely karakterlncot. Ez az
rtk a cl vltozba kerl. A hiba vltoz sikeres talakts esetn 0 lesz,
egybknt a karakterlncbeli hiba pozcijt adja meg.
Lsd mg: Str
WhereX

Fggvny (Crt egysg)

Szintaxis: WhereX
Az eredmny tpusa: Byte
A fggvny a kurzor aktulis ablakra vonatkoz oszloppozcijt adja vissza. A
szmozs eggyel indul.
Lsd mg: GotoXY, WhereY, Window
WhereY

Fggvny (Crt egysg)

Szintaxis: WhereY
Az eredmny tpusa: Byte.
A fggvny a kurzor aktulis ablakra vonatkoz sorpozcijt adja vissza. A
szmozs eggyel indul.
Lsd mg: GotoXY, WhereX, Window
Window

Eljrs (Crt egysg)

Szintaxis: Window(X1, Y1, X2, Y2);


Paramter: X1, Y1, X2, Y2: Byte
Az eljrs ablakot definil a szveges kpernyn. Az ablak bal fels sarkt az (X1,
Y1 ), jobb als sarkt pedig (X2, Y2) adja.
Lsd mg: SetViewPort
Write

Eljrs

Szintaxis:
Tpusos llomnyokra:
Write(llomnyvltoz, vltoz1 [, vltoz2, .., vltoz n]);
Szveges llomnyokra:
Write([llomnyvltoz], vltoz1 [, vltoz2, ... vltoz n));
Paramter:
Tpusos llomnyokra:
var llomnyvltoz: File of tetszleges tpus; Vltoz1, . ., Vltoz n: ugyanolyan
tpusak, mint az llomny komponensei.
Szveges llomnyokra
var llomnyvltoz: Text; vltoz1, . ., vltoz n: Char, egsz, vals, String vagy
Boolean
Az eljrs valamely megnyitott, tpusos llomnyba rja egy vagy tbb vltoz
tartalmt. Az llomnymutat valamennyi kirs esetn eggyel tovbblp. A
vltozk tpusnak meg kell egyeznie az llomny komponenseinek tpusval.
Msodik formjban az eljrs egy vagy tbb vltoz tartalmt valamely
megnyitott szveges llomnyba rja. Vltozknt a Boolean, a Char s a String,
illetve a vals s az egsz tpusok hasznlhatk.
Ha nem adjuk meg az opcionlis llomnyvltoz paramtert, akkor a kirs a
kpernyre irnyul. A kirs formtumt kt paramter hatrozza meg (lsd

WriteLn eljrs).
Lsd mg: Str, WriteLn
WriteLn

Eljrs

Szintaxis: WriteLn([llomnyvltoz], vltoz1 [, vltoz2, .. vltoz n]);


Paramter: var llomnyvltoz: Text; vltoz1, .. vltoz n: Char, Integer, vals,
egsz vagy Boolean
Az eljrs valamely megnyitott llomnyba ber egy vagy tbb vltozt, s a berst
soremelssel zrja. Vltozknt a Boolean, a Char s a String, illetve a vals s az
egsz tpusok hasznlhatk. Ha nem adjuk meg az opcionlis llomnyvltoz
paramtert, akkor a kirs a kpernyre irnyul, s az eljrs egy soremelst is kir.
A kurzor a kvetkez sor elejre ll. A mezszlessget paramter segtsgvel
adhatjuk meg. Vals szmok esetn egy tovbbi paramterrel a tizedesek szmt is
meghatrozhatjuk. Mindkt paramtert kettsponttal elvlasztva, egsz rtkknt
kell a vltoz utn rni:
WriteLn(vltoz [:mezszlessg [:tizedesszm]]);
Ha nem akarjuk, hogy a vltoz valamennyi tizedese megjelenjen, akkor kerekteni
is lehet. Az eljrs jobbra igaztja a kirst.
Lsd mg: Str, Write