Professional Documents
Culture Documents
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
vagy kzrthetbben:
17,
8,
4,
2,
1,
0,
maradk: 1
maradk: 1
maradk: 0
maradk: 0
maradk: 0
maradk: 1
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)
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.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!
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.
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.
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:
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:
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:
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 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).
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
ELJRS- s FGGVNYBLOKK
procedure EljrsNv2;
begin
...
end;
BEGIN
...
END.
FPROGRAM
szimblumok,
fenntartott szavak,
azonostk,
cmkk,
konstansok,
elvlasztjelek.
<
>
<=
>=
<>
'
..
()
[]
{}
(* *)
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
record
repeat
set
shl
shr
string
then
to
type
unit
until
uses
var
while
with
xor
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; .
vagy
(* Az n szerinti ciklus vege *) .
Vals tpusok
Karakter tpus
-32768..32767
-2147483648..2147483647
byte
word
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)
16 bit eljeles
-128..127
ASCII
boolean 1 bjt 0, 1
h max:255
False,True
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.
Napok = (Hetfo,Kedd,Szerda,Csutortok,Pentek,Szombat,Vasarnap);
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;
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.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
Ctrl - Q B
Ctrl - Q K
Ctrl - V vagy Ins
Sor beszrsa:
Ctrl - N
Sor trlse:
Ctrl - Y
Ctrl - K B
Ctrl - K K
Sz kivlasztsa:
Ctrl - K T
Blokk msolsa:
Ctrl - K C
Blokk trlse:
Ctrl - K Y
Blokk thelyezse:
Ctrl - K V
Ctrl - K I
Ctrl - K U
Keress:
Ctrl - Q F
Csere:
Ctrl - Q A
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!
A Tools men a Turbo Pascal rendszer tbbi elemnek elrst teszi lehetv
amennyiben minden fel van installlva.
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);
goto 1;
vagy
goto Ide;
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;
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.
ReadLn(VezNev);
ReadLn(KerNev);
ReadLn(TanKor);
ReadLn(TanAtlag);
end;
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;
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.
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
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)
DiskSize
DosVersion
FindFirst
FindNext
GetDate
GetTime
SetDate
SetTime
Bar
Circle
DrawPoly
Ellipse
InitGraph
Line
LineTo
MoveTo
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
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
Fggvny
Eljrs
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
Eljrs
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: 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
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
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
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
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
Fggvny
Cos
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: 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
Eljrs
DelLine
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
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
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: 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
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
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
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
Eljrs
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
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
Fail
Eljrs
Szintaxis: Fail;
Az eljrs felszabadtja az egyik dinamikus objektum-elfordulst, s elhagyja a
konstruktor metdust. Az eljrs csak konstruktorbl hvhat.
FExpand
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
belltsrl.
Lsd mg: Move
FillEllipse
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
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
Eljrs
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
Szintaxis: GetBkColor;
Az eredmny tpusa: Word.
Grafikus mdban az aktulis httrszn palettaindext adja vissza.
Lsd mg: GetColor, GetPalette, InitGraph, SetAllPalette, SetBkColor, SetColor,
SetPalette
GetCBreak
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
Szintaxis: GetColor
Az eredmny tpusa: Word.
Grafikus mdban az aktulisan hasznlt sznpaletta indext adja vissza.
Lsd mg: GetBkColor, GetPalette, InitGraph, SetAlIPalette, SetColor, SetPalette
GetDate
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: GetDriverName
Az eredmny tpusa: String.
Grafikus mdban az aktulis grafikus meghajt nevt adja vissza.
Lsd mg: GetModeName, InitGraph
GetEnv
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: 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
Szintaxis: GetLineSettings(vonalinformcik);
Paramter: var vonalinformcik: LineSettingsType
Az eljrs - grafikus mdban - az aktulisan belltott vonalstlust adja vissza.
Lsd mg: DrawPoly, SetLineStyle
GetMaxColor
Szintaxis: GetMaxColor
Az eredmny tpusa: Word.
A fggvny - grafikus mdban - azt adja vissza, hogy az aktulis grafikus
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
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
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: 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
Szintaxis: GetPalette(paletta);
Paramter: var paletta: PaletteType.
Az eljrs - grafikus mdban - az aktulisan hasznlt sznpalettt adja meg.
Lsd mg: GetDefaultPalette, GetMaxColor, GetPaletteSize, GetPalette
GetPaletteSize
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
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
Szintaxis: GetTextSettings(szveginformcik);
Paramter: var szveginformcik: TextSettingsType
Az eljrs - grafikus mdban - a bettpus s a szvegirny belltsait adja meg.
GetTime
Szintaxis: GetVerify(rsellenrzs);
Paramter: var rsellenrzs: Boolean.
Az eljrssal lekrdezhet, hogy lemezre rskor a DOS automatikusan ellenrzi-e
az adatokat.
Lsd mg: SetVerify
GetViewSettings
Szintaxis: GetViewSettings(ablak);
Paramter: var ablak: ViewPortType
Az eljrs - grafikus mdban - az aktulis ablak jellemzit adja meg.
Lsd mg: ClearViewPort, SetViewPort
GetX
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
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
GraphDefaults
Szintaxis: GraphDefaults;
Az sszes grafikus jellemzt visszalltja az alaprtelmezs szerinti llapotba. A
kperny tartalma nem vltozik.
Lsd mg: InitGraph
GraphErrorMsg
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
Szintaxis: GraphResult
Az eredmny tpusa: Integer
A fggvny a legutbbi grafikus hiba kdjt adja vissza.
Lsd mg: GraphErrorMsg, IOResult
Halt
Eljrs
Fggvny
Szintaxis: HighVideo;
Az eljrs hvsa utn - szveges zemmdban valamennyi tovbbi kirs fnyesen
jelenik meg a kpernyn.
Lsd mg: NormVideo, LowVideo, TextColor, TextBackground
ImageSize
Eljrs
Eljrs
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
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
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
Ln
Lo
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
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
Vgpont:=GetX+Xtvolsg).
Lsd mg: LineRel, LineTo. MoveTo. GetX, GetY
MoveTo
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;
Eljrs/fggvny
Szintaxis: NormVideo;
Az eljrs - szveges zemmdban - a karakterek kirsi mdjt visszalltja a
NoSound
Szintaxis: NoSound;
Az eljrs kikapcsolja a Sound eljrssal bekapcsolt hangjelzst.
Lsd mg: Sound
Odd
Fggvny
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: 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
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
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
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
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
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
Szintaxis: OvrSetBuf(mret);
Paramter: mret: Longint
Az eljrs belltja az overlay terlet bjtokban mrt mrett.
Lsd mg: OvrGetBuf
OvrSetRetry
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
Fggvny
Szintaxis: ParamCount
Az eredmny tpusa: Word
A fggvny a programnak tadott parancssor paramterek szmt adja vissza.
Lsd mg: ParamStr
Fggvny
ParamStr
Pi
Szintaxis: Pi
Az eredmny tpusa: Real
A fggvny a Pi matematikai lland rtkt adja viszsza (3,1415...).
Lsd mg: ArcTan, Cos, Sin
PieSlice
Fggvny
Fggvny
Fggvny
Ptr
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: 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: 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
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
Eljrs
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: RmDir('karakterlnc');
Paramter: karakterlnc: String
Eljrs
Round
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
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
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
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
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
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
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
SetPalette
Eljrs
Szintaxis: SetVerify(rsellenrzs);
Paramter: rsellenrzs: Boolean
Az eljrs belltja, hogy lemezre rskor a DOS vgezzen-e ellenrzst, vagy sem.
Lsd mg: GetVerify
SetViewPort
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
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
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
Fggvny
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
Fggvny
Fggvny
Swap
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
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 }
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 }
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
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
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
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
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: 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
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
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