saqarTvelos teqnikuri universiteti - GTUpublishhouse.gtu.ge/book3/Daprogr_Pascal.pdf · saqarTvelos...
Transcript of saqarTvelos teqnikuri universiteti - GTUpublishhouse.gtu.ge/book3/Daprogr_Pascal.pdf · saqarTvelos...
saqarTvelos teqnikuri universiteti
g. janeliZe
daprogramebis safuZvlebi
damtkicebulia stu-s
saswavlo-meToduri
sabWos mier
Tbilisi
2002
2
uak 681.3.06
wignSi ganxilulia daprogrameba Turbo Pascal-is,Object Pascal-is da farTod gavrcelebuli obieqtur-
orientirebuli daprogramebis Delphi-is garemoSi. wignigaTvaliswinebulia damwyebTaTvis, maTTvis vinc ar flobs
programirebis sxva enebs.
wigni gankuTvnilia informatikis sferos
studentebisaTvis.
recenzentebi: prof. g. surgulaZe
doc. m. kiknaZe
saqarTvelos teqnikuri universiteti, 2002
ISBN 99928-943-2-6
3
programirebis ena
Turbo Pascal.
Sesavali
programirebis sistemas saxeli “paskali~ daerqva
cnobili frangi maTematikosisa da filosofosis blez
paskalis pativsacemad. igi programebis Seqmnis metad
efeqturi saSualebaa. SemdgomSi paskals ewoda ena “turbo
paskali~. mas gaaCnia sakmaod moxerxebuli servisuli
saSualebani.
Pascal-is failebi ganTavsebulia calke katalogSi,
romelsac hqvia TP (an PAS, TURBOPAS, PASCAL da a.S.).Turbo Pascal-is garemos gamosaZaxeblad aucilebelia
movZebnoT faili TURBO.EXE saxelwodebiT, es faili
Seicavs Turbo Pascal-Si programirebisaTvis gamzadebuldialogur sistemas. dialogur sistemaSi normaluri
muSaobisaTvis saWiroa ZiriTadi biblioTeka, romelic
ganTavsebulia TURBO.TPL failSi da sacnobaro samsaxuri,
(TURBO.HLP faili). es CamoTvlili failebi ganTavsebulia
C diskze, TP katalogSi.
sacnobaro samsaxuri turbo paskalis garemos ganuyreli
nawilia. turbo paskalTan muSaobisas dabrkolebis
SemTxvevaSi sakmarisia davaWiroT F1 Rilaks da ekranze
saWiro cnoba gamonaTdeba. es cnoba damokidebulia mimdinare
garemos mdgomareobaze (aseT sacnobaro samsaxurs
konteqsturad damokidebuls uwodeben). magaliTad, Tu
F1 Rilaks davaWerT im momentSi, rodesac garemom aRmoaCina
Secdoma programaSi, cnobarSi iqneba damatebiTi cnoba am
Secdomis warmomSob mizezze da mis aRmosafxvrelad.
sacnobaro samsaxurze mimarTva SesaZlebelia turbo
paskalis mTavari menius meSveobiT.
4
funqcionaluri Rilakebi
funqcionaluri Rilakebi gamoiyeneba Turbo Pascal-isgaremos samarTavad.
F1 – sacnobaro sistemis gamoZaxeba;F2 – programis teqstis damaxsovreba diskze;F3 – diskze Cawerili failis gaxsna;
F4 – gamoiyeneba programis gawyobis reJimSi, programisSesruleba gaCerdeba im striqonis win, sadac kursori
dgas.
F5 – aqtiuri fanjris mTel ekranze gaSla.
F6 – momdevno fanjris gaaqtiureba;F7 – gamoiyeneba programis gawyobis reJimSi: Sesruldes
programis momdevno striqoni, Tu striqonSi aris
proceduraze an funqciaze mimarTva, Sevides am proceduraSi
(funqciaSi) da gaCerdes misi pirveli operatoris
Sesrulebis win;
F8 – gamoiyeneba programis gawyobis reJimSi: Sesruldes
programis momdevno striqoni; Tu striqonSi aris
proceduraze an funqciaze mimarTva, Sesruldes igi.
F9 – programis kompilacia;
F10 – dialoguri sistemis mTavar meniuSi Sesvla;
Ctrl - F9 - programis Sesrulebaze gaSveba ;
Alt – F5 - Sedegis gamotanis fanjaraze gadasvla ;
Alt – X - gasvla Turbo Pascal – is garemodan.
pirveli programa.
turbo paskalis enis gasacnobad SevadginoT martivi
programa, romelic raime Setyobinebis gamotanas
ganaxorcielebs paskalis enaze. davuSvaT es aris fraza
`me vaprogrameb turbo paskalze~.
5
Program My_First_Program;constText=’me vaprogrameb turbo paskalze’;
beginWriteln(Text);End.
upirveles yovlisa gavaanalizoT teqstis formis
warmodgena. programaSi eqvsi striqonia. programis
striqonebi Cveulebriv, teqstis zogierT azrobriv
fragments gamoyofs da ar ukavSirdeba programaSi
konkretul moqmedebebs: programis teqstis striqonze
ganTavseba Cveni survilisamebr xdeba da ara enis sintaqsis
moTxovniT.
igive programa SeiZleba ase eweros:
Program My_First_Program, Const Text=’me vaprogramebturbo paskalze’; Begin Writeln(Text); End.
mniSvneloba ara aqvs asoebis zomas _ My Tu my.pirveli striqoni : Program My_First_Program iwyeba
Program sityviT da programis saxels Seicavs. sityva
Program darezervebulia turbo paskalSi, e.i. ar SeiZleba
gamoyenebul iqnes sxva mniSvnelobiT, garda programis
saxelis gamocxadebisa. turbo paskalSi SeiZleba
gamotovebul iqnes Program operatori, es programaze ar
imoqmedebs.
`Cemi pirveli programa~ dawerilia probelebis (adgilis
gamotovebis) gareSe. probeli warmoadgens gamyofs da
misi TviTneburad gamoyeneba ar SeiZleba. probelebis nacvlad
identifikatorebSi xazgasmis `_~ niSani gamoiyeneba.
pirveli striqoni mTavrdeba gansakuTrebuli gamyofiT
6
wertil-mZimiT (;). es gamyofi turbo paskal enaSi
operatoris an aRweris dasasruls aRniSnavs.
meore striqoni
Constmoicavs erTaderT darezervebul sityvas Const, romelic
aRniSnavs, rom SemdgomSi erTi an ramodenime konstanta
iqneba aRwerili (Constants-konstantebi), enaSi konstantebadiTvleba programis iseTi obieqtebi romelTac Tavisi
mniSvnelobebis Secvla ar SeuZliaT. konstantas SeiZleba
hqondes sakuTari saxeli. konstantis aRwera turbo
paskalSi niSnavs _ mieTiTos misi saxeli da mniSvneloba.
aseT miTiTebas mesame striqoni Seicavs.
Text = ’me vaprogrameb turbo paskalze’;
sadac konstanta _ Text-s miniWebuli aqvs ’me vaprogrameb
turbo paskalze’ simboloebis striqoni.
turbo paskalSi SeiZleba gamoviyenoT sxvadasxva tipis
mudmiva: mTeli da namdvili ricxvebis, simboloebis,
simboloebis striqoni, masivebi da a.S. imis niSnad, rom
Text warmoadgens simboloebis striqonis tipis mudmivas,
igi Casmulia or apostrofSi. TviT apostrofi striqons
ar miekuTvneba, is mxolod kompilators miuTiTebs, rom
masSi moTavsebuli simboloebi unda ganixilos rogorc
erTi mTliani_teqsturi konstanta. Tu dagvWirdeba
apostrofis CarTva teqstur konstantaSi, sakmarisia igi
daiweros orjer zedized. mag.
Text=’Turbo’’Pascal’;programis pirveli sami striqoni raime konkretuli
moqmedebebiT ar aris dakavSirebuli programis muSaobasTan.
isini kompilators zogierT cnobas miawvdian TviT
7
programasa da masSi gamoyenebul obieqtebze. programis am
nawils aRweris ganyofileba ewodeba.
meoTxe striqonSi darezervebuli sityva beginkompilators acnobebs, programis sxva nawilis _
operatorebis ganyofilebis dasawyiss, Cvens magaliTSi es
ganyofileba Seicavs operators:
Writeln(Text); romelsac kompiuteris ekranze Setyobineba
gamoaqvs. mTels programas daasrulebs darezervebuli
sityva End wertiliT. wertili kompilators programis
teqstis dasasruls Seatyobinebs.
End-is Semdeg ganTavsebul teqsts kompilatori ar
kiTxulobs. sanam Sesrulebaze gavuSvebdeT Cvens programas,
ganvixiloT erTaderTi Sesrulebadi operatori:
Writeln(Text); romelic monacemTa gamotanis proceduras
mimarTavs.
procedura operatorebis mimdevrobaa, romelTac SeiZleba
saxeliT mivmarToT.
Writeln procedura miekuTvneba standartul proceduras,mas winaswar aRwera ar sWirdeba, is nebismieri
programisaTvis xelmisawvdomia, sadac misadmi mimarTvaa.
Writeln procedura miekuTvneba gamotanis operators. misisruli saxelia WriteLine _ dawereT striqoni. parametrebiproceduras gadaecema siis saxiT, romelic Casmulia mrgval
frCxilebSi. Cvens magaliTSi proceduras gadaecema
erTaderTi parametri, mudmiva _ Text.oTxi gamoyenebuli sityva (Program, const, Begin, End)
darezervebulia. sityva Writeln ar miekuTvneba darezervebuls,
magram misi gamoyeneba sxva daniSnulebiT dauSvebelia.
sityvebi: My_First_Program da Text aris identifikatori.programists identifikatorad SeuZlia gamoiyenos
simboloebis nebismieri mimdevroba, romlebic Semdeg
moTxovnebs akmayofileben:
8
• identifikatori SeiZleba Sedgebodes
laTinuri anbanis asoebisagan, cifrebisagan,
xazgasmis niSnisagan. danarCeni simboloebi identi-
fikatorSi dauSvebelia.
• identifikatori ar SeiZleba cifriT
iwyebodes.
• identifikatori ar unda emTxveodes arcerT darezervebul sityvas.
• identifikatoris sigrZe SeiZleba nebismieri
iyos, xolo mniSvnelovnad iTvleba pirveli 63
simbolo.
identifikatorSi yuradReba ar eqceva asoebis simaRles:
Text, text, TEXT.programis Sesrulebaze gaSvebisas vaWerT [Ctrl-F9] _s,
Tu programaSi Secdoma ar aris Sedegi ekranze daiwereba.
ekranze Sedegis naxvisaTvis vaWerT [Alt-F5] _s. nebismieriRilakis daWerisas isev vbrundebiT ZiriTad ekranze.
ganxiluli programis struqturas Semdegi saxe aqvs:
Program My_First_Program;
{aRweris ganyofileba}
Begin
{operatorebis ganyofileba}
End.sityvebi Program, Begin da End gamoyofs programis or
nawils_aRweris ganyofilebas da operatorebis
ganyofilebas, aseTi struqtura aucilebelia nebismieri
programisaTvis. es enis mkacri moTxovnaa. Sesrulebad
operatorSi gamoyenebuli nebismieri arastandartuli
identifikatori, winaswar unda iyos aRwerili aRweris
9
ganyofilebaSi.
monacemTa ti pebi
tipis cneba erT-erTi fundamenturi cnebaa turbo
paskalSi.
ganvixiloT monacemTa Semdegi tipebi:
• INTEGER - mTeli tipis monacemebi, Siga
warmodgenaSi 2 baits ikavebs. SesaZlo
mniSvnelobebis diapazonia -32768 dan +32768
–mde. monacemebi zustad unda iyos warmodgenili.
• REAL - namdvili tipis monacemebi, Siga
warmodgenaSi ikavebs 6 baits. SesaZlo
mniSvnelobebis diapazonia 2,9E-39 dan 1,7E+38 –mde monacemTa warmodgenis sizuste –11 . .……12
niSna ciframdea.
• CHAR – simbolo ikavebs erT baits.
• BOOLEAN – logikuri tipi, ikavebs erT
baits da aqvs ori mniSvneloba: FALSE (mcdari)da TRUE (WeSmariti).
• STRING –simboloebis striqoni ikavebs
MAX+1 baits, sadac MAX striqonSi simboloebis
ricxvia.
mTeli tipis monacemebi
tipi mniSvnelobaTa diapazoni
Byte 0 255
Word 0 65535
Shortint -128 127
10
Integer -32768 32768
Cardinal 0 2147483647
Longint -2147483648
147483647
ganvixiloT monacemTa tipebis aRweris magaliTi:
ConstC1 = 17;C2 = 3.14;C3 = ’a’;C4 = ’123.14’;C5 = False;
kompilatori am programis fragmentis gaanalizebisas
pirvel mudmivas INTEGER-is tips miakuTvnebs, meores kiREAL-is tips, mesames CHAR, meoTxes striqonul tips -STRING; mexuTes – BOOLEAN - logikur tips. ra niSnis
mixedviT ansxvaveben?: C2-Si gvaqvs aTobiTi wertilis
aRmniSvneli mniSvneloba, amitomac is REAL tipisaa, C2 daC4 konstantebi sxvadasxva tipebs miekuTvneba:
C2-REAL (konstantaSi aris aTobiTi wertili), xolo
C4-STRING (konstanta apostrofSia Casmuli), C3-CNAR(radgan erTaderTi simboloa apostrofSi, gansxvavebiT
STRING – sadac ramodenime simboloa).
cvladebis ganyofilebis aRwerisas dasawyisSi unda idges
darezervebuli sityva VAR (VARiables-cvladebi). mag:
Varsigma : real;a,b,c,d : char;flag : boolean;
(ramdenime erTi tipis cvladi SeiZleba gavaerTianoT
11
da gamovyoT mZimeebiT).
cvladebis aRwerisas identifikatoris Semdeg iwereba
` : ~ da tipis saxeli.
ganvixiloT kidev erTi martivi programa. misi
daniSnulebaa Seitanos klaviaturidan ori mTeli ricxvi,
i povos pirveli ricxvis meoreze gayofis Sedegi da
gamoitanos ekranze:
Var
n1, n2 : Integer; {n1,n2-Sesatani mTelebia}
x : Real; {x-Sedegi}
Begin {dasawyisi}
Write(‘n1=’); {vatyobinebT n1-is Setanaze}
readln(n1); {Segvaqvs n1}
Write(‘n2=’);
Readln(n2);
X:=n1/n2; {vpoulobT Sedegs};
Writeln(‘n1/n2=’,X); {gamogvaqvs Sedegi};
End. {dasasruli}
komentarebi turbo paskalSi nebismieri simboloebis
Tanmimdevrobaa, romlebic figurul frCxilebSi Caismis.
komentaris Casma SeiZleba programis nebismier adgilas,
sadac azrobrivad probeli (carieli adgili) SeiZleba
iyos. komentarebis Casasmelad gamoiyeneba figuruli
frCxilebi { da } agreTve wyvili simbolo (* da *)
{ es komentaria}
(*esec komentaria*)
operatorebis wyvili:
Write(..); Readln(..);
12
Semdegnairad muSaobs: dasawyiSi operator Write-sgamohyavs ekranze striqoni da kursors tovebs axlaxan
gamoyvanili teqstis striqonis bolos. SevniSnoT, rom
operatori
Writeln(Text);teqstis gamotanis Semdeg asrulebs striqonze gadasvlas
da kursors ayenebs Semdegi striqonis dasawyisSi. Writelnda Write procedurebi axal striqonze gadasvliT gansxvavdeba
erTmaneTisagan.
< := >, simboloebis wyvili akavSirebs operatoris
marcxena da marjvena nawilebs da niSnavs `mivaniWoT
mniSvneloba~. < := > ganixileba rogorc erTi specialuri
simbolo da aucileblad erTad iwereba.
@monacemTa ti pebis gardaqmna da maTze
moqmedebebi.
monacemTa tipebi saSualebas iZleva, rom ara mxolod
Sida warmodgenaSi ganisazRvros maTi sigrZe, aramed
kontrols gauwios im moqmedebas, romelic unda Sesruldes
maT mimarT. kontroli mimdinareobs kompilaciis etapze.
turbo paskalSi TiTqmis dauSvebelia monacemTa tipebis
avtomaturi gardasaxva. mag. Tu X da Y aRwerilia
Semdegnairad:
Var
X : integer;
Y : real;
maSin operatori
y := x+2;
iqneba sintaqsurad swori, xolo Canaweri
13
x := 2.0;iqneba araswori, vinaidan real tipis integer tipad
gardaqmna paskalSi dauSvebelia. Tumca turbo paskalSi
aris monacemTa tipebis gardaqmnis saSualebebi. isini unda
iqnan cxadad gamoyenebuli. monacemTa gardaqmnisaTvis enaSi
arsebobs Casmuli funqciebi, romlebic parametris saxiT
miiRebs erTi tipis mniSvnelobas, xolo abrunebs sxva
ti pis mniSvnelobas. kerZod, real tipis integer tipadgardaqmnisaTvis aris ori Casmuli funqcia:
ROUND amrgvalebs REAL-s uaxloes mTel ricxvamde.
TRUNC CamoaWris REAL - s wilad nawils. mag. arasworia
Canaweri:
X := Y/X;magram sworia:
X := ROUND(Y/X);CHAR (simbolo) tipis mTel tipad gardaqmnisaTvis
aris funqcia ORD, xolo ukugardaqmnisaTvis e.i. INTEGER-is CHAR tipad gardaqmnas axorcielebs funqcia CHR.
turbo paskalSi gamoiyeneba oTxive ariTmetikuli
operacia:
+ -Sekreba;
_ -gamokleba;
* -gamravleba;
/ -gayofa;
DIV – mTelricxva gayofa.
mag. Canaweri
VARN: integer;
beginN:=1/2;
14
dauSvebelia, vinaidan N aRwerilia, rogorc mTeli
tipi da is ver miiRebs REAL tipis mniSvnelobas.
xolo Canaweri:
VARX : Real;
beginX := 1 div 2;
marTebulia.
DIV mTelricxva gayofis operaciis gamoyeneba
moxerxebulia maSin, rodesac programisti Segnebulad
ugulvebelyofs wilad nawils.
Integer - is tipis monacemebisaTvis turbo paskalSi
gamoiyeneba MOD funqcia, romelic gvaZlevs ricxvis ricxvze
gayofis Sedegad miRebul naSTs.
5 mod 2 =1
31 mod 16 = 15
16 mod 3 = 1Integer, Real, Char tipis monacemebisaTvis gansazRvrulia
Semdegi damokidebulebis (Sedarebis) operaciebi.
= tolia;
< > _ ar aris toli;
< _ naklebia;
> _ metia;
<= _ naklebi an toli;
>= _ meti an toli;
damokidebulebis operaciis Sedegad miiReba BOOLEANtipis monacemi, romelsac aqvs ori mniSvneloba: TRUE -WeSmariti da FALSE - mcdari. aRvniSnoT, rom ORD funqcia
15
gardaqmnis ara marto simbolos mTel tipad, aramed
logikur sididesac. amitomac
ORD(FALSE)=0
ORD(TRUE)=1
turbo paskalSi gamoiyeneba Semdegi logikuri operaciebi:
not _logikuri uaryofa (ara);
and _logikuri gamravleba (da);
xor _gamomricxveli Sekreba (an);
or _logikuri Sekreba (an);
rTul logikur gamosaxulebaSi saWiroa maTi Casma mrgval
frcxilebSi. mag. Canaweri:
a>b and c<dsintaqsurad SecdomiT aris Cawerili, xolo sworia
(a>b) and (c<d).
enis operatorebi
Sedgenili da carieli operatorebi.
erT-erTi yvelaze xSirad gamoyenebuli operatori _
miniWebis operatori ukve ganvixileT.
Sedgenili operatori _ programis nebismieri
operatorebis Tanmimdevrobaa, romelic Casmulia
begin…end operatorul frCxilebSi.
Sedgenili operatorebi _ turbo paskalis mniSvnelovani
instrumentia, romelic saSualebas iZleva daiweros
programa struqturuli programirebis Tanamedrove
16
teqnologiiT (GOTO) gadasvlis operatoris gareSe).
begin…….begin
…….begin
…….…….
end;……end;
…….end;
faqtiurad, mTeli operatorebis ganyofileba, romelic
begin…end sityvebiT Semoifargleba, warmoadgens erT
Sedgenil operators. darezervebuli sityva endoperatoruli frCxilebis daxurvis maCvenebelia. is
erTdroulad miuTiTebs wina operatoris dasasruls, amitom
` ; ~ simbolos dasma end-is win ar aris aucilebeli. end-is win ̀ ; ~ - is arseboba wina magaliTSi aRniSnavda, rom
bolo operatorsa da operatorul frCxil end _s SorisTavsdeba carieli operatori. carieli operatori ar
Seicavs araviTar moqmedebebs, ubralod programaSi emateba
zedmeti wertil-mZime. ZiriTadad carieli operatori
gamoiyeneba Sedgenili operatoris bolos marTvis
gadasacemad.
17
mTeli tipebis sademonstracio programa:
Program IntegerDemo;
var Pay : Integer; OverTimePay : Integer; TotalPay : Integer;
begin Pay : = 500; OverTimePay : =100; TotalPay := Pay + OverTimePay; Writeln (‘sruli daricxva=’, TotalPay);Readln; {Enter - is daWeramde, rom fanjara Ria darCes}
end.
namdvili tipebis sademonstracio programa:
Program RealDemo;
const TaxRate = 0.0075;
var Pay : Real; OverTimePay : Real; GrossPay : Real; NetPay : Real;
begin Pay : = 500.55;
18
OverTimePay : =100.10; GrossPay := Pay + OverTimePay; NetPay := GrossPay - (GrossPay * TaxRate);Writeln (‘sruli daricxuli Tanxa’, Grosspay : 7 : 2);Writeln (‘ xelxe gasacemi Tanxa=’, NetPay : 7 : 2);Readln; {Enter - is daWeramde, rom fanjara Ria darCes}end.
logikuri tipis sademonstracio magaliTi:
Program BooleanDemo;
var OKtoGo : Boolean; MyFlag : Boolean;
begin OKtoGo := False; MyFlag := not OKtoGo;Writeln (‘OKtoGo-s droSaze arCeulia’, OKtoGo);Writeln (‘MyFlag-is droSaze arCeulia’, MyFlag);Writeln(‘ori droSis logikuri ̀ an~ tolia’, OKtoGo or
MyFlag); Writeln(‘ori droSis logikuri ̀ da~ tolia’, OKtoGo
and MyFlag);
Readln;end.
19
simboluri tipis sademonstracio magaliTi:
Program CharDemo;
var Answer : Char; Question : Char; begin Question :=’A’; Answer :=’B’; Writeln (‘SekiTxva udris’, Questin); Writeln (‘ pasuxi udris’, Answer);
Answer := Question;Question := ‘B’;
Writeln (‘SekiTxva exla udris’, Questin);Writeln (‘ pasuxi exla udris’, Answer);
Readln;end.
aq ramodenime saintereso momentia. ori simbolos tipis
cvladis - Answer da Question, gamocxadebis Semdeg TiToeulmaTgans eniWeba mniSvneloba, Question -s simbolo ‘A’, xolo
Answer - s simbolo ‘B’. mas Semdeg roca xdeba maTimniSvnelobebis ekranze gamotana, programa Ansver cvlads
aniWebs Question cvladis mniSvnelobas da piriqiT. miniWeba
dasaSvebia, radgan orive cvladebi erTnairi tipisaa.
20
striqonis tipis sademonstracio programa:
Program StringDemo;
var LastName : String; FirstName : String[4]; NewFirstName : String[30];
begin
LastName := ‘Mepho’; FirstName := ‘Tata; NewFirstName := ‘Kate’; Writeln (‘saxeli-’, FirstName); Writel (‘gvari-’, LastName);
FirstName := NewFirstName;
Writeln (‘Secvlili saxelia-’, FirstName);Readln;end.
Cvens mier aRwerili pirveli striqoni SeiZleba Seicavdes
maqsimum 255 simbolos, radgan aq ar aris miTiTebuli
simboloebis dasaSvebi raodenoba, meore da mesame
striqonebi Seicaven maqsimum oTx simbolos, rac
miTiTebulia kvadratul frCxilebSi. miniWebis operatori
dasaSvebia striqonuli tipebisaTvis.
21
pirobis operatori
pirobis operatori saSualebas gvaZlevs SevamowmoT
zogierTi piroba da Semowmebis Sedegis mixedviT
SevasruloT esa Tu is moqmedeba. amgvarad, pirobis
operatori _ gamoTvliTi procesis ganStoebis saSualebaa.
pirobis operatoris struqturas aqvs Semdegi saxe:
IF < piroba> THEN <operatori1> ELSE < operatori2>
sadac IF, THEN, ELSE _ darezervebuli sityvebia (Tu,
maSin, winaaRmdeg SemTxvevaSi).
<piroba> _ logikuri tipis nebismieri gamosaxulebaa.
<operatori1>, <operatori2> _ turbo paskalis
nebismieri operatorebia.
pirobis operatori muSaobs Semdegi algoriTmis mixedviT:
pirvelad gamoiTvleba logikuri gamosaxuleba <piroba>.
Tu Sedegi aris TRUE (WeSmariti), maSin sruldeba
<operatori1>, xolo <operatori2> gamoitoveba. Tu Sedegi
aris FALSE (mcdari), piriqiT <operatori1> gamoitoveba,xolo <operatori2> Sesruldeba. mag.:
varx, y, max : integer;
begin …………..
if x > max thenx := max
else y := x;…………..am fragmentis Sesrulebisas y cvladi Rebulobs x
cvladis mniSvnelobas, mxolod Tu es mniSvneloba(x) max_sar aRemateba, winaaRmdeg SemTxvevaSi x gaxdeba max-is toli.
pirobis operatoris ELSE <operatori2> nawili
22
SeiZleba gamotovebul iqnas. am SemTxvevaSi igi ar
Sesruldeba da marTva gadaecema rigiT momdevno opera-
tors.
varx, y, max : integer;
begin……………
if x > max then
max := x;
y := x;…………….
am SemTxvevaSi y cvlads yovelTvis x cvladis mniSvneloba
eqneba, xolo max_Si x_is maqsimaluri mniSvneloba
daixsomeba.
Tu CarTuli pirobis operatorebidan yvelas ar aqvs
else, ismis kiTxva, romel then operators ekuTvnis romeli
else. es ganisazRvreba Semdegnairad: nebismier else_s SeesabamebamasTan zemodan uaxloesi - then.
ganvixiloT magaliTi:
vara,b,c,d : integer;
begina:=1; b:=2; c:=3; d:=4;
IF a>b thenIF c<d then
IF c<0 thenc:=0
elsea:=b;
IF a>b then
23
IF c then
IF c then
c:=0
else
else
else
a:=b;
ganvixiloT programa, romelic ipovis or namdvil ricxvs
Soris udidess:
var X, Y, Max : real;begin Writeln(‘X=’); Readln(X); Writeln(‘Y=’); Readln(Y); If X>Y Then Max := X Else Max := Y; Writeln(‘Max=’, Max); Readln;End.
ganxilul magaliTSi X da Y namdvili tipis cvladebia,
romelTa Soris udidesi unda ganisazRvros. am cvladebis
Setana xdeba klaviaturidan, ris Semdegac daismeba piroba,
Tu X meti aRmoCndeba Y -ze, maSin Max -s mieniWeba X -ismniSvneloba, xolo winaaRmdeg SemTxvevaSi, Tu Y YmetiaRmoCndeba X -ze, Max -s mieniWeba Y-is mniSvneloba. End-is win gamoyenebuli Readln niSnavs, rom ekranze, SedeginaCvenebi iqneba manam, sanam ar davaWerT Enter Rilaks.
24
ganvixiloT programis fragmenti, sadac sruldeba Semdegi
piroba, Tu ori namdvili ricxvidan pirveli metia meoreze,
maSin, pirveli davadidoT orjer, xolo Tu meore metia
pirvelze, maSin meore gavadidoT orjer. davuSvaT es
cvladebia a da b.................................
If a > b Then a := 2 * a Else b := 2 * b;-----------------
Else pirobis operatoris araaucilebel nawils
warmoadgens, rac niSnavs, rom Tu misi programaSi gamoyeneba
ar aris saWiro, igi SeiZleba gamovtovoT da Cveulebrivad
gadavideT rigiT momdevno operatorze.
ganvixiloT magaliTi sadac Else ar aris gamoyenebuli:
klaviaturidan Setanili nebismieri X mTeli ricxvi
Tu dadebiTia maSin igi gavadidoT samjer, Tu nulis tolia
gavadidoT 3-iT, xolo Tu uaryofiTia, maSin gavadidoT
(-3)-jer.
Var X : Integer;Begin Writeln(‘X=’); Readln(X); If X > 0 Then X : = 3 * X; If X = 0 Then X : = 3 + X; If X < 0 Then X : = -3 * X;Writeln(‘X=’, X);Readln;End.
25
If.....Then.....Else operatoris gamoyenebis martivi programa:
Program IfDemo;
var UserInput : Integer;
begin Write (‘ramdeni wlisa xarT?’);
Readln (UserInput); If (UserInput < 1) or (UserInput > 130) Then Writeln(‘pasuxi arasworia’)else Writeln (‘Tqven ’, UserInput, ‘ wlisa xarT.’);
Writeln(‘programis dasrulebisaTvis daaWireT Enter-s’);Readln;end.
mocemul programaSi gamoiyeneba erTaderTi cvladi:
UserInput, romlis Setanis Semdeg mowmdeba piroba, Tu es
cvladi naklebia erTze da metia 130, ekranze gamova
Setyobineba, rom Tqven araswori informacia SeitaneT, xolo
sxva danarCen SemTxvevaSi, gamova Setyobineba, rom Tqven
UserInput wlisa xarT.
26
ciklis (ganmeorebis) operatorebi
FOR – TO cikli
turbo paskalSi aris sami gansxvavebuli operatori,
romlis meSveobiT SeiZleba daprogramdes ganmeorebiTi
procesi.
FOR - TO ciklis operators aqvs aseTi struqtura:
FOR < ciklis parametri> := <sawyisi mniSvneloba>
TO < saboloo mniSvneloba> DO < operatorebi>.aq FOR, TO, DO _ darezervebuli sityvebia (saTvis,
mde, Sesruleba).
< ciklis parametri> integer tipis cvladia.
<sawyisi mniSvneloba> da <saboloo mniSvneloba> igive
tipis gamosaxulebaa.
<operatorebi> turbo paskalis nebismieri
operatorebia. FOR operatoris Sesrulebis dasawyisSi
<ciklis parametrs> eniWeba <sawyisi mniSvneloba>, ris
Semdegac igi ciklurad meordeba, sanam WeSmaritia piroba:
<ciklis parametri> <= <saboloo mniSvneloba>,
winaaRmdeg SemTxvevaSi cikli amTavrebs muSaobas. muSaobis
periodSi ciklis parametri izrdeba erTi erTeuliT, e.i.
ciklis yoveli ganmeorebisas ciklis parametri izrdeba
1 erTeuliT.
FOR operatoris ilustraciisaTvis ganvixiloT programa,
romelic klaviaturidan N nebismier mTel ricxvs Seitans
da 1-dan N-mde gamoiTvlis yvela mTeli ricxvebis jams.
Program summ_of_integer;(programas Seaqvs mTeli dadebiTi ricxvi N da
gamoiTvlis yvela mTeli ricxvebis jams 1-dan N-mde).
27
var
I, N, S : integer; {cvladebi}
begin
Write(‘N=’); Readln(N); {N Setana}
S := 0; {jamis sawyisi mniSvneloba}
FOR I:=1 TO N do {jamis daTvlis cikli}
S := S + I;
Writeln(‘S=’, S); {Sedegis gamotana}
end.sanam I icvleba 1-dan N-mde, sruldeba <operatorebi>.
rogorc ki I-s mniSvneloba gadaaWarbebs N-s, cikli wyvets
muSaobas da marTva gadaecema rigiT momdevno operators.
ciklis parametris gazrda +1 erTeuliT mkacrad
gansazRvrulia. arsebobs operatoris sxva forma:
FOR <ciklis parametri> := <sawyisi mniSvneloba>
DOWNTO <saboloo mniSvneloba> DO <operatorebi>
darezervebuli TO sityvis DOWNTO sityviT Secvla
niSnavs, ciklis parametris cvlas (-1) erTeuliT. wina
magaliTis modificireba SeiZleba ise, rom gamosadegi iyos
rogorc dadebiTi, aseve uaryofiTi jamis gamoTvlisaTvis :
————————
S := 0;
If N >= 0 then
for I := 1 to N do
S := S + I
else
28
for I := -1 downto N do
S := S+I;—————————
ganvixiloT magaliTi, romelic amobeWdavs N-dan 1-mdeyvela naturalur ricxvs.
Var
I, N : integer; {cvladebi}
begin
Write(‘N=’); Readln(N); {Segvaqvs N}
FOR I:= N DOWNTO 1 DO
Write(I : 4);
Readln;
end.…
ganxilul programaSi gamoyenebulia ……FOR -…DOWNTOcikli, radgan ciklis parametri (-1)-iT unda Seicvalos.
gamotanis operatori …Write(I : 4), niSnavs, rom I-isyoveli momdevno mniSvnelobis gamotana moxdeba imave
striqonze, amave dros yoveli momdevno I ekranze daibeWdebawina mniSvnelobidan meoTxe poziciaze.
29
ciklis operatori wina pirobiT.
WHILE – DO cikli.
WHILE – DO ciklis zogadi struqturaa:
WHILE <piroba> DO < operatorebi>aq WHILE, DO _ darezervebuli sityvebia (sanam,
gavakeToT)
<piroba> _ logikuri tipis gamosaxulebaa,
<operatorebi> _ turbo paskalis nebismieri
operatorebia.
Tu gamosaxuleba <piroba> _s aqvs FALSE mniSvneloba,
operatori WHILE wyvets Tavis muSaobas.
ganvixiloT magaliTi, romelic 1-dan n - mde mxolod
kent ricxvebs amobeWdavs.
var
i, n : integer;
begin
Writeln(‘n=’); Readln(n);
i := 1;
While i <= n do begin
Writeln (i);
i := i + 2; end;
Readln;
end.
30
WHILE – DO ciklSi ciklis parametri, Cvens SemTx-
vevaSi i, icvleba nebismieri intervaliT, amitom misi
cvlileba aucileblad unda iyos miTiTebuli.
ganvixiloT programa, romelic gamoiTvlis 1-dan N-mde luwi ricxvebis jams.
var
i, n, s : integer;
begin
Writeln(‘n=’); Readln(n);
i := 2;
s := 0;
While i <= n do begin
s := s + i;
i := i + 2; end;
Writeln(‘s=’, s);
Readln;
end.
jamis sawyisi mniSvneloba 0-is tolia, xolo ciklis
parametris sawyisi mniSvneloba - 2-is, cikli meordeba
manam, sanam ciklis parametris mniSvneloba ar gadaaWarbebs
N-s (ciklis parametris saboloo mniSvnelobas).
31
ciklis operatori bolo pirobiT
REPEAT – UNTIL cikli
REPEAT – UNTIL ciklis operators aqvs Semdegi
struqtura:
REPEAT <operatorebis mimdevroba> UNTIL <piroba>.
aq REPEAT , UNTIL darezervebuli sityvebia, (vimeoroT
manam, sanam ar iqneba Sesrulebuli piroba).
<operatorebis mimdevroba> turbo paskalis nebismieri
operatorebia.
<piroba> logikuri tipis gamosaxulebaa.
<operatorebis mimdevroba meordeba Tundac erTxel,
mas Semdeg rac Semowmdeba <piroba>, Tu misi mniSvneloba
mcdaria, cikli agrZelebs muSaobas. rogorc ki <piroba>
WeSmariti gaxdeba , cikli amTavrebs muSaobas.
REPEAT – UNTIL ciklis ilustraciisaTvis ganvixiloT
pograma, romelsac ekranze gamoaqvs 2 _ dan n _ mde luwi
ricxvebi:
vari, n : integer;
beginWriteln(‘n =’); Readln(n);
i := 2;Repeat
Writeln (i); i := i + 2;
Until i > n;End.
32
Until _ is win ` ; ~-is dasma ar aris aucilebeli.
FOR – TO, WHILE – DO, REPEAT – UNTIL ciklis
operatorebis moqnili marTvisaTvis turbo paskalSi
gamoyenebulia ori procedura:
BREAK _ romelic ciklidan dauyovnebliv gamosvlas
axorcielebs da marTva gadaecema ciklis dasasrulis
momdevno operators.
CONTINUE _ uzrunvelyofs ciklis momdevno
ganmeorebis vadaze adre dasrulebas. igi ciklis
operatoris bolo operatorze mimarTvis eqvivalenturia.
am procedurebis Semotana praqtikulad gamoricxavs
GOTO gadasvlis upirobo operatoris gamoyenebas.
ganvixiloT martivi programebi ciklis operatorebis
gamoyenebiT:
Program ForDemo;
var count : Integer;
begin For Count := 1 to 10 do Writeln (‘gamarjobaT!’);Writeln(‘programis dasrulebisaTvis daaWireT Enter-s’);Readln;end.
programa aTjer gamoitans sityvas `gamarjobaT~.
33
Program WhileDoDemo;
Var I : Char;
begin I := ‘ ‘; While (I < > ‘q’) and (I < > ‘Q’) Do begin Write (‘Seitan eT sim bolo (programis
dasrulebisaTvis SeitaneT q an Q) : ‘); Readln(I); end;Writeln (‘programis dasrulebisaTvis daaWireT Enter-s’); Readln;
end.
While-Do ciklis operatori daamTavrebs muSaobas maSin,
roca klaviaturidan SevitanT `q~ an `Q~ simbolos.
Program RepeatDemo;
Var I : Char;
begin Repeat Write (‘SeitaneT simbolo (programis dasrulebisaTvis
SeitaneT q an Q) : ‘);Readln(I); Until (I = ‘q’) or (I = ‘Q’) ;
34
amorCevis operatori
amorCevis operatori saSualebas iZleva amovirCioT erTi
ramodenime SesaZleblobidan. amorCeva xdeba amorCevis
gasaRebis mixedviT, romelic warmoadgens rigiTi tipis
nebismier gamosaxulebas (nebismieri garda REAL da STRINGtipisa).
amorCevis operatoris struqturas aqvs Semdegi saxe:
CASE < amorCevis gasaRebi> OF < amorCevis sia> [ELSE< operatorebi>] END.
aq CASE, OF, ELSE, END – darezervebuli sityvebia.
(amorCeva, dan, winaaRmdeg SemTxvevaSi, dasasruli).
< amorCevis gasaRebi> is monacemia, romlis mixedviTac
amorCeva xdeba;
<amorCevis sia> _ arCevanis CamonaTvalia;
<operatorebi> _ turbo paskalis nebismieri
Writeln (‘programis dasrulebisaTvis daaWireT Enter-s’); Readln;
end.
operatoria.
amorCevis operatori Semdegnairad muSaobs: dasawyisSi
gamoiTvleba <amorCevis gasaRebis> mniSvneloba. Semdeg
amorCevis siaSi moiZebneba iseTi, romelic Seesabameba
amorCevis gasaRebis mniSvnelobas. napovni operatori
Sesruldeba da amorCevis operatori amTavrebs muSaobas.
Tu amorCevis siaSi ar iqneba is mudmiva, romelic Seesabameba
35
ELSE < operatori> SeiZleba gamotovebul iqnes, maSin
mocemul siaSi saWiro mudmivas aryofnis SemTxvevaSi
araviTari moqmedeba ar sruldeba da amorCevis operatori
ubralod amTavrebs muSaobas. amorCevis siis operatorebSi
SeiZleba monawileobdes ara erTi aramed ramodenime
amorCevis mudmiva, romlebic erTmaneTisagan mZimiTaa
gamoyofili. mag. Semdegi programa y an Y simbolos Setanisas
ekranze gamoitans sityvas `diax~, xolo N an n Setanisassityvas `ara~.
mag.:
Varch : char;
beginreadln(ch);
case ch of
‘n’,’N’: Writeln(‘ara’’);
‘y’, ‘Y’: Writeln(‘diax’);end;
end.
TiToeul Setanil simbolos programa amoicnobs, raTa
gamoimuSaos Sesabamisi sapasuxo reaqcia. amorCevis
operatori programists saSualebas aZlevs Seadaros
Setanili monacemebi winaswar gansazRvrul SemTxvevaTa
simravles da moaxdinos Sesabamisi moqmedeba.
amorCevis gasaRebis mniSvnelobas, maSin marTva gadaecema
ELSE-s Semdgom operators.
36
ganvixiloT programa amorCevis operatoris gamoyenebiT:
Program CaseDemo;
var UserIn : Char;
begin Writeln (‘SeitaneT erTi simbolo da daaWireT Enter-
s’);
Readln (UserIn);Case UserIn of‘a’ : Writeln (‘es weriTi a simboloa’);
‘z’, ‘Z’ : Writeln (‘es weriTi an beWdviTi z simboloa’)
elseWriteln (‘es simbolo gansxvavebulia a, z, Z - sagan’);end;Writeln (‘programis dasrulebisaTvis daaWireT Enter-
s’);
Readln;end.
ganvixiloT magaliTi, romelic mikrokalkulatoris
muSaobis imitacias warmoadgens. SeitanT or ricxvs da
operaciis niSans. xorcieldeba Sesabamisi operacia da
Sedegi ekranze gamodis. Tu klaviaturidan Setanili
simbolo gansxvavebulia +, _, /, * simboloebisagan, programa
daasrulebs muSaobas.
37
Program calc;
Var
Operacion : char;
X, Y, Z : Real;
stop : boolean;
begin
stop := false;
repeat
Writeln;
Write (‘X, Y=’);
Readln(X, Y);
Write(‘operacia’);
Readln(Operacion);
Case Operacion of
‘+’ : Z := X + Y;
‘-’ : Z := X - Y;
‘*’ : Z := X *Y;
‘/’ : Z := X / Y;
else
stop := true;
end;
if not stop then
Writeln (‘Z=’, Z);
until stop; end.
38
programa Setanili mimdinare TariRis mixedviT gamoitans
momdevno dRis TariRs(ricxvs, Tves da wels);
Program callendar;
var month, day, year, nom : integer;
begin
Writeln(‘nom, day, year’); Readln(nom, day, year); Case nom of 1 : month:= 1; 2 : month:= 2; 3 : month:= 3; 4 : month:= 4; 5 : month:= 5; 6 : month:= 6; 7 : month:= 7; 8 : month:= 8; 9 : month:= 9; 10 : month:= 10; 11 : month:= 11; 12 : month:= 12; end;Case nom of 1, 3, 5, 7, 8, 10 : if day = 31 then begin day := 1; month := succ (month);end elseday := day + 1;
39
Wde da gadasvlis operatori
Cvens mier ganxiluli operatorebi sakmarisia nebismieri
sirTulis programis dasawerad. am TvalsazrisiT gadasvlis
operatoris gamoyeneba zedmetad iTvleba. amasTan,
Tanamedrove struqturuli programirebis teqnologia
dafuZnebulia GOTO - s gareSe programirebaze. iTvleba,
rom GOTO –s gamoyeneba arTulebs programis gaazrebas
da CaxlarTuls xdis mas. Tumca, zogjer GOTO – s
4, 6, 9, 11 : if day = 30 then begin
day := 1; month:= succ(month); end elseday := day + 1;12 : if day = 31 then begin day := 1; month := 1; year := year + 1; end else day := day + 1;2 : if (day = 28) and (year mod 4 < > 0) or (dd = 29) then begin day := 1; month := succ(month); endelse day := day + 1; end;
Writeln (month);Writeln (day);Writeln (year); Readln;end.
40
gamoyenebam SeiZleba gaamartivos programa.
gadasvlis operators aqvs Semdegi saxe:
GOTO – <Wde>
aq GOTO – darezervebuli sityvaa (gadadi [Wdeze]).
Wde turbo paskalSi nebismieri identifikatoria, romelic
programis romelime operators aniWebs saxels da
mimarTvads xdis mas.
turbo paskalSi dasaSvebia Wdis saxiT gamoyenebul
iqnes mTeli ricxvi niSnis gareSe. Wde ganTavsebulia
mosaniSni operatoris win da misgan gamoiyofa ` : ~ - iT.
sanam programaSi gamoCndeba Wde, igi unda iqnes aRwerili.
Wdis aRwera Sedgeba darezervebuli sityvisagan LABEL(Wde), romelsac Wdis sia mosdevs .
LABEL Loop, Lb1, Lb2;
begin………goto Lb1;………Loop : ………………Lb1 : Lb2 : …….………goto Lb2;………
41
goto operatoris moqmedeba mdgomareobs daniSnul
operatorze marTvis gadacemaSi. Wdis gamoyenebisas
aucilebelia gaviTvaliswinoT Semdegi wesebi :
• Wde aucileblad unda aRiweros aRweris nawilSi
da aucileblad monawileobdes operatorebis nawilSi.
• Wde, romelic aRwerilia proceduraSi an funqciaSi,
lokalizebulia mxolod maTTvis.
masivis ti pi.
masivis tipi miekuTvneba rTuli tipis monacemebs. rTuli
tipis monacemebi gansxvavdeba martivisagan imiT, rom isini
Seicaven 1-ze met komponents. masivi erTnairi tipis
monacemebis mowesrigebuli nakrebia. masivis aRwera xdeba
misi komponentebis tipisa da indeqsis CvenebiT. masivis
aRweris zogadi saxea:
ARRAY [T1] of T2
sadac T1 indeqsia, T2 monacemebis tipi. ganvixiloT masivis
aRweris ramodenime magaliTi.
TYPE COLOR = (RED, BLUE, BLACK) ;
MAS1 = ARRAY[-5..15] OF REAL;
MAS2 = ARRAY[1..10,1..10] OF INTEGER;
AMS3 = ARRAY[‘A’..’C’] OF ARRAY[1..5] OF BOOLEAN;
MAS4 = ARRAY[BOOLEAN] OF CHAR;
VAR A : MAS1; B : MAS2; C : MAS3; D : MAS4;
42
E : ARRAY[COLOR] OF REAL;
A masivi aris namdvili tipi, romlis komponentebis
indeqsebia 5-dan 15-mde. B masivi mTeli ricxvebisagan
Sedgenili kvadratuli matricaa, romelic Sesdgeba 10
striqonisa da 10 svetisagan. C masivi aRwerilia, rogorc
logikuri sidideebis matrica, romelsac aqvs sami striqoni
A, B, C da xuTi sveti. misi elementi, romelic dgas
meore striqonSi da pirvel svetSi aRiniSneba:
C[‘B’,1]D masivi S simboloebis veqtoria, romelic ori
komponentisagan Sedgeba .
E masivi warmoadgens sam elementian veqtors, e.i. Seicavs
sam obieqts, romelic aRwerilia CamoTvliTi ti piT
COLOR. misi komponentebi gamoiyurebian Semdegnairad:
E[RED], E[BLUE]; E[BLACK].masivis elementebis Setana da gamotana SeiZleba mxolod
TiToeuli elementis saxiT, ganvixiloT masivis Setana-
gamotanis ramdenime magaliTi:
PROGRAM ….;
MAS1 = ARRAY [1..3, 1..2] OF REAL;
MAS2 = ARRAY[1..6] OF REAL;
var
XS : MAS2;
XF : MAS1; I, J : Integer;(*fragmenti 1*);
begin Readln; Write(‘XS=> ‘);For I:=1 to 6 do Read(XS[I]);
43
(*fragmenti 2*)
Readln; Write(‘XF=>’); For I := 1 to 3 do for J := 1 to 2 do Read (XF[I, J]);
fragmenti 1 axorcielebs eqvs elementian namdvili tipis
masivis Setanas, xolo meores Seaqvs namdvili tipis matrica,
romelic Sedgeba sami striqonisa da ori svetisagan, Setana
xorcieldeba ori CarTuli ciklis operatoris meSveobiT,
xolo Sesabamisi masivebis gamotanas aqvs Semdegi saxe:
(*fragmenti 1*)
FFor I:=1 to 6 do Write (XS[I] : 4);
(fragmenti 2*)
For I:=1 to 3 do
begin
For J:=1 to 2 do Write (XF[I, J] : 6 : 2);
Writeln;
end.
ganvixiloT magaliTi, romelic Seajamebs aT elementian
mTeli tipis masivis wevrebs.
const
N = 10;
var
44
A : Array[1..N] of Integer;
I, S : Integer;
begin
Writeln (‘masivi’);
For I:=1 to N do Readln (A[I]);
S := 0;
For I := 1 to N do S := S + A[I];
Writeln (‘S = ’, S);
end.ganvixiloT programa, romelic Sekrebs MM matricis
TiToeuli striqonis dadebiT elementebs da miRebuli
jamisagan aagebs VV veqtors.
type MAT1 = Array [0..5, 0..9] of Integer;
VEK1 = Array[0..5] of Integer;
var MM : MAT1; VV : VEK1; S, I, J : Integer;………………………………….
For I = 0 to 5 dobegin
S := 0;
For J := 0 to 9 do
If MM[I, J] > 0 then S := S + MM[I, J];
VV[I]:=5;
end.
programa iTvlis aT elementiani mTeli tipis masivSi
luwi elementebis raodenobas.
45
Program ……….;
const
N = 10;
var
K , I : Integer;
M : Array[1..N] of Integer;
begin
K := 0;
Write (‘masivi=>’);
For I := 1 to N do readln (M[I]);
For I := 1 to N do
If M[I] mod 2 = 0 then
K:=K+1;
Writeln (‘luwi elementebis raodenoba=’, K);
end.
programa iTvlis aTelementian masivSi kentindeqsiani
wevrebis jams:
Program ……..;
const
N=10;
var
M : Array[1..N] of Integer;
I, S : Integer;
begin
46
Writeln (‘masivi=>’);
For I:=1 to N do readln (M[I]);
S := 0; I := 1;
Repeat
S := S + M[I];
I := I+2;
Until I>N; Writeln(‘S=’, S) ;
end.
simravle
simravle erTnairi tipis obieqtebis nakrebia, romlebic
raRac saxiT arian erTmaneTTan dakavSirebulni. obieqtebs
Soris kavSiris xasiaTi gaTvaliswinebulia programistis
mier da ar kontroldeba turbo paskalis garemoTi.
elementebis raodenoba simravleSi SeiZleba icvlebodes
0-255-is farglebSi. simravle Tu ar Seicavs elements,
hqvia carieli [ ].
ori simravle eqvivalenturia, Tu maTi yvela elementi
erTnairia. maTi mimdevroba SeiZleba iyos nebismieri. Tu
erTi simravlis yvela elementi Sedis meoreSi, amboben, rom
pirveli simravle CarTulia meoreSi.
ganxilul magaliTSi mocemulia simravle :
type
digitchar = set of ‘0’..’9’ ;
digit = set of 0..9;
47
var
S1, S2, S3 : digitchar;
S4, S5, S6 : digit;
…………………..
S1 := [‘1’,’2’,’3’];
S2 := [’3’,’2’,’1’];
S3 := [‘2’,’3’];
S4 := [0..3, 6];
S5 := [4, 5 ];
S6 := [3..9];am magaliTSi simravle S1 eqvivalenturia S2-sa, S3
CarTulia S2 –Si, magram misi eqvivalenturi ar aris.
simravlis aRweras aqvs Semdegi saxe:
<tipis saxeli> = set of < bazuri tipi><tipis saxeli> - identifikatoria.
set, of darezervebuli sityvebia (simravle, dan).
<baz. tipi> - simravlis elementebis bazuri tipia,
romlis saxiT SeiZleba gamoyenebul iqnas nebismieri tipi,
garda Word, Integer, Longint.
simravlis elementebi erTmaneTisagan gamoiyofa mZimeebiT
da Caismeba kvadratul frCxilebSi.
simravleebisaTvis gansazRvrulia Semdegi operaciebi:
* simravleTa gadakveTa, Sedegi Seicavs mocemul
simravleTa saerTo elements.
magaliTad S4 * S6 Seicavs [3, 6]-s.
+ simravleTa gaerTianebaa. Sedegi Seicavs pirveli
simravlis yvela elements mimatebuls meore simravlis
48
S4 + S5 Seicavs [0, 1, 2, 3, 4, 5, 6,];
- simravleTa sxvaoba, Sedegi Seicavs pirveli simravlis
im elementebs, romlebic ar Sedian meore simravleSi.
S6-S5 Seicavs [3, 6, 7, 8, 9];
= simravleTa Semowmeba eqvivalenturobaze, Sedegia TRUE,Tu simravleebi eqvivalenturia.
< > araeqvivalenturobaze Semowmeba. Sedegia TRUE, Tusimravleebi araeqvivalenturia.
<= simravleTa Sedareba. Sedegia TRUE, Tu meoresimravle CarTulia pirvelSi.
>= simravleTa Sedareba, Sedegia TRUE, Tu meore simravle
CarTulia pirvelSi.
in Semowmeba kuTvnilebaze. aq pirveli elementia
gamosaxuleba, meore ki - igive tipis simravle. Sedegia
TRUE, Tu gamosaxulebis mniSvneloba Sedis simravleSi.
3 in S6 - TRUE
2 * 2 in S1 - FALSE.
gansxvavebul elementebs.
49
programa ekranidan Setanil ricxvs Seamowmebs martivia
Tu ara da gamoscems Sesabamis Setyobinebas:
Program SetOfDemo;
const n = 201;
Type mn = set of 2..n;
var m, pm : mn;q, i, k, p : integer;
beginm := [2..n]; pm := [ ];p := 2;Repeat While not (p in m) do p := p + 1; pm := pm + [p]; k := p; Repeat m := m - [k]; k := k + p; Until k > n;Until m = [ ]; Writeln;Repeat Writeln(‘q’); Readln(q);If q in pm then Writeln(q, ‘martivia’) else Writeln (q, ‘ar aris martivi’);UUntil q > 201;Readln;end.
50
striqonis tipi
STRING (striqoni) tipi farTod gamoiyeneba turbopaskalSi teqstebis dasamuSaveblad. is emsgavseba
erTganzomilebiani masivis simboloebs ARRAY[0..N] OFCHAR. magram am ukanasknelisagan gansxvavebiT, striqonSi
simboloebis raodenoba SeiZleba 0-dan N-mde icvlebodes,
sadac N striqonSi elementTa maqsimaluri raodenobaa.
N-is mniSvneloba ganisazRvreba STRING[N] ti pisgamocxadebiT da SeiZleba Seicavdes 255 simbolos. turbo
paskali saSualebas gvaZlevs ar mivuTiToT N, am SemTxvevaSistriqonis sigrZe CaiTvleba maqsimalurad SesaZlebeli,
anu N = 255.striqoni simboloebis mimdevrobaa. striqonis nebismier
elements SeiZleba mivmarToT zustad iseve, rogorc
erTganzomilebiani masivis elementebs, romelic aRwerilia
Semdegnairad:
ARRAY [0..N] of CHAR;
mag.:
var
st : String;
begin……………………….
If st[5] = ’A’ then………..……….end.
striqonebze SeiZleba ganxorcieldes SeWidebis operacia
51
ST := ’A’+’B’;
ST := ST + ’C’; {ST Seicavs ‘ABC’}
Tu miRebuli striqonis sigrZe dasaSvebs aRemateba,
maSin zedmeti simboloebi ukuigdeba. ganvixiloT magaliTi,
romelic dabeWdavs mxolod erT simbolos.
var
st : String[1];
begin
st := ’123’;
Writeln(st);
end.
danarCeni moqmedebebi striqonebsa da simboloebze
xorcieldeba qvemoT moyvanili procedurebisa da
funqciebis meSveobiT.
CONCAT (S1, S2, …….,Sn) –STRING tipis funqciaa,iZleva striqons, romelic miRebulia S1, S2, …., Snstriqonebis SeerTebiT.
Tu ST1 = a ; ST2 = b ; STk = z ;CONCAT(ST1, ST2,…..,STk) = ab….z;
COPY (ST, INDEX, COUNT) – STRING tipis funqciaa,romelic ST striqonidan, INDEX nomridan dawyebul COUNTraodenobis simbolos gaukeTebs kopirebas,
COPY (‘Branka’, 3, 4) -> ‘anka’
COPY (‘Branka’, 5, 3) -> ‘ka’
52
COPY (‘Branka’, 2,1) -> ‘r’
DELETE(ST, INDEX, COUNT) procedura STstriqonidan waSlis COUNT raodenobis simbolos,
dawyebuli INDEX nomridan.ganvixiloT magaliTi, davuSvaT dasawyisSi trg-s aqvs
mniSvneloba ‘janek’
DELETE (trg, 4, 2) -> ‘jan’
DELETE (trg, 6, 1) -> ‘janek’
DELETE (trg, 5, 3) -> ‘jane’
INSERT (SUBST, ST, INDEX) – procedura SUBSTqvestriqons Casvams ST striqonSi, INDEX nomridandawyebuli.
INSERT(‘an’, trg, 2) -> ‘janb’
trg = ’jb’
LENGTH (ST) - mTeli tipis funqciaa, romelic
gvaZlevs ST striqonis sigrZes.LENGTH (‘jb’) ->2
STR (VAL, VAR) - proceduras mTeli an namdvili tipis
ricxvi gadahyavs simboloebis striqonSi.
VAL ariTmetikuli gamosaxulebaa,
VAR - striqonuli cvladis saxelia.
STR (45, strvar) ->’45’
STR (-250, strvar) -> ‘-250’
VAL (ST, X, CODE) - proceduraa, romelsac striqoni
ST gadahyavs mTel an namdvil ricxvSi. Tu gadayvanam
53
Caiara warmatebiT, CODE Seicavs nuls, xolo Tu gadayvanam
warmatebiT ar Caiara, maSin CODE Seicavs ST striqonisim poziciis nomers, sadac napovni iqneba SecdomiTi simbolo,
carieli adgili striqonSi ar unda iyos.
POS (SUBST, ST) – mTeli tipis funqciaa, romelic STstriqonSi moZebnis SUBST qvestriqonis pirvel Sesvlas
da iZleva poziciis nomers, romlidanac igi iwyeba. Tu
qvestriqoni ar iqneba napovni gvaZlevs nuls.
POS (‘23’, ’123123’) -> 2
POS (‘21’,’123123’) -> 0
POS (‘c’, ’abcabc’) -> 3
UPCASE(CH) – CHAR tipis funqciaa, romelsac CHsimboluri gamosaxuleba gadahyavs beWdviT laTinur
simboloebSi.
ganvixiloT magaliTi, romelSic gamoyenebulia ramdenime
procedura da funqcia :
var
x : Real ;
y : Integer ;
st, st1 : String ;
begin
st := concat (‘12’,’345’); {st striqoni Seicavs 12345}
st1 := copy (st, 3, Length(st)-2); {st Seicavs 345}
Insert(‘-‘, st1, 2); {st1 Seicavs 3-45}
Delete (st, pos(‘2’, st, 3)); {st striqoni Seicavs 15}
Str (p1 : 6 : 2, st); {st striqoni Seicavs 3-
54
14}
Val (‘3,1415’, x, y); {y Seicavs 2, x darCa ucvleli}
end.=, < >, >, <, >=, <= damokidebulebis operaciebi sruldeba
or striqonze. Sedareba xdeba simboloebis mixedviT.
qvemoT ganxiluli operaciebi mogvcems TRUEmniSvnelobas:
‘’’’<’.’
‘A’ > ’1’
‘Turbo’ < ‘Turbo Pascal’
ganvixiloT magaliTi, romelsac simboluri gamosaxuleba
gadahyavs beWdviT laTinur simboloebSi.
Program ………;
var
k, ch : String; I : Integer;
begin
Readln (ch);
for I := 1 to length(ch) do begin
k[I] := Upcase(ch[I]); Write(k[I]);
end;
Readln;
end.
55
programa aerTianebs or striqons da beWdavs
ukumimdevrobiT, iTvlis gaerTianebuli striqonis sigrZes
da gamoaqvs ekranze:
Program StringDemo;
var St1, St2 : String[15]; St : String; I, K : Integer;
begin Writeln (‘St1, St2’); Readln (St1, St2);St := Concat (St1,’ ‘, St2);K := Length (St);For I := K Downto 1 Do Write(St[I]); Writeln(‘gaerTianebuli striqonis sigrZea ’, K);Readln;end.
ganxilul programaSi St1, St2 striqonebis maqsimaluri
sigrZea 15 simbolo, rac niSnavs, rom Tu Setanili
striqonebis sigrZe aRemateba aRniSnuls, maSin zedmeti
simboloebi daikargeba. St striqonis sigrZe ar arisgamocxadebuli, amitom igulisxmeba, rom misi sigrZea 255.
56
obieqturi paskali.
(Object Pascal)
Canawerebi
Canaweris (RECORD) ti ps aqvs gansxvavebuli
monacemebis struqtura. masivis msgavsad Canaweri gamoiyeneba
urTierTdamokidebuli informaciis jgufis Sesanaxad, magram
masivisagan gansxvavebiT Canaweris elementebi ar aris
aucilebeli iyos erTnairi tipis. Canawerebi gamoiyeneba
ZiriTadad iseTi obieqtebis Sesaxeb informaciis Sesanaxad,
rogoricaa adamianebi an adgilebi. CanawerSi SeiZleba
movaTavsoT gvarebi, misamarTebi, telefonis nomrebi, wona.
informaciis mTel jgufs SeiZleba mivceT erTi saxeli,
iseve rogorc masivSi.
ganvixiloT Canaweris tipis martivi magaliTi.
Program MyRecordDemo ; uses forms ;type PersonalRecordType=Record Name : String[30]; PhoneNumber : String[13]; Age : Integer; Sex : Char;end; {PersonalRecordType}var Person : PersonalRecordType;begin Person.Name := ‘Dan Osier’; Person.PhoneNumber := ‘(916)555-1212’; Person.Age :=32;
57
Person.Sex := ‘M’; Writeln(‘The Person’ ‘ s name is ‘, Person.Name); Writeln (‘The Person’ ’s Phone number is ‘, Person.PhoneNumber); Writeln(‘The Person’ ’ s age is ‘, Person.Age); Writeln(‘The Person’ ’ s sex is ‘, Person.Sex);Readln; {fanjara rom darCes gaxsnili, sanam ar
davaWerT Enter Rilaks}
end. {MyRecordDemo}
programa iwyeba RECORD tipis gamocxadebiT.
monacemTa struqturis es ti pi Sesdgeba ramdenime
nawilisagan. pirveli striqoni PersonalRecordType =Recordambobs, rom gamocxadebis Semdegi striqonebi Seicavs
Canaweris velebs. SemdgomSi CamoTvlilia velebi (maTi
tipebi). aq gvaqvs velebi: Name (gvari, saxeli) String tipis,romlis sigrZea 30 simbolo, PhoneNumber (telefonis
nomeri) String tipis, romlis sigrZea 13 simbolo, Age (asaki)Integer-is tipis da Sex (sqesi) Shar tipis (M an F).Canaweris gamocxadeba mTavrdeba end operatoriT.es gamocxadeba mxolod gansazRvravs Canaweris tips. roca
gamocxaddeba Person cvladi, rogorc PersonalRecordType,mxolod maSin gamoiyofa mexsiereba mocemuli tipisaTvis.
ris Semdegac xdeba monacemebis Setana.
TiToeuli velis Sesatanad jer miTiTebulia Canaweri,
Semdeg ki Canaweris veli. magaliTad gvari da saxelis
Setana xdeba Semdegnairad: Person.Name:=’Dan Osier’. isuCvenebs Delph-s Canaweris romel velTan gvinda mimarTva.
gamotanis operatorSi naCvenebia veli, romelic gvinda
daibeWdos. Tu gamotanis operators mivcemT Semdeg saxes
Writeln(Person), is ver amoicnobs, Tu romeli veli dabeWdos.
gamoviyenoT masivi, romelic Sedgeba Canawerebisagan.
magaliTad Tu masivs gamovacxadebT, rogorc Array[1..3] ofPersonalRecordType, es niSnavs, rom es masivi Sedgeba sami
58
Canawerisagan. TiToeuli es Canaweri Seicavs informacias
pirovnebis Sesaxeb, rogoricaa gvari, telefonis nomeri
da ase Semdeg.
ganvixiloT Canaweris tipis martivi magaliTi.
Program MyRecordDemo ; uses forms ;type PersonalRecordType=Record Name : String[30]; PhoneNumber : String[13]; Age : Integer; Sex : Charend; {PersonalRecordType}MyArrayType=array [1..3] of PersonRecordType;var PersonArray : MyArrayType;begin PersonArray[1].Name := ‘Dan Osier’; PersonArray[1].PhoneNumber := ‘(916)555-1212’; PersonArray[1].Age :=32; PersonArray[1].Sex := ‘M’;
PersonArray[2].Name := ‘Susie Smith’; PersonArray[2].PhoneNumber := ‘(916)555-9999’; PersonArray[2].Age :=38; PersonArray[2].Sex := ‘F’;
PersonArray[3].Name := ‘Pat’; PersonArray[3].PhoneNumber := ‘(916)555-7766’; PersonArray[3].Age :=30; PersonArray[3].Sex := ‘M’;
59
Writeln(‘pirveli TanamSromlis saxeli‘, PersonArray[1].Name); Writeln (‘telefonis nomeri ‘, PersonArray[1].PhoneNumber); Writeln(‘asaki‘, PersonArray[1].Age); Writeln(‘sqesi ‘, PersonArray[1].Sex);
Writeln(‘meore TanamSromlis saxeli ‘, PersonArray[2].Name); Writeln (‘telefonis nomeri ‘, PersonArray[2].PhoneNumber); Writeln(‘asaki‘, PersonArray[2].Age); Writeln(‘sqesi ‘, PersonArray[2].Sex);
Writeln(‘mesame TanamSromlis saxeli ‘, PersonArray[3].Name); Writeln (‘telefonis nomeri ‘, PersonArray[3].PhoneNumber); Writeln(‘asaki‘, PersonArray[3].Age); Writeln(‘sqesi ‘, PersonArray[3].Sex);
Readln; {fanjara rom darCes gaxsnili, sanam ar davaWerT
Enter Rilaks}
end. {MyArrayRecordDemo}
ganxilul magaliTSi PersonArray cvladi warmoadgens
Canaweris ti pis masivs . am saxiT operatori
PersonArray[3].Name := ’Pat’, miuTiTebs, rom PersonArraycvladSi mesame elementis Name vels mieniWos ‘Pat’mniSvneloba.
masivis tipis Canaweris gamoyeneba mouxerxebelia, rodesac
Sesatani gvaqvs didi moculobis informacia, magaliTad
informacia TanamSromlebis Sesaxeb.
ganvixiloT Canaweris tipis kidev erTi magaliTi:
Program MyRecord2demo ;uses
60
Forms;type AddressType=record Street : String [50]; City : String [20]; State : string [2]; ZipCode : String [10]end; {addressType}
PersonType = record LastName : String[20]; FirstName : String [10]; EmployeeNumber : Integer; HomeAddress : AddressType; WorkAddress : AddressType;end; {PersonType}
var Employee : PersonType;begin Employee.LastName := ‘Osier’; Employee.FirstName := ‘don’; Employee.EmployeeNumber := 16253;
Employee.HomeAddress.Street := ‘1313 Your St.’; Employee. HomeAddress.City := ‘MyTown’; Employee. HomeAddress.State := ‘Ca’; Employee. HomeAddress.ZipCode := ‘95630-0011’;
Employee.WorkAddress.Street := ’14 Big Business Road.’; Employee.WorkAddress.City := ‘NoOzone’; Employee.WorkAddress.State := ‘CA’; Employee.WorkAddress.ZipCode := ‘95636-2211’;
61
Writeln (Employee.LastName); Writeln(Employee.FirstName); Writeln(Employee. EmployeeNumber);
Writeln (Employee.HomeAddress.Street); Writeln (Employee.HomeAddress.City); Writeln (Employee.HomeAddress.State); Writeln (Employee.HomeAddress.ZipCode);
Writeln (Employee.WorkAddress.Street); Writeln (Employee.WorkAddress.City); Writeln (Employee.WorkAddress.State); Writeln (Employee.WorkAddress.ZipCode);
Readln; {fanjara rom darCes gaxsnili, sanam ar davaWerT
Enter Rilaks}
end. {MyRecord2Demo}
Canaweri PersonType Secavs or cvlads: es aris
HomeAddress da WorkAddress, orive isini AAddressTypetipisani arian. cvladze mimarTvisaTvis saWiroa mieTiTos:
cvladis saxeli (Employee), wertili, velis saxeli
(HomeAddress), wertili, da radganac HomeAddress arisaseve Canaweri, mieTiTeba misi veli Street. gamotanisdrosac mi eTiTeb a a n alogiuri mi mde vrobiT :
Employee.HomeAddress.StreetimisaTvis, rom es Canaweri iyos ufro kompaqturi, gamoiyeneba
With operatori. aRniSnuli operatoris gamoyenebiT
programa miiRebs Semdeg saxes:
62
Program MyRecord3demo ;uses Forms;type AddressType=record Street : String [50]; City : String [20]; State : string [2]; ZipCode : String [10]end; {addressType}
PersonType = record LastName : String[20]; FirstName : String [10]; EmployeeNumber : Integer; HomeAddress : AddressType; WorkAddress : AddressType;end; {PersonType}
var Employee : PersonType;begin With Employee do begin {With operatoris dasawyisi} LastName := ‘Osier’; FirstName := ‘don’; EmployeeNumber := 16253; end; {With Employee-s dasasruli}
With Employee.HomeAddress do begin {with operatoris dasawyisi} Street := ‘1313 Your St.’; City := ‘MyTown’;
63
State := ‘Ca’; ZipCode := ‘95630-0011’; end; {with Emloyee.HomeAddress dasasruli}
With Employee.WorkAddress do begin { with dasawyisi} Street := ’14 Big Business Road.’; City := ‘NoOzone’; State := ‘CA’; ZipCode := ‘95636-2211’; end; {with Employee.WorkAddress dasasruli}
With Employee do begin {with dasawyisi} Writeln(LastName); Writeln(FirstName); Writeln(EmployeeNumber);end; {with Employee dasasruli}
With Employee.HomeAddress do begin {with dasawyisi}
Writeln (Street); Writeln (City); Writeln (State); Writeln (ZipCode);end; {with Employee.HomeAddress dasasruli}
With Employee.WorkAddress do begin {with dasawyisi} Writeln (Street); Writeln (City); Writeln (State);
64
Writeln (ZipCode);end; {with Employee.WorkAddress dasasruli}
Readln; {fanjara rom darCes gaxsnili, sanam ar davaWerT
Enter Rilaks}
end. {MyRecord3Demo}
ti pizebuli mudmiva.
tipizebuli mudmiva umjobesia warmovadginoT, rogorc
cvladi mocemuli sawyisi mniSvnelobiT. SegviZlia
ganvsazRvroT tipizebuli mudmiva da mivceT mas mniSvneloba
erT operatorSi. magaliTad:
ConstMax : Integer=88;Name : String[10]=’Dan’;Digit : Set of ‘0’..’9’;
ganvixiloT programa, romelSic gamoyenebulia tipizebuli
mudmiva:
Program TypedConstantDemo;uses Forms;
const MyName : String = ‘Dan Osier’;begin Writeln(‘Cemi saxelia’, MyName); MyName := ‘Jim Fisher’; Writeln(‘Cemi axali saxelia’, MyName);Readln;end.
65
es programa iwyeba MyName tipizebuli mudmivas
gamocxadebiT, romelic String tipisaa da misi sawyisimniSvnelobaa ‘Dan Osier’. dasawyisSi daibeWdeba MyName-is mniSvneloba, imis dasadastureblad, rom tipizebuli
mudmivasaTvis SesaZlebelia sawyisi mniSvnelobis miniWeba.
Semdgom MyName – mniSvneloba icvleba ‘Jim Fisher’ – zeda is ibeWdeba. es niSnavs, rom tipizebuli mudmivas
mniSvneloba SeiZleba ASeicvalos programis Sesrulebis
procesSi.
CamoTvliTi ti pi.
CamoTvliTi tipi gamoiyeneba programis kodebis
wakiTxvis gasaumjobeseblad. davuSvaT, vwerT SuqniSnis
marTvis programas da gvinda aRvweroT wiTeli, yviTeli
da mwvane feri. TiToeul fers SegviZlia mivaniWoT Tavisi
nomeri. davuSvaT: 1 – wiTeli; 2 – yviTeli; 3 – mwvane.
viciT, rom 3 aRniSnavs mwvanes, magram sxvisTvis es iqneba
gaugebari. gamosavali aris CamoTvliTi tipis gamoyeneba.
CamoTvliTi ti pis elementebis raodenoba ar unda
aRematebodes 255-s.
ganvixiloT programa CamoTvliTi tipis gamoyenebiT.
Program MyEnumeratedDemo ;
uses forms ;
typeStopLightColors = (Red, Yellow, Green) ;
varMyLight : StopLightColors;
66
begin
MyLight := Red; Writeln(‘Cemi mimdinare feria-’, Integer(MyLight)); MyLight := Green; Writeln(‘axali feria’, Integer(MyLight));Readln;end.
ganxilul programaSi gvaqvs CamoTvliTi ti pi
StopLightColors , romelsac aqvs sami mniSvneloba: Red,Yellow, Green.
variantis ti pi.
variantis tips 16 baitiani struqtura aqvs , romelic
inaxavs ara marto mniSvnelobas, aramed misi tipis Sesaxeb
informaciasac.
ganvixiloT programa variantis tipis gamoyenebiT:
Program MyVariantDemo ;
uses Forms ;
var MyInput : Variant ;
begin MyInput := 3.5555; Writeln (MyInput);
MyInput := ‘ gamarjobaT, me mqvia Dan’;
67
Writeln (MyInput);
MyInput := 4; Writeln (MyInput); Readln;end.
am martiv programaSi gamoyenebulia MyInput cvladi,
romelic variantis ti pisaa. Tavidan mas vaniWebT
3.5555(namdvili tipi) ricxviT mniSvnelobas. romelic
gamogvaqvs ekranze. Semdeg MyInput cvladSi ganTavsdeba
striqoni: ‘gamarjobaT, me mqvia Dan’. es Semadgenloba kvlav
gamova ekranze. es miuTiTebs, rom MyInput – ma SeiZleba
Seinaxos striqonic. bolos MyInput cvlads eniWeba
mniSvneloba 4(mTeli ricxvi), es Semadgenlobac gamodis
ekranze.
variantis tipis fasi mis moqnilobaSia. masSi SeiZleba
moTavsdes TiTqmis yvela tipi. Tumca obieqturi paskali
mkacrad ti pizebuli enaa, magram variantis ti pi
gamonaklisis saSualebas iZleva.
ganStoeba
Object Pascal-is erT-erTi Tviseba aris programisganStoeba. es aris saWiroebis SemTxvevaSi programis sxva
nawilze gadasvlis SesaZlebloba. es SeiZleba
ganxorcieldes sxvadasxva gziT :
� Goto� Break� Continue� Exit
68
� Halt� RunError
Goto
es operatori saSualebas iZleva gadavideT programis
nebismier striqonze.
ganvixiloT magaliTi :
Program GotoDemo ;Uses Forms ;var Ansver : String ; Label ThePlace ;begin ThePlace : Writeln (‘ gamarjobaT !’) ; Writeln (‘gnebavT gavimeoroT kidev ?’) ; Readln (Answer) ; if (Answer = ‘y’) or (Ansver = ‘Y’) Then Goto ThePlace ;Writeln (‘programis dasrulebisaTvis daaWireT enter-s”) ;Readln ;end.
programa acxadebs Wdes ThePlace saxeliT. Wde
gamocxaddeba sxva monacemebis aRweris Semdeg (rogoricaa
Var, Type da a.S.)Sesruldeba “gamarjobaT~ sityvis gamotana, Semdeg gamodis
SekiTxva “gindaT Tu ara gaimeoroT ?~, Tu pasuxi aris
“y~(yes) an “Y~ , maSin Sesruldeba ThePlace operatori.winaaRmdeg SemTxvevaSi Sesruldeba bolo operatorebi
Writeln da Readln. Goto operators Zalian iSviaTad iyeneben,
69
radgan arsebobs sxva xerxebi am operatoris Sesacvlelad.
Break.
davuSvaT moqmedeba xdeba ciklis operatorSi da
Seiqmna ciklidan gamosvlis aucilebloba. amis
SesaZleblobas iZleva Break operatori.
Program BreakDemo ;
uses Forms ;
var I : Char ;begin I : =‘ ‘ ; While TRUE Do Write ( ‘muSaobis damTavrebisaTvis SeitaneT q an Q’) ; Readln (I) ; If (I=’q’) or (I=’Q’) Then Break ;end ;{ Break brZanebis Sesrulebas gadmovyavarT aq}
Writeln (‘daaWireT enter-s programis dasrulebisaTvis’) ;
Readln ; {enter-is daWeramde rom fanjara Ria iyos} ;end. {BreakDemo}
pirobis Tanaxmad cikli usasrulod unda gagrZeldes,
radgan Sesamowmebeli piroba yovelTvis WeSmaritia.
aqedan gamosavali aris Break operatori. pirobis
operatori amowmebs daWerili iyo Tu ara “q~ an “Q~,
70
Tu iyo daWerili, maSin sruldeba Break
Continue
SeiZleba programaSi gvqondes situacia, rodesac
gvinda garkveul adgilas Sewydes moqmedeba da gadavides
programis sxva adgilas. am dros gamoiyeneba Continueoperatori.
ProgramContinueDemo ;uses Forms ;var I : Char ; Count : Integer ;begin I :=’ ‘ ; For Count :=1 to 100 Do begin Write (‘Seitane simbolo :’) ;
Readln (I) ; Writeln (‘damTvleli Count tolia : ‘, Count) ; If (I=’q’) or (I=’Q’) Then Continue ; Writeln (‘es Sesruldeba mxolod maSin Tu
SevitaneT ‘q’ an ‘Q’) ;end ;Writeln (‘da aWireT enter-s program is
dasrulebisaTvis’) ;
Readln ;end.
es programa cikls Seasrulbs 10-jer. ciklis SigniT
Cven gvaqvs moTxovna simbolos Setanaze da Setanili
71
simbolo moTavsdeba I cvladSi. Tu davaWerT “q~ an“Q~ Rilaks, amuSavdeba Continue operatori da daabrunebsmarTvas For ciklze, romelic For ciklSi Count cvlads
daumatebs erT erTeuls da gaagrZelebs Semdeg iteracias.
ExitExit operatori gamoiyeneba programis mimdinare
blokidan gamosasvlelad. Tu es bloki aris ZiriTadi
programa, maSin Exit operatori wyvets mis muSaobas, Tumimdinare blokia CarTuli, maSin Exit operatori gadascemsmarTvas gare blokis operators, romelic im operatoris
momdevnoa, romelzc iyo gadacemuli marTva am CarTul
blokSi. Tu mimdinare bloki procedura an funqciaa, maSin
gamoZaxebuli blokis Sesruleba Sewydeba da marTva
gadaecema misi gamoZaxebis operatoris momdevno operators
Program Exitdemo; uses Forms ;var I : Char ;begin Repeat Write (‘Seitan eT si m bolo Q muSaobisdamTavrebisaTvis) ;
Readln (I) If I=’Q’ then Exit ;Until FALSE ;Writeln (‘es operatori arasodes ar sruldeba’) ;
end.
es programa qmnis usasrulo cikls, romelic mTavrdeba
72
Until False operatoriT. ciklis damTavrebisaTvis unda
SevitanoT “Q~ simbolo, am SemTxvevaSi amoqmeddeba Exitoperatori.
Halt
Halt operatori programis Sesrulebis Sewyvetis
saSualebas iZleva. es operatori SeiZleba gamoviyenoT
Zalian aucileblobis SemTxvevaSi.
Program HaltDemo ;uses Forms ;var I : Char ;begin Repeat Write (‘dasrulebisaTvis daaWireT Q – s’) ; Readln (I) ; If I=’Q’ then Halt ;Until FALSE ;Writeln (‘es operatori arasodes ar Sesruldeba’) ;
end.
RunError
programis nebismier adgilas Cven SegviZlia
SevasruloT brZaneba RunError, mTeli tipis parametriT.
es Sewyvets programis muSaobas da gamoitans ricxvs
rogorc Secdomis nomers, romelic iwvevs Sewyvetas.
73
Program RunErrorDemo ;uses Forms ;var I : Char ;begin repeat Write ( ‘dasrulebisaTvis SeitaneT Q simbolo’) ;
Readln (I) ; If I=’Q’ then RunError (2400 ;Until False ;Writeln (‘es operatori arasodes ar Sesruldeba’) ;
end.
roca momxmarebeli Seitans Q simbolos, programa
gamoscems 240-e nomer Secdomas.
failis ti pi
ganxiluli monacemebis tipebisaTvis damaxasiaTebelia,
is rom maTTvis garkveulia komponentTa raodenoba. es
saSualebas iZleva, jer kidev programis Sesrulebamde,
aRweris mixedviT gamoiyos manqanis mier mexsierebis saWiro
moculoba monacemebis mniSvnelobis Sesanaxad. magram
arsebobs amocanebis garkveuli klasi da garkveuli situacia,
rodesac komponentebis raodenoba winaswar SeuZlebelia
ganisazRvros, gairkveva mxolod amocanis amoxsnis procesSi
anu programis Sesrulebisas, amisaTvis SemoRebul iqna
specialuri tipi, romelic warmoadgens erTi da imave
ti pis elementebis nebismier mimdevreobas, Tanac am
mimdevrobis sigrZe winaswar ganusazRvrelia da igi
74
konkretdeba mxolod programis Sesrulebis procesSi. es
tipi aris – failis tipi. pirobiTad faili SeiZleba
warmovidginoT rogorc lenta, romelsac aqvs dasawyisi,
xolo dasasruli ar aris dafiqsirebuli. failis elementebi
am lentze Caiwereba mimdevrobiT, erTmaneTis gverdiT.
F {F1, F2, F3 ………………..}
sadac F failis saxelia, F1, F2, F3 - misielementebi. faili gvagonebs magnitur lentas, romlis
dasawyisi Sevsebulia melodiis CanawerebiT, xolo bolo
jerjerobiT Tavisufalia. imis analogiurad, rom axali
melodiis Canawerebi SeiZleba moTavsdes magnitofonis
lentis boloSi, aseve failis axali elementebi SeiZleba
Caiweros mxolod mis boloSi.
failuri cvladi paskalSi, es aris failuri tipis
nebismieri cvladi. paskalSi aris failebis sami klasi:
teqsturi, tipizebuli da aratipizebuli faili, amitomac
faili, moicema (aRiwereba) Semdegi sami saxiT:
Type <saxeli> = FILE OF <tipi>; (1) <saxeli> = TEXT; (2) <saxeli> = FILE; (3)
<saxeli> - fai.lis saxelia;
FILE, OF, TEXT – koduri sityvebia (faili, dan, teqsti).
<tipi> - nebismieri tipia failis tipis garda.
(1)- saxiT aRwerilia tipizebuli faili;
(2)- teqsturi;
(3)-aratipizebuli faili;
nebismieri faili warmoadgens elementebis wrfiv
mimdevrobas, TiToeuls aqvs Tavisi tipi, failis TiToeul
elements Tavisi nomeri. pirveli elementi iTvleba nulovan
75
elementad.
rogorc vxedavT, faili informaciis erTobliobaa,
romelic SeiZleba damaxsovrebul da aRdgenil iqnes
diskidan. failebSi SeiZleba Seinaxos programis teqsti,
dokumenti, Sesasruleblad momzadebuli programebi da
a.S.
TiToeul fails aqvs saxeli, romelic Sesdgeba ori
nawilisagan: saxeli da gafarToeba. saxeli Sedgeba 1-dan
8-simbolosagan, gafarToeba iwyeba wertilidan da Sedgeba
1 - dan 3 – simbolosagan. magaliTad:
command.compaper.chiautoexec.bat
Tumca gafarToeba araaucilebelia, magram igi aRwers
failis Sinaarss, amitom misi gamoyeneba sakmaod
moxerxebulia, bevri programa TviTon adgens failis
gafarToebas.
Cveulebriv, failebze mimarTva xorcieldeba
mimdevrobiT, anu roca elementi waikiTxeba an Caiwereba
failis mimdinare pozicia gadaadgildeba failis rigiT
momdevno elementisaken. Tumca ti pizebuli da
aratipizebuli failebisaTvis SeiZleba organizebul iqnas
pirdapiri mimarTva.
procedurebi da funqciebi failebTan
muSaobisaTvis
failuri cvladi, gamoyenebamde unda daukavSirdes gare
fails AASSIGNN proceduris gamoZaxebiT. gare failad
iTvleba diskze dasaxelebuli faili, magram igi SeiZleba
warmoadgendes mowyobilobasac, magaliTad: klaviaturas,
displeis, printers. gare failSi inaxeba failSi Cawerili
76
informacia anu isini warmoadgenen failidan wakiTxuli
informaciis wyaroebs.
roca kavSiri gare failTan damyarebulia, Setana-
gamotanis operaciebisaTvis mis mosamzadeblad failuri
cvladi unda gaixsnas. arsebuli faili SeiZleba gaixsnas
RESET proceduris meSveobiT, xolo axali faili SeiZleba
Seiqmnas da gaixsnas REWRITE proceduris meSveobiT.teqsturi failebi, romlebic gaxsnili arian RESETproceduriT, misawvdomia mxolod wasakiTxad, xolo
teqsturi failebi, romlebic gaxsnilni arian REWRITEproceduriT, misawvdomia mxolod Casawerad, tipizirebuli
da ara tipizirebuli failebisaTvis dasaSvebia rogorc
wakiTxva, aseve Cawera miuxedavad imisa, isini gaxsnili
arian RESET Tu REWRITE procedurebiT. rogorc adre avRniSneT, failze mimarTva xorcieldeba
mimdevrobiT, anu roca elementi waikiTxeba stanadartuli
procedura READ - iT an Caiwereba standartuli
procedura WRITE - iT, failis mimdinare pozicia
gadaadgildeba failis Semdeg elementze. Tumca tipizebul
da aratipizebul failebze SeiZleba organizebuli iqnas
pirdapiri mimarTva SEEK standartuli proceduris
meSveobiT, romelic failis mimdinare pozicias
gadaaadgilebs mocemul elementze.
failSi mimdinare poziciisa da mimdinare zomis
gansazRvrisaTvis SeiZleba gamoyenebul iqnas standartuli
funqciebi: FILEPOS da FILESIZE. rodesac programa daasrulebs failis damuSavebas, is
unda daixuros CLOSE standartuli proceduriT . failis
sruli daxurvis Semdeg failuri cvladi SeiZleba
daukavSirdes sxva gare fails.
moviyvanoT im procedurebisa da funqciebis sruli sia,
romlebic gamoiyeneba yvela failisaTvis:
77
procedura Assign - failuri cvlads acnobebs gare
failis saxels;
procedura ChDir - cvlis mimdinare katalogs
procedura Close - daxuravs gaxsnil fails;
funqcia Eof (End_of_File) - fails aZlevs dasrulebul
mdgomareobas;
procedura Erase - Slis gare fails;
procedura GetDir - gvaZlevs mimdinare katalogs mocemul
diskze;
procedura MkDir - qmnis qvekatalogs;
procedura Rename - gare failis saxelis gadarqmeva;
procedura Reset - xnis arsebul fails;
procedura Rewrite - qmnis da xsnis axal fails;
procedura RmDir - Slis cariel qvekatalogs.
78
teqsturi faili
procedurebi da funqciebi teqsturi failebis
damuSavebisaTvis
avRniSnoT rom turbo paskalSi teqsturi tipis faili
(Text) gansxvavdeba simboluri tipis failisagan.
teqsturi failis gaxsnisas gare faili
interpretirdeba gansakuTrebuli saxiT; iTvleba, rom is
warmoadgens simboloebis mimdevrobas, romlebic
dajgufebulia striqonebSi, sadac TiToeuli striqoni
mTavrdeba striqonis dasasrulis simboloTi (End_of_Line),igi warmoadgens axal striqonze gadasvlis simbolos.
teqsturi failisaTvis arsebobs wakiTxvisa da
Caweris (Read da Write) operaciis specialuri saxe
romelic saSualebas iZleva waikiTxos da Caiweros
mniSvnelobebi, romelTa tipi gansxvavebulia simboluri
tipisagan. aseTi mniSvneloba avtomaturad gadaiyvaneba
simbolur warmodgenaSi da piriqiT.
mag: Read (f , i), sadac i aris mTeli tipis cvladi,
kiTxulobs cifrebis mimdevrobas, akeTebs am mimdevrobis
aTobiT ricxvebad interpretirebas da inaxavs f -Si. rogorc adre aRvniSneT aris teqsturi tipis ori
standartuli cvladi: INPUT da OUTPUT. INPUTmisawvdomia mxolod failis wasakiTxad. igi dakavSirebulia
operaciuli sistemis Setanis standartul failTan (es
klaviaturaa.). xolo standartuli failuri cvladi
OUTPUT misawvdomia mxolod Casaweri failisaTvis, igi
dakavSirebulia operaciuli sistemis gamotanis standartul
failTan (es aris displei.). programis Sesrulebis win
faili INPUT da OUTPUT avtomaturad ixsneba, iseTiTqos yofiliyos Sesrulebuli Semdegi operatorebi:
79
Assign ( Input, “); Reset ( Input ); Assign (Output,”) ; Rewrite ( Output ); analogiurad, programis muSaobis dasrulebisas es
failebi avtomaturad ixureba.
sia, romelic moyvanilia mocemul nawilSi, zogierTi
standartuli procedurebisaTvis ar moiTxovs parametris
saxiT failuri cvladis cxadad Cvenebas. Tu es parametri
gamotovebulia, maSin igulisxmeba Input an Output, imismixedviT procedura an funqcia orientirebulia Setanaze
Tu gamotanaze.
mag: Read(X) Seesabameba Read ( Input, X) Write(X) Seesabameba Write(Output, X) Tu qvemoT moyvanili romelime proceduris an funqciis
gamoZaxebisas iZleviT fails, maSin es faili unda
daukavSirdes gare fails Assign proceduris meSveobiTda gaixsnas Reset, Rewrite an Append procedurebiT. Tu gamotanaze orientirebuli proceduris an
funqciisaTvis uCvenebT fails, romelic gaxsnili iyo ResetproceduriT, gamova Setyobineba Secdomaze. analogiuri
Secdoma iqneba, Setanaze orientirebuli proceduris an
funqciisaTvis davasaxeloT faili, romelic gaxsnilia
Rewrite an Append procedurebiT. procedura Append - xsnis arsebul fails dasamateblad;
procedura Eoln - fails aZlevs striqonis dasasrulis
mdgomareobas (End_of_Line); procedura Fluch - asufTavebs gamomavali failis
bufers;
procedura Read - teqsturi failidan waikiTxavs erT
an met mniSvnelobas da mianiWebs erT an met cvlads;
procedura Readln - asrulebs igive moqmedebas, rasac
Read, Semdeg akeTebs gamotovebas failis Semdegi striqonis
dawyebamde.
funqcia SeekEof - fails aZlevs failis dasasrulis
80
funqcia SeekEoln - fails aZlevs striqonis dasasrulis
mdgomareobas;
procedura SetTextBuf - teqsturi failisaTvis niSnavs
Setana gamotanis bufers;
procedura Write - teqstur failSi Cawers erT an met
mniSvnelobas;
procedura Writeln - asrulebs igive funqcias, rasac
Write, Semdeg fails amatebs striqonis dasasrulis niSans
(end_of_line).
programaSi Seqmnilia ori faili F1 da F2, aqedanerTSi Setanilia ricxvebi 2-dan 5-mde, meoreSi ki
Sesabamisad maTi faqtorialebi, programa kiTxulobs
monacemebs failebidan da gamoaqvs ekranze:
Program FileDemo;
var X, Y : Integer; F1, F2 : File Of Integer;
begin Assign(F1, ‘Cifr’); Assign (F2, ‘Fact’); Rewrite (F1); Rewrite (F2); X := 1; Y := 1;Repeat X := X + 1; Y := Y * X; Write (F1, X); Write (F2, Y);
81
Until X > 5;
Close(F1); Close(F2);
Reset (F1); Reset (F2);Repeat Read (F1, X); Read (F2, Y); Writeln(‘ricxvi=’, X, ‘ ‘, ‘faqtoriali=’, Y);Until Eof (F1);Close (F1); Close (F2);Readln;end.
programa teqstur failSi iTvlis simboloebis
raodenobas:
Program TextFileDemo;Var F : Text; S : String; sum : Longint;begin Writeln(‘Seitane failis saxeli’);
Readln (S); Assign (F, S); Reset (F); sum := 0;Repeat Readln (F, S); sum := sum + Length (S);Until Eof (F);Close (F);Writeln (‘sum=’, sum);Readln; end.
82
mdgomareobas (End_of_File);
tipizebuli da aratipizebuli failebi.
procedurebi da funqciebi ti pizebuli da
arati pizebuli failebis damuSavebisaTvis.
aratipizebuli failebi warmoadgenen dabali donis
Setana - gamotanis arxebs, romlebic ZiriTadad gamoiyeneba
diskze arsebul nebismier failze pirdapiri mimarTvisaTvis.
(failis tipisa da stuqturis miuxedavad). nebismieri
aratipizebuli faili aRiwereba sityviT File, atributebisgareSe.
mag., var datefile : file;arati pizebuli failebisaTvis Reset da RewriteprocedurebSi dasaSvebia damatebiTi parametris Cveneba, es
SeiZleba iyos Canaweris sigrZe. Tu igi ar aris naCvenebi
igulisxmeba 128 baiti.
Canaweris misaRebi (mizanSewonili) sigrZea 1,
ramdenadac es erTaderTi mniSvnelobaa, romelic saSualebas
iZleva zustad gamovsaxoT nebismieri failis zoma. (roca
Canaweris sigrZea 1, maSin failebi ver iqneba arasruli
Canawerebi anu Canaweri naklebi sigrZiT).
aratipizebuli failebisaTvis dasaSvebia gamoyenebul
iqnes nebismieri standartuli procedura, romelic
gamoiyeneba tipizebul failebSi, garda Read da Writeprocedurebisa. amaT nacvlad aq gamoiyeneba Sesabamisad
procedurebi:
BlockRead da Blockwrite, romelic monacemebis maRali
siswrafiT gadacemis saSualebas iZleva;
procedura BlockRead - failidan kiTxulobs erT an
met Canawers;
procedura BlockWrite - cvladidan failSi Cawers
83
erT an met Canawers;
teqsturi failis garda, nebismieri tipis failuri
cvladisaTvis dasaSvebia Semdegi procedurebisa da
fuqciebis gamoyeneba:
FilePos - gvaZlevs failis mimdinare pozicias;
FileSize - gvaZlevs failis mimdinare zomas;
Seek - iZlva failze pirdapiri mimarTvis saSualebas;
Truncate - CamoaWris fails mocemul poziciamde.
procedurebi.
ganvixiloT Wadrakis dafis gamosaxulebis beWdvis programa.
Program ChekerPrint ;uses Forms ;begin Writeln (‘ | | ‘) ; Writeln (‘ ——`) ; Writeln (‘ | | ‘) ; Writeln (‘——`) ; Writeln (‘ | | ‘) ; Writeln (’daaWireT enter – s programis dasrulebisaTvis’);
Readln; end.rogorc vxedav erTi da igive brZanebis ganmeoreba gviwevs
ramodenimejer. vnaxoT am dros ra rols iTamaSebs
procedura.
Program checkerPrint ;uses Forms ;{yvela gamocxadeba const, var, type ganTavsdeba aq} Procedure DoVerticals ; begin
84
Writeln (‘ | | | | |‘) ; end ; Procedure DoHorizontals;begin Writeln (‘————‘) ; end ;
begin DoVerticals ; DoHorizontals ; DoVerticals ; DoHorizontals ; Writeln (‘daaWireT enter – s programis dasrulebisaTvis’) ;
readln ; {enter – is daWeramde Ria rom iyos fanjara} ;end.
programaSi Seqmnilia ori procedura, erTi
horizontaluri xazebis dasabeWdad, meore ki –
vertikaluri xazebis dasabeWdad.
proceduris Sesaqmnelad unda davweroT proceduris
saTauri, romelic Sedgeba Procedure sityvisagan da misiunikaluri saxelisagan, Cvens SemTxvevaSi es aris DoVerticals,DoHorizontals. procedura aris miniprograma da igiveformati aqvs, rac Cveulebriv programas. saTauris Semdeg
SeiZleba gvqondes const, var da a.S. amis Semdeg modisSesasrulebeli nawili begin…end. proceduris gamoZaxebaxdeba ZiriTadi programidan misi unikaluri saxelis
mixedviT. roca proceduris Sesruleba damTavrdeba, marTva
gadaecema proceduris gamoZaxebis Semdgom proceduras.
imisaTvis rom procedura iyos ufro moqnili,
proceduras unda gadaeces damatebiTi monacemebi. es
xorcieldeba proceduraze parametrebis gadacemiT.
85
DoHorizontals procedura For…Do ciklis
gamoyenebiT :
Procedure DoHorizontals (HowManyTimes : Integer) ;var Count : Integer ;begin for Count := 1 to HowManyTimes do Writeln (‘—————‘) ;Writeln(‘ programis dasrulebisaTvis daaWireT enter
Rilaks‘);Readln; end .es procedura Seicavs HowManyTimes cvlads. kods
(HowManyTimes : Integer) hqvia formaluri parametrebis
sia. es aris monacemTa sia, romelic gadaecema proceduras
yoveli gamoZaxebisas, tipis CvenebiT. Cvens SemTxvevaSi
cvladi Integer-is tipisaa, romelic gansazRvravs Tu
ramdenjer unda Sesruldes Writeln operatori. DoHorizontalsproceduras aqvs mTeli tipis cvladi – HowManyTimes,romelic gamoiyeneba proceduris SigniT. mocemul
SemTxvevaSi proceduras DoHorizontals ver gamoviZaxebTmxolod saxeliT, aqve unda vaCvenoT faqtiuri parametrebi.
formaluri da faqtiuri parametrebi erTnairi tipis
unda iyos.
Program ParamDemo ;uses Forms ;var Number : Integer ;Procedure DoHorizontals (HowManyTimes : Integer) ;var Count : Integer ;begin
86
for Count := 1 to HowManyTimes do Writeln(‘————‘) ;end ; {DoHorizontals proceduris dasasruli} ;
begin Writeln (‘ramdeni horizontaluri xazis dabeWdva
gnebavT?’) ;
Readln (Number) ;DoHorizontals (Number) ;Writeln (‘ da aWireT enter-s program is
dasrulebisaTvis’) ;
Readln ;end.
rodesac es programa DoHorizontals iZaxebs,proceduras gadaecema Number cvladi. es cvladi faqtiuri
parametria. Number-is Semcveloba gadakopirdeba
DoHorizontals proceduraSi da moTavsdeba HowManyTimescvladSi. rodesac procedura daamTavrebs muSaobas,
HowManyTimes cvladSi monacemebi qreba, vinaidan es
lokaluri cvladebi nadgurdebian proceduridan
gamosvlisas.
Tu proceduraSi gamoyenebulia ramdenime parametri,
mniSvnelovania maTi mimdevrobis dacva.
ganvixiloT programa proceduraze ramdenime
parametris gadacemiT :
Program JunkDemo ;uses Forms ;var UsesNumber : Integer ; UsersString : String ;Procedure Junk (Number : Integer ; Stuff : String) ;begin
87
Writeln (‘Number-is raodenoba udris’ , Number) ; Writeln(‘String striqoni udris’, Stuff) ;end ; {Procedure Junk} ;
begin Write (‘SeitaneT Tqveni striqoni’) ; Readln (UsersString); Write (‘SeitaneT ricxvi’) ; Readln (UsersNumber) ; Junk (UsersNumber, UsersString) ;Writeln ;Readln ;end.
es programa Junk proceduras gadascems or
arguments mimdevrobis dacviT. SeiZleba gadavceT ara
marto cvladi, aramed simboluri mudmivac. magaliTad
gamoZaxebas SeiZleba hqondes saxe : Junk (3,’Hello World‘).
funqciebi
funqcia proceduris msgavsia im TvalsazrisiT, rom
masSic saWiroa parametrebis gadacema. gansxvaveba imaSia,
rom funqcia abrunebs mxolod erT mniSvnelobas. funqcia
abrunebs am mniSvnelobas TviTon funqciis saxeliT.
ganvixiloT kvadratSi ayvanis funqciis magaliTi,
sadac Cans rogor xdeba funqciis gamoZaxeba
Program FunctionDemo ;uses Forms ;var
88
UserInput : Integer ;begin Write(‘SeitaneT ricxvi, romlis kvadratSi ayvana
gsurT’) ;
Readln (UserInput) ; Writeln (UserInput, ‘ kvadratSi tolia’, Sqr
(UserInput)) ; Writeln (‘daaWireT enter-s program is
dasrulebisaTvis’) ;
Readln ;end.
es programa Sqr-s iyenebs da gamoTvlis Sedegi
pirdapir Caiwereba beWdvis operatoris striqonSi.
procedura ase ver moiqceoda Semdegi ori mizezis gamo.
jer erTi ara gvaqvs cvladi proceduris Sedegis
SenaxvisaTvis, meore ver gamoviZaxebT proceduras sxva
proceduris gamoZaxebis operatoridan.
ganvixiloT funqciis sademonstracio magaliTi :
Program FunctionDemo ;uses Forms ; Function Square (TheInput : Integer) : Integer ; begin Square := TheInput * TheInput ; end ;var UserInput : Integer ;begin Write (‘ SeitaneT ricxvi, romlis kvadratSi ayvana
89
gsurT’) ;
Readln (UserInput) ; Writeln (UserInput, ‘ kvadratSi tolia’, Square
(UserInput)) ;end.
ganxilul magaliTSi funqcia asrulebs kvadratSi
axarisxebis operacias. funqcias hqvia Square , romelic
mTeli tipisaa. tipis Cveneba aucilebelia, radganac
funqcias eniWeba gamoTvlis mniSvneloba. funqcia
Seufasebeli instrumentia maTematikuri gamoTvlebis
Casatareblad, grafikis SesrulebisaTvis da a.S.
qveprogramebi . standartuli qveprogramebi
standartuli qveprograma miekuTvneba im
qveprogramebs, romlebic misawvdomia maTi aSkara aRweris
gareSe. MmaT miekuTvneba qveprogramebi, romlebic asruleben
operaciebs striqonul sidideebze, Ooperatiuli
mexsierebis dinamiuri marTvis qveprogramebi da
qveprogramebi, romlebic axorcieleben Setana-gamotanis
operaciebs.
aseT qveprogramebs miekuTvneba ekranuli da
specialuri qveprogramebi, ariTmetikuli da skalaruli
funqciebi, asaxvis funqciebi da damatebiTi funqciebis
sakmaod didi jgufi.
Pprocedura DDelay sintaqsi: Delay (Time)
Time –mTeli tipis gamosaxulebaa.
Pprocedura Delay Sewyvets programis Sesrulebas
90
Time miliwamis ganmavlobaSi. Tu Time-s aqvs uaryofiTimniSvneloba, iTvleba, rom mas aqvs mniSvneloba_0.
Pprocedura: Randomize sintaqsi: Randomize
procedura Randomize uparametroa. Ees
procedura SemTxveviTi ricxvebis generatorSi daayenebs
SemTxveviT dawyebiT mniSvnelobas.
ariTmetikuli funqciebi
Ffunqcia abs sintaqsi: abs(num)
Num - real an integer-is tipis gamosaxulebaa. Ees
funqcia iZleva Num-is absolutur mniSvnelobas. Sedegi
igive tipisaa, rogorc argumenti.
Mmag. abs(-2)=2 abs(pi)=3.144926536
funqcia ArcTansintaqsi: ArcTan(Num)Num - real an integer - is tipisaa. Ffunqcia ArcTan
gvaZlevs kuTxis namdvil mniSvnelobas, romlis tangensi
aris Num.Mmag. ArcTan(0)=0.0 ArcTan(pi)=0.7853981634
F funqcia Cos sintaqsi: Cos( Num)
Num aris real an integer-is tipis gamosaxuleba. Ffunqcia
91
Cos iZleva Num kuTxis kosinusis namdvil mniSvnelobas
Mmag. cos(0)=1.0 cos(pi)=-1.0
funqcia Exp sintaqsi: Exp(Num)Num - real an integer-is tipis gamosaxulebaa. funqcia
Exp gvaZlevs Num- is eqsponentis namdvil mniSvnelobas:
Ffunqcia Frac sintaqsi: Frac(Num)Num aris real an integer-is tipis gamosaxuleba.
Ffunqcia Frac gvaZlevs namdvil ricxvs, romelic warmoadgens
Num-is wilad nawils.
Mmag. Frac(3)=0.0 Frac(Pi)=0.1415926536
Ffunqcia Int sintaqsi: Int(Num) Num - real an integer-is tipis gamosaxulebaa. Ffunqcia
Int gvaZlevs namdvil ricxvs, romelic warmoadgens Num-is
mTel nawils.
Mmag. Int(2)=2.0 Int(Pi)=3.0
Ffunqcia Ln sintaqsi: Ln(Num)Num - real an integer-is tipis gamosaxulebaa. Ffunqcia
Ln gvaZlevs Num-dan naturaluri logariTmis
mniSvnelobas.
Mmag: Ln(1)=0.0 Ln(3)=1.0986122887F
92
funqcia Sin sintaqsi: Sin(Num)Num - real an integer-is tipis gamosaxulebaa. Ffunqcia
Sin gvaZlevs Num argumentidan sinusis mniSvnelobas.
Mmag: Sin(0)=0.0 Sin(Pi/2)=1.0F
funqcia Sqrsintaqsi: Sqr(Num) Num - real an integer-is tipis gamosaxulebaa. Ffunqcia
Sqr gvaZlevs Num-is kvadratSi ayvanis Sedegad miRebulmniSvnelobas.
Mmag: Sqr(2)=4 Sqr(2.0)=4.0F
funqcia Sqrtsintaqsi: Sqrt(Num)Num - real an integer-is tipis gamosaxulebaa. Ffunqcia
Sqrt gvaZlevs Num-dan kvadratuli fesvis mniSvnelobas.
Mmag. Sqrt(4)=2 Sqrt(4.0)=4.0
Ggardaqmnis funqciebi
F
funqcia Oddsintaqsi: Odd(Num)Num mTeli tipis gamosaxulebaa. Ffunqcia Odd
gvaZlevs Boolean tipis mniSvnelobas, Tu Num aris kenti
ricxvi, maSin funqciis mniSvneloba aris True, winaaRmdegSemTxvevaSi false.
Mmag: Odd(3)=true Odd(4)=false
93
Ffunqcia Pred sintaqsi: Pred(Num)Num nebismieri martivi tipis gamosaxulebaa.
Ffunqcia Pred gvaZlevs Num-is wina mniSvnelobas.
Mmag: Pred(‘b’)=’a’ Pred(-20)=-21
funqcia Succsintaqsi : Succ(Num)Num nebismieri martivi tipis gamosaxulebaa.
Ffunqcia Succ gvaZlevs Num-is momdevno mniSvnelobas.
Mmag: Succ(false)=true Succ(0)=1F
funqcia Chrsintaqsi: Chr(Num)Num mTeli tipis gamosaxulebaa. Ffunqcia Chr
gvaZlevs Char tipis gamosaxulebas, romlis kodi mocemulia
Num gamosaxulebiT.
Mmag: Chr(65)=’A’ Chr(27)=^[
funqcia Ordsintaqsi: Ord(Num)Num nebismieri martivi tipis gamosaxulebaa.
Ffunqcia Ord gvaZlevs Num sididis ricxviT mniSvnelobas.
Mmag: Ord(true)=1 Ord(-2)=-2
Ffunqcia Round sintaqsi: Round(Num)Num - real tipis gamosaxulebaa.
Ffunqcia Round amrgvalebs Num-s uaxloes mTel
94
ricxvamde.mag: Round(5.5)=6 Round(-1.5)=-2
funqcia Truncsintaqsi: Trunc(Num)Num - real tipis gamosaxulebaa.
Ffunqcia Trunc gvaZlevs Num sididis mTel nawils,
e.i amrgvalebs Num ricxvs, mTeli nawilis CamoSorebis
xarjze.
Mmag: Trunc(3.14)=3 Trunc(-2.9)=-2
sxva funqciebi
funqcia Includesintaqsi: Include(m, i) - m-s gazrdis i erTeuliT.
mag. Include (m, 2) - eqvivalenturia m := m + 2Canawerisa.
funqcia Excludesaintaqsi: Exclude(m, i) - m-s Seamcirebs i erTeuliT.
M mag. Exclude(m, 2) - eqvivalenturia m := m - 2Canawerisa.
grafikis safuZvlebi
teqsturi da grafikuli reJimebi
monitori SeiZleba muSaobdes 4 teqsturi reJimidan
an 3 grafikuli reJimidan erT_erTSi.
teqstur reJimSi monitoris ekrani dayofilia 25
95
striqonad, TiToeul striqonSi aris 40 an 80 pozicia. am
poziciebze SeiZleba ganaTdes ASCI I kodis simboloebi.
Ggrafikul reJimSi monitoris ekrani dayofilia
wertilebad. ekrani Sesdgeba 200 xazisagan. TiTo
xazSi SeiZleba iyos 320 an 640 wertili.
teqstur da grafikul reJimebSi aris feris Secvlis
saSualeba.
Fferebis konstantebi:
Const
Bleck =0; {Savi}Blue =1; {lurji}
Green =2; {mwvane}Cyan =3; {firuzisferi}Red =4; {wiTeli}
Magenta =5; {Jolosferi}
Brown =6; {yavisferi}LightGray =7; {Ria-nacrisferi}DarkGray =8; {muqi nacrisferi}LightBlue =9; {Ria cisferi}LightGreen =10; {Ria mwvane}LightCyan =11; {Ria firuzisferi}LightRed =12; {Ria wiTeli}
Light Magenta =13; {Ria Jolosferi}
Yellow =14; {yviTeli}
White =15; {TeTri}Blink =128; {cimcimi}Fferebi warmodgenilia maTi nomrebiT 0-dan 15-is
CaTvliT, iolad, rom iyos identirebuli TiToeuli feri,
ferTa nacvlad SeiZleba gamoyenebul iqnas mocemuli
mudmivebi. Fferad teqstur reJimSi TiToeuli simbolos
feri amoirCeva 16 feridan, xolo fonis feri ki 8 feridan,
TiToeuli simbolos feri SeiZleba iyos cimcima.
96
procedurebi da funqciebi teqsturi
reJimisaTvis
teqstur reJimSi gasvlisaTvis saWiroa Sesruldes
procedura: TextModeprocedura TextMode
sintaqsi: TextMode (BW40) TextMode(C40) TextMode(BW80) TextMode(C80) TextModeBW40, C40, BW80 da C80 mTeli tipis konstantebis
saxelebia, romelTa mniSvneloba Sesabamisad udris 0, 1, 2
da 3.
TextMode procedura BW40 param etriT
uzrunvelyofs Sav-TeTri teqsturi reJimis dayenebas,
romlis striqonis sigrZea 40 simbolo.
TextMode procedura C40 parametriT uzrunvelyofs
feradi teqsturi reJimis dayenebas, romlis striqonis
sigrZea 40 simbolo.
TextMode procedura BW80 parametriT
uzrunvelyofs Sav-TeTri teqsturi reJimis dayenebas,
romlis striqonis sigrZea 80 simbolo.
TextMode procedura C80 parametriT uzrunvelyofs
feradi teqsturi reJimis dayenebas, romlis striqonis
sigrZea 80 simbolo.
Pprocedura TextMode , uparametrod, aRadgens bolo
teqstur reJims.
teqsturi reJimis dayenebas mivyavarT ekranis
gasufTavebamde, anu ekranis sicarieliT Sevsebamde. Kkursori
97
gadaadgildeba ekranis zeda marcxena kuTxeSi.
Pprocedura ClrEol - asufTavebs yvela simbolos
dawyebuli kursoris poziciidan striqonis bolomde,
kursoris gadauadgileblad.
Pprocedura ClrScr-asufTavebs ekrans da moaTavsebskursors marcxena zeda kuTxeSi.
Pprocedura DelLine –waSlis striqons, romelzedac
imyofeba kursori da yvela danarCen striqonebs
gadaaadgilebs erTi striqoniT zemoT. Qqveda striqoni
sufTavdeba.
Pprocedura GotoXY asrulebs kursoris
pozicionirebas, X-horizontaluri poziciaa, Y-vertikaluri
poziciaa.
Pprocedura InsLine Casvams cariel striqons
kursoris mdebareobis adgilas.
procedura TextBackground irCevs fonis fers.procedura TextColor irCevs simbolos fers.
funqcia WhereX -kursoris mimdinare poziciisaTvis(romelic ekuTvnis mimdinare fanjaras) iZleva X
koordinatas . X warmoadgens horizontalur
pozicias.Ffunqcia WhereY - kursoris mimdinare
poziciisaTvis (romelic ekuTvnis mimdinare fanjaras),
iZleva Y koordinatas. Y warmoadgens vertikalur
pozicias.Pprocedura Window ekranze gansazRvravs teqstur
fanjaras.
fanjris gansazRvra teqstur reJimSi
moduli crt uzrunvelyofs fanjris gamoyenebis
ubralo, magram sakmaod mZlavr formas. Pprocedura WindowsaSualebas iZleva ganvsazRvroT ekranis romel adgilas
aris fanjara. Aam fanjaraSi Cawera igivea, rogorc mTel
98
ekranze. Ee.i. ekranad igulisxmeba mocemuli fanjara. Aam
dros ekranis sxva danarCeni nawili xeluxlebelia. sxva
sityvebiT rom vTqvaT, ekranis sxva nawilSi mimarTva ar
xdeba. Ffanjris SigniT SeiZleba davamatoT da wavSaloT
striqoni, am dros kursori brundeba marjvena kuTxeSi da
kursoriT bolo striqonamde miRwevisas teqsti
gadaadgildeba zemoT.
Eekranis yvela koordinata, imaT garda, romlebic
gamoiyenebian fanjris gansazRvrisaTvis, miekuTvnebian
mimdinare fanjaras ekranis koordinata (1, 1) Seesabameba
ekranis zeda marcxena kuTxes (dumiliT, fanjrad iTvleba
mTeli ekrani)
procedurebi da funqciebi grafikuli
reJimisaTvis
moduli Graph 50-ze meti grafikuli
programebidan, realizacias ukeTebs mTel biblioTekas,
dawyebuli maRali donis funqciebisa da procedurebis
gamoZaxebiT, rogoricaa mag:
SetViewPort, Bar3D, DrowPoly, damTavrebuli
programebiT, romlebic orientirebulia bitebTan muSaobaze.
Mmag: rogoricaa GGetImage an PutImage. reJims aqvs sxvadasxvaSefardeba, xazis tipebi da sxvadasxva Sriftebi, romlebic
SeiZleba Seicvalos sididiT, orientirebul iqnas
horizontalurad da vertikalurad.
SeTanxmebiT ekranis zeda marcxena kuTxes aqvs
koordinata (0,0) marjvniv gadaadgilebisas X koordinata
imatebs, xolo Y imatebs qvemoT gadaadgilebiT.
moviyvanoT magaliTi, romelic uCvenebs Tu rogor
unda gadavideT grafikuli reJimidan teqsturSi da piriqiT:
99
1. Program GraphTest;2. Uses3. Graph;4. Var5. GraphDriver : Integer;6. GraphMode : Integer;7. ErrorCode : Integer;8. begin9. GraphDriver : = Detect; {grafikuli reJimis
amocnobis droSis dayeneba}
10. InitGraph (GraphDriver, GraphMode, ‘c:\Drivers’); {grafikuli reJimis inicializacia anu
sawyisi pirobebis momzadeba}
11. ErrorCode: = GraphResult; 12. If ErrorCode < > grOK then { Secdomaa} 13. Begin
14. Writeln(‘grafikis Secdomaa:’,GraphErrorMsg(ErrorCode);
15. Writeln (‘programam avariulad daasrula
muSaoba’);
16. Halt (1); {aCerebs programis Sesrulebas da marTvas
gadascems operaciul sistemas}
17. End; 18. OutText (‘grafikuli reJimi. daaWireT <Enter>-s’);
19. Readln; 20. Restore CrtMode;
21. Write (‘teqsturi reJimia. daaWireT <Enter>-s’); 22. Readln;
23. SetGraphMode (GraphMode); {grafikul reJimSi
gadasvla} 24. OutText (‘kvlav grafikuli reJimia. daaWireT
<Enter>-s’); 25. Readln;
100
26. CloseGraph; {grafikuli reJimis daxurva} 27. End. {GraphTest}
aRvniSnoT, rom procedura SetGraphMode-s gamoZaxeba
(23 striqonze), Semoitans yvela grafikul parametrs
(palitras, mimdinare maCvenebels, ZiriTad da fonur ferebs
da a. S.) da maT mianiWebs Sesabamis mniSvnelobebs.
procedura Arc xatavs rkals sawyisi kuTxidan
saboloo kuTxemde; wertili (X,Y) miRebulia rkalis
centrad. Caweris sintaqsi:
Arc (x,y: integer; sawyisi kuTxe, saboloo kuTxe, radiusi:
word);x, y aris centris koordinatebi. sawyis kuTxed miRebulia 0, xolo saboloo kuTxed
_ maqsimum 359.
mag: for i: = 1 to 5 do arc (100, 100, 0, 89, i * 10); xatavs 5 koncentrul rkals.
procedura circle xatavs wres, romlis centria
wertili (x, y) sintaqsi: circle (x, y, rad); x, y centris koordinatebia, Rad ki wris radiusia. mag: Circle (100, 100, 200);
procedura CloseGraph grafikul reJims xuravs.
procedura DetectGrafh amoicnobs aparaturas da gansazRvravsromeli grafikuli draiveri da reJimi unda iqnas
gamoyenebuli.
procedura Ellipse xatavs elifss sawyisi kuTxidansaboloo kuTxemde. (x, y) wertili centris koordinatebia.
101
sintaqsi:
Ellipse (x, y : integer; sawyisi kuTxe, saboloo kuTxe: Word; radiusi X, radiusi Y : word); (x, y) - elifsis centris koordinatebia.
radiusi X da radiusi Y-Hhorizontaluri da vertikaluri
RerZebia.
procedura DrawPoly xatavs mravalkuTxeds, mimdinarexazis tipisa da feris gamoyenebiT.
sintaqsi: DrawPoly (koordinatebis raodenoba: Word; wveroebiskoordinatebi);
koordinatebis raodenoba _ aris mravalkuTxedis
wveroebis raodenoba.
wveros koordinatebi _ aris yvela wveros koordinata,
romlebic ganisazRvrebian X, Y parametrebiT.
procedura FillPoly - aferadebs mravalkuTxeds;
procedura FloodFill - Seaferadebs SezRudul adgilebs,
mimdinare feris gamoyenebiT.
sintaqsi: Floodfile (x, y , sazRvrebi : Word); x, y wertili aris gasaferadebeli ares Sida wertili.
~sazRvrebi~-gansazRvravs fers. Tu x, y aris Caketili
ares SigniT, maSin Seferaddeba Siga are, Tu wertili imyofeba
Caketili ares gareT, maSin Seferaddeba misi gare nawili.
funqcia GetBkGolor - gvaZlevs fonis feris mimdinare
mniSvnelobas.
funqcia GetColor - daabrunebs naxatis mimdinare fers.
funqcia GetGraphMode - abrunebs mimdinare grafikul
102
reJims.
funqcia GetMaxX - mimdinare grafikuli draiverisa
da reJimisaTvis gvaZlevs yvelaze marjvena svets.
funqcia GetPixel - gvaZlevs gamosaxvis elementis
mniSvnelobas (x, y) wertilSi.
sintaqsi: GetPixel (x,y: integer); gvaZlevs x, y wertilSi gamosaxviselementis fers.
funqcia GetX - gvaZlevs mimdinare poziciis Xkoordinatas.
funqcia GetY - gvaZlevs mimdinare poziciis Ykoordinats.
procedura Line - xatavs swor xazs (X1, Y1) wertilidan,(X2, Y2), wertilamde.proceduris Caweris sintaqsi: Line (X1,Y1, X2,Y2 : integer); X1, Y1 - sawyisi wertilis koordinatebia;
X2 , Y2 - saboloo wertilis koordinatebia;
procedura OutText - striqons agzavnis gamotanismowyobilobaze, dawyebuli mimdinare maCveneblidan.
procedura OutTextXY - striqons agzavnis gamotanismowyobilobaze.
procedura PieSlice - xatavs seqtors, (X,Y) aris centri,seqtori ixateba sawyisi kuTxidan saboloo kuTxemde.
103
procedura PutPixel - agebs gamosaxvis elements
(wertils), x, y wertilSi.sintaqsi: PutPixel (X,Y : integer; feri : Word); X, Y - wertils koordinatebia. feri - wertilis feria.
procedura Rectangle - xatavs m arTkuTxeds(sworkuTxeds) mimdinare ferisa da xazis tipis gamoyenebiT.sintaqsi: Rectangle (X1, Y1, X2, Y2 : integer); X1, Y1 - zeda marcxena kuTxis koordinatebia; X2, Y2 - qveda marjvena kuTxis koordinatebia;
procedura RestoreCrtMode - aRadgens ekranis sawyisreJims, romelic dayenebuli iyo grafikis inicializaciamde.
aRadgens sawyis videoreJims, romelic Seiqmna InitGraphproceduriT. es procedura SeiZleba gamoyenebul iqnesprocedura SetGraphMode - sTan erTad teqstur da
grafikul reJimebs Soris gadarTvisas.
procedura SetBkColor - palitris gamoyenebiT
daayenebs mimdinare fonis fers.
sintaqsi: SetBkColor (feri: word); feri amoirCeva 0 - dan 15
diapazonSi.
procedura SetColor - palitris gamoyenebiT daayenebs
naxatis mimdinare fers.
sintaqsi: SetColor (feri: word);
procedura SetGraphMode - sistemas gadarTavs
104
grafikul reJimSi da wmends ekrans.
procedura SetLineStyle - daayenebs xazis mimdinare tipsda mis sisqes.
sintaqsi: SetLineStyle (striqonis tipi: word; nimuSi: word; sisqe:word);
xazis tipebi: Solidln = 0; {uwyveti xazi} Dottedln = 1; {xazi wertilebisgan}
Centerln = 2; {xazi wertilisa da tiresagan}
Dashedln = 3; {punqtiris xazi} VserDilhn = 4; {momxmareblis mier SerCeuli tipi} funqcia TextHeight - gvaZlevs striqonis simaRles.
sintaqsi: TextHeight ( teqsti-striqoni: string) gamoiyenebastriqonebs Soris intervalis gansazRvrisaTvis.
funqcia: TextWidth gvaZlevs striqonis siganes gamosaxvis
elementebSi.
sintaqsi: TextWidth (teqsti-striqoni: string); es sasargebloa
gamoviyenoT striqonebs Soris intervalis gamoTvlisas.
xmovani signali
IBM PC - Si xmebis SezRuduli saSualebebia. isini
Semoifargleba gansazRvruli sixSiris xmebis miRebiT an
xmis gamoTiSviT.
procedura : Sound sintaqsi : Sound (Num)
105
Num - mTeli tipis gamosaxulebaa. Sound proceduriTmiiReba monotonuri xmis signali Num herci sixSiris. procedura: NoSound sintaqsi: NoSound
am proceduriT Sewydeba xma, romelic miRebulia SoundproceduriT.
mag: program Note 400; Begin Sound (400); Delay(2000); NoSound; end.
es programa gamoiZaxebs 400 herci sixSiris xmovansignals, romelic grZeldeba 2 wamis ganmavlobaSi.
procedura Delay (miliwm : word) akeTebs dayovnebas
miliwamis ganmavlobaSi.
106
GotoXY(10, 20);Textcolor (Yellow);Textbackground (red);Writeln (‘Meison’);
Readln;end.
Textcolor (Magenta);Textbackground (Blue);Writeln (‘Justina’);
GotoXY(5, 10);
U
Uses crt;
begin Clrscr;Textcolor (Red);Textbackground (Green);Writeln (‘Izabela’);
programas, turbo paskalis teqsturi reJimis gamoyenebiT,
gamoaqvs teqsti ekranis sxvadasxva adgilas, fonisa da
simboloebis feris SerCeviT.
107
programa teqstur reJimSi xsnis fanjaras:
Uses Crt;
Var K : Integer;
begin Textbackground (Blue); Window (5, 2, 35, 17); Textcolor (Yellow);For K := 1 To 100 Do
Write (‘Press....enter.....’);Readln;Clrscr;
Textbackground (Red);
Textcolor (White); Window (40, 2, 70, 17);For K := 1 To 100 Do Write(‘Press...enter...’);Readln;end.
108
programa agebs naxazs grafikuli reJimis gamoyenebiT:
Program GraphDemo;
Uses Crt, Graph;
Var i, j, k, Graphdriver, GraphMode : Integer; Xa, Ya : Word;
begin Clrscr;GraphDriver := detect;InitGraph (GraphDriver, GraphMode, ‘’);For i := 1 To GetmaxX Do For j := 1 ToGetmaxY Do Putpixel (i, j, 5);Setcolor (4);SetlineStyle (SolidLn, 0, thickwidth);For i := 1 To 200 DoCircle(GetmaxX div 2, GetmaxY div 2, i);Setcolor(10);For i := 1 To 100 DoArc (GetmaxX div 2, GetmaxY div 2, 0, 90, i );Rectangle (220, 230, 350, 360);OuttextXY(465, 40, ‘aspect ratio’);Getaspectratio(Xa, Ya);Setbkcolor (11);Setfillstyle (9, 11);i := 0;j := 0;
109
Repeat Ellipse (i, j, 0, 360, 60, 40);i := i + 20; j := j + 20 Until j = 300;For k := 1 To 10 Do beginSound (100 * k +k * 200);delay (500);nosound; end;Repeat until keypressed;Closegraph;end.
programa gamoscems sxvadasxva sixSiris musikalur
signals:
Program MusicDemo;
Var I : Integer;
begin For I := 1 To 10 Do begin Sound (I * 200); Delay (5000); Nosound;end;
For I := 10 Downto 1 Do begin Sound (I * 200); DDelay (5000);Nosound;end;end.
110
DELPHI.
Delphi danarTis Seqmnis swraf saSualebas iZleva. igi
dafuZnebulia Object Pascal – ze. Delphi dammuSavebels aZlevs
moqnilobis saSualebas. misi kompilatorebi, romlebic
paskalis ojaxis enebidan aris warmoSvebuli, iTvlebian
erT-erT yvelaze swraf kompilatorebad. Borland - ma enasdaamata obieqtur-orientirebuli gafarToeba programirebis
saukeTeso stilis misaRebad.
moduli.
moduli (unit) udidesi gamogonebaa. moduli es aris
erTmaneTTan dakavSirebuli funqciebisa da procedurebis
jgufi.
ganvixiloT martivi moduli ;
unit SayStuff ;beginprocedure SayHello ; begin Seiqmnas fanjara ; davweroT fanjaraSi ~gamarjoba~;
gavanadguroT fanjara;
end ;
procedure SayBye ; begin Seiqmnas fanjara ; davweroT fanjaraSi ~naxvamdis~;
gavanadguroT fanjara;
end ;
111
procedure SayNothing; begin Seiqmnas fanjara ; davweroT fanjaraSi ~araferi~;
gavanadguroT fanjara;
end ;end ; {moduli SayStuff}erTaderTi rac gavakeTeT aris is rom sami
procedura movaTavseT erT jgufSi da davarqviT saerTo
saxeli – SayStyff. Tu Cven dagvWirdeba sxva proeqtSiaRniSnuli procedurebis gamoyeneba, unda davweroT : UseSayStyff .
modulis formati :
UUnit YourNameHere ;
interfaceuses …
const…type …var …procedure …function …
implementationuses …Label …const …type …var …procedure …function …
112
initialization {araaucilebeli ganyofileba}
begin…..end ;
finalization {araaucilebeli ganyofileba}
begin….end ;
end. {modulis dasasruli}
interface – s nawili aris pirveli, aq ganisazRvreba
cvladebi, mudmivebi. am nawilSi moTavsebulia procedurebisa
da funqciebis saTaurebi.
implementation ganyofilebaSi moTavsebulia is
cvladebi da mudmivebi, romlebsac gamoiyeneben am
ganyofilebis mxolos funqciebi da procedurebi.
implementation ganyofilebaSi iwereba im funqciebisa da
procedurebis teqstebi, romlebic gamocxadebul iyo
interface nawilSi.
initialization ganyofileba araaucilebelia, magram masSi
SeiZleba ganisazRvros cvladebis mniSvneloba. saqme imaSia,
rom interface nawils ara aqvs Sesrulebadi nawili da
cvladebs ar SegviZlia mivceT sawyisi mniSvnelobebi. aseT
saSualebas iZleva initialization ganyofileba. aq SeiZleba
gavukeToT inicializacia cvladebs Caneweris struqturas,
failur cvladebs da yvelafers romelTaTvisac saWiroa
sawyisi mniSvnelobebis miniWeba.
finalization ganyofilebas aqvs sawinaaRmdego
113
daniSnuleba. igi saSualebas iZleva daixuros failebi,
ganTavisufldes mexsiereba da Catardes sxva damasrulebeli
operaciebi. finalization ganyofileba sruldeba ukumimdevrobiT
initialization ganyofilebasTan damokidebulebaSi. magaliTad,
Tu inicializacia gaukeTda modulebs Semdegi mimdevrobiT :
X, Y, Z, maSin isini daixurebianN Semdegi mimdevrobiT : Z,Y, X.
qvemoT moyvanilia moduli, romelic saWiroa Seiqmnas,
raTa Sesruldes ramdenime martivi maTematikuri funqcia.
Unit MatsStuff ;
Interface Function AddTwoNumbers (One, Two : Integer) : Integer ;Function SubtractTwoNumbers (One, Two : Integer) :
Integer ; Function SubtractTwoNumbers (One Two, : Integer) :
Integer ;Procedure PositiveKarma ;implementationFunction AddTwoNumbers (One, Two : Integer) : Integer ; begin AddTwoNumbers := One + Two ; end ;Function SubtractTwoNumbers (One, Two : Integer) :
Integer ; begin SubtractTwoNumbers := One – Two ; end ;Function SubtractTwoNumbers (One, Two : Integer) :
Integer ; begin SubtractTwoNumbers := One – Two ;
114
end ; procedure PositiveKarma ; begin Writeln (‘Tqven SegiZliaT amis gakeTeba,
maTematika ar aris rTuli’) ;
end ;end. {MathStuff Unit}interface nawilSi Cven ganvsazRvreT is funqciebi da
procedurebi , romlebic mocemuli modulis
momxmareblisaTvis aris misawvdomi. implementation nawilSi
Cven SevqmeniT is, rac gamovacxadeT interface nawilSi.
procedura PositiveKarma dawerilia maTTvis, visac ar uyvars
maTematika.
dawerili modulis gamoZaxebisaTvis, igi ubralod
unda CairTos ZiriTadi programis Uses winadadebaSi.modulis gamoyeneba :
Program MathDemo ;
uses MathStuff ;var A, B : Integer ;begin A := 1 ; B := 2 ; Writeln (‘A da B – s jami tolia’ AddTwoNumbers
(A,B)) ; Writeln (‘ programis dasrulebisaTvis daaWireT
enter – s’) ; Readln {enter – is daWeramde fanjara rom Ria
darCes} ;
end. {MathDemo}es programa MathStuff modulis mxolod erT
115
funqcias oyenebs, es aris – AddTwoNumbers. aRniSnuli
modulis Cvens proeqtSi Casamateblad saWiroa Sesruldes
Semdegi brZaneba : View -> Project Manager da vaWerT AddRilaks.
forma
delfis nebismieri danarTis safuZveli aris forma.
es aris iseTive fanjara, rogorsac vxedavT Windows – Si.formaze unda ganTavsdes yvela komponentebi. forma SeiZleba
iyos sxvadasxva tipis. ZiriTadad igi ori tipisaa:
modaluri da aramodaluri. modaluri formis fanjara
aisaxeba danarTis yvela fanjris zemoT. saWiroa davxuroT
es fanjara imisaTvis, rom mivmarToT danarCen fanjrebs.
aramodaluri fanjara sxva fanjrebis zemoT ar rCeba da
amdenad, momxmarebels xels ar uSlis raTa gadaerTos
sxva fanjrebze.
formebisa da komponentebis Tvisebebi.
Tviseba es aris obieqtis atributi. adamians,
magaliTad aqvs atributebi, rogoricaa : simaRle, wona, Tvalis
feri da a.S. formas SeiZleba hqondes : simaRle, sigane,
fonis feri da a.S.
Delph-is martivi danarTi.
SevqmnaT delfis martivi danarTi. amisaTvis
SevasruloT Semdegi moqmedebebi:
1. gavuSvaT delfi ;
2. davinaxavT cariel formas, romelic
116
dasaTaurebulia FORM1 – iT , Tu es arSesrulda, avirCioT meniuSi : File -> NewApplication ;
3. avirCioT komponentebis palitraze (romelic
ganTavsebulia ekranis zeda marjvena kuTxeSi)
Standart gverdi;4. davawkapunoT Button Rilakis niSanze ;
5. davawkapunoT formis SuaSi, am adgilas gaCndeba
Rilaki ;
6. orjer davawkapunoT am Rilakze ; gamoCndeba
programuli fanjara, sadac kursori
ganTavsebulia begin da end striqonebsSoris ;
7. davweroT striqoni :
Canvas.TextOut (20, 20, ‘ programireba delfSi
Zalian martivia’) ;
8. Cven SevqmeniT Cveni pirveli danarTi,
kompilaciisa da SesrulebisaTvis vaWerT F9Rilaks an avirCioT meniuSi : Run -> Run.
Sesrulebis Semdeg ekranze gamoCndeba fanjara (forma),
sadac Cans Cvens mier ganTavsebuli Rilaki. davaWiroT am
Rilaks da ekranze gamoCndeba is teqsti, romelic Cven
davwereT Canvas.TextOut – Si. davxuroT fanjara, risTvisacfanjris zeda marjvena kuTxeSi davaWiroT X Rilaks,
SekiTxvaze `gsurT Tu ara proeqtis Senaxva~ vupasuxoT
`No~, rac niSnavs, rom proeqti ar SevinaxoT..
Delph-is CatvirTvisas ekrani miiRebs Semdeg saxes:
117
formas aqvs igive Tvisebebi, rogorc Windows – isyvela fanjaras. igi Semdegnairad gamoiyureba :
118
programis Sesrulebaze gaSvebis Semdeg danarTi Semdeg
saxes miiRebs:
Button1-ze dawkapunebis Semdeg danarTi Semdegnairadgamoiyureba:
119
kodis redaqtoris fanjara.
kodis redaqtoris fanjara aris srulfasovani
programuli redaqtori. fanjris saTaurad gamodis
mimdinare failis saxeli, fanjaras SeiZleba hqondes
CanarTebi, Sua nawilSi ganTavsebulia programis teqsti,
fanjris qveda nawilSi aris sami saintereso elementi:
marcxniv ganTavsebulia striqonisa da svetis indikatori,
SuaSi – modifikaciis indikatori, Tu proeqtis Senaxvis
Semdeg gavakeTeT cvlileba, indikatorze gamoCndeba Modifiedsityva. mesamea – Casmis reJimis indikatori (Insert) , romelic
uCvenebs Setanili simbolo win Caematos Tu ara.
komponentebis palitra
komponentebis palitra - es aris vizualuri komponen-
tebi, romlebic ganlagebulia CanarTebis saxiT:
Standard (standartuli)
Additional (damatebiTi)Win32 (Windows 32bitiani)Data Access (monacemebze mimarTva)Data Control (monacemTa marTva)Win 3.1 (Windows 3.X)Dialogs (dialogebi)
System (sistemuri)Qreport (angariSebis swrafi momzadeba)ActiveX (aqtiuri elementebi ActiveX)Samples (nimuSebi)
120
obieqtebis inspeqtori.
obieqtebis inspeqtori Sesdgeba Tvisebebis gverdisa
da xdomilobebis gverdisagan.
davawkapunoT cariel formaze da davakvirdeT mis
atributebs. Tu Tvisebebis marjvniv plus niSania, niSnavs,
rom am Tvisebis SigniT igulisxmeba qveTvisebebis simravle.
121
magaliTad Tu movniSneT forma, obieqtebis inspeqtorSi
davinaxavT Font Tvisebas da plus niSans mis Semdeg. Tu
orjer davawkapunebT Font (Srifti) Tvisebaze, maSin gaixsnebaiseTi Tvisebebis cxrili rogoricaa Color (feri), Height(simaRle), Name (saxeli) da a. S. aseTi formati xilvadi,
martivi da efeqturia obieqtis atributebis Secvlisas.
122
xdomilobebis gverdi.
xdomilobebis gverdi obieqtebis inspeqtorze meore
CanarTia. masze naCvenebia yvela xdomiloba, romelzec
reagirebs arCeuli obieqti. magaliTad, Tu Cvens programaSi
saWiroa Sesruldes romelime operacia fanjris daxurvisas,
am mizniT SeiZleba gamoyenebul iqnes OnClose xdomiloba.
123
Delphi - s menius struqtura.
ganvixiloT Delphi - s menius struqtura.
meniu File
es meniu gamoiyeneba proeqtis Seqmnis, Senaxvis,
gamoZaxebis, beWdvisa da mTeli rigi sxva operaciebisaTvis.
New
axali obieqtis Seqmna. am brZanebis arCevis Semdeg
gamodis dialoguri fanjara, romelic arCevanis saSualebas
iZleva .
New Application
axali proeqtis Seqmna. igi gulisxmobs kodis
redaqtoris axali fanjris Seqmnas axali Unit1.PAS failiT,
axali Form1 formiT da obieqtebis inspeqtoris axali
fanjriT.
New Form
axali formis Seqmna.
New Data Module
124
axali modulis Seqmna.
Open
obieqtis gaxsna. es SeiZleba iyos romelime modulis
kodi an mTeli proeqti.
ReOpen
es ganyofileba Seicavs bolo dros gamoZaxebul
failebis an proeqtebis sias.
Save
mimdinare modulis Senaxva diskze.
Save As
mimdinare modulis Senaxva axali saxeliT.
Save Project As
mimdinare proeqtis axali saxeliT Senaxva.
Save All
menius am punqtis arCeva Seinaxavs yvelafers, rac
mocemul momentSi gaxsnilia – proeqti da sxva failebi.
Close
daxuravs mimdinare kodis moduls an masTan
dakavSirebul formas. Tu igi Senaxuli ar aris, gvTavazobs
125
Senaxvas.
Use Unitam punqtis arCeva mimdinare modulis kodSi Casvams
Uses operators im modulisaTvis, romelic gvinda
gamoviyenoT.
Add To Project
menius am punqtis arCeva proeqtSi daumatebs arsebul
moduls da masTan dakavSirebul formas.
Remove From Project
menius am punqtis arCeva saSualebas iZleva waiSalos
proeqtidan arsebuli moduli da masTan dakavSirebuli
forma.
menius am punqtis arCeviT SegviZlia davbeWdoT
proeqtis arCeuli elementi.
Exit
gasvla Delphi-dan.
redaqtirebis meniu Edit
UnDelete/Undo
Tu obieqti wavSaleT UnDelete mas aRadgens, xolo
126
Tu bolo moqmedeba gavakeTeT kodis an komponentis damateba,
es punqti Undo-d gadaiqceva da gaauqmebs bolo damatebas.
Redo
es aris Undo-s Sebrunebuli moqmedeba.
Cut
es brZaneba amoWris moniSnul elements da moaTavsebs
Clipboard buferSi.
Copy
es brZaneba akopirebs moniSnul elements da
moaTavsebs Clipboard buferSi.
Paste
es bZaneba Clipboard - is Semadgenlobas Casvams mimdinare
formaSi an teqstSi.
Delete
waSlis formaze an teqstSi moniSnul elements.
Select All
gamoyofs (moniSnavs) yvela elements formaze an
modulSi.
Align to Grid
127
formaze ganTavsebul komponentebs gaasworebs badis
kuTxeebSi.
Bring To Front
gamoyofil komponentebs ganaTavsebs yvela danarCenze
maRla.
Send To Back
gamoyofil komponentebs ganaTavsebs yvela danarCenis
qvemoT.
Align
menius am punqtis rCevisas gamodis Alignment(gasworeba) dialoguri fanjara. am fanjris opciebi
saSualebas iZlevian formaze komponentebi gavasworoT
horizontis an vertikalis mixedviT.
Size
komponentis an komponentTa jgufis zomebis Secvla.
Scale
roca formaze ganTavsebuli komponentebi an Zalian
didi zomisaa an Zalian mcire, maSin masStabirebis brZanebis
gamoyenebiT SegviZlia proporciulad SevcvaloT formaze
ganTavsebuli komponentebis masStabi.
Tab Order
128
brZanebas gamoaqvs fanjara, sadac CamoTvlilia
formaze ganTavsebuli komponentebis sia. SegviZlia
SevcvaloT maTi mimdevroba, risTvisac movniSnoT igi da
davaWiroT Rilaks ‚zemoT~ an ‚qvemoT~.
Creation Order
es brZaneba marTavs im mimdevrobas, romliTac iqmneba
aravizualuri komponentebi.
Lock Controls
Tu winaswar gamoviyenebT aRniSnul brZanebas, formaze
yvela elementi dafiqsirdeba Tavis adgilas. Cven SegviZlia
uSiSrad davawkapunoT elementze Tvisebis Sesacvlelad,
elementi ar daiZvreba adgilidan.
Zebnis meniu Search
Find
awarmoebs teqstSi simboloebis mimdevrobis Zebnas.
Find in Files
awarmoebs Zebnas yvela gaxsnil failSi.
Replace
teqstis erTi fragmentis meoreTi Secvla.
129
Search Again
es brZaneba imeorebs bolo Zebnas.
Incremental Search
avirCioT menius es punqti, Semdeg ki davbeWdoT
romelime sityva. Delphi ipovis teqstSi Cvens mier
akrefili simboloebis mimdevrobas.
Go to Line Number
striqonis Setanil nomerze gadaadgileba.
Find Error
menius am punqtis daxmarebiT SegviZlia vipovoT
teqstSi bolo Secdomis adgili.
Browse Symbol
programis warmatebiT kompilaciis Semdeg SegviZlia
vnaxoT masSi gamoyenebuli nebismieri simbolo.
daTvalierebis meniu View
Project Manager
es brZaneba gaaaqtiurebs proeqtis dispetCeris
fanjaras.
Project Source
130
am brZanebas kodis redaqtoris fanjaraSi Seaqvs
proeqtis sawyisi faili.
Object Inspector
es brZaneba gaaaqtiurebs obieqtebis inspeqtors.
Alignment Palette
es brZaneba gaaaqtiurebs gasworebis palitras -
Alignment Palette.
Browser
menius es punqti gaaaqtiurebs fanjaras, romelic
saSualeb as i Zlev a dav a k v irdeT obie qtebis
memkvidreobiTobisa da urTierTkavSiris models.
Breakpoints
menius es punqti gaaaqtiurebs wyvetis wertilebis
siis dialogur fanjaras.
Ccall Stack
gviCvenebs mimdevrobas, romlis mixedviT gamoiZaxeba
funqciebi da procedurebi Cvens danarTSi.
Watches
menius am punqtis daxmarebiT programis gawyobis
procesSi SegviZlia davakvirdeT cvladebis simravles an
131
gamosaxulebebs, romlebis Seicaven am cvladebs. aqve SeiZleba
ganisazRvros Tu rogori formatiT unda gamoisaxos
Sedegebi.
Threads
gviCvenebs kodis mimdinare sias, romelic mocemul
momentSi sruldeba.
Modules
gviCvenebs modulebis siis dialogur fanjaras,
romelic Seicavs proeqtSi gamoyenebul yvela moduls.
Component List
gviCvenebs komponentebis sias. Tu gvinda romelime
komponentis damateba vaWerT Add to Form da es komponentimoTavsdeba Cvens formaze.
Window List
menius aRniSnuli punqti gamoitans yvela gaxsnili
fanjris sias, saidanac SeiZleba amovarCioT sasurveli.
Toggle Form/Unit
es brZaneba akeTebs gadarTvas formasa da moduls
Soris.
Units
gamoiZaxebs fanjaras, romelic gviCvenebs Cveni
132
proeqtis yvela modulis sias. SegviZlia avirCioT
sasurveli.
Forms
es brZaneba formebTan muSaobs zustad ise, rogorc
wina muSaobs modulebTan.
New Edit Window
menius am punqtis arCeva gaxsnis redaqtirebis axal
fanjaras, ise rom ar Seexeba winas. Cveni fanjris
redaqtirebis mimdinare moduli gamoCndeba axal fanjaraSic.
ramdenime redaqtirebis fanjris erTdroulad arseboba
ekranze saSualebas iZleva erTdroulad vnaxoT ori
modulis kodi.
SpeedBar
es brZaneba gamoaCens swraf Rilakebs, Tu isini
aqamde ar Candnen.
Component Palette
es brZaneba gamoaCens komponentebis palitras, Tu
isini aqamde ar Candnen.
proeqtis meniu Project.
Add To Project
133
menius am punqtis arCeva saSualebas iZleva proeqtSi
davamatoT arsebuli moduli da masTan dakavSirebuli
forma. roca Cven vamatebT proeqtSi moduls, Delphi
avtomaturad daamatebs proeqtis failSi Sesabamis
operators Uses. mocemuli menius punqts igive funqcia
aqvs, rogorc File -> Add To Project brZanebas.
Remove To Project
menius am punqtis arCeva saSualebas iZleva
proeqtidan amovagdoT arsebuli moduli da masTan
dakavSirebuli forma. roca amovagdebT proeqtSi moduls,
Delphi avtomaturad amoagdebs proeqtis failSi Sesabamis
Uses operators . mocemuli menius punqts igive funqcia
aqvs, rogorc File -> Remove From Project brZanebas.
Add To Repository
menius es punqti mimdinare formas daamatebs
obieqtebis sacavSi – Object Repository. es iZleva misi
xelmeored gamoyenebis saSualebas.
Compile
es brZaneba axorcielebs Cveni proeqtis yvela im
failis kompilacias, romlebic Seicvalnen programis bolo
gaSvebis momentidan.
Build All
134
es programa kompilacias ukeTebs yvela komponents,
formas, moduls imisagan damoukideblad Seicvalnen Tu
ara isini.
Syntax Check
menius es punqti saSualebas iZleva SevamowmoT
sintaqsuri Secdomebi.
Information
menius es punqti iZleva informacias kompilaciisa
da mexsierebis danaxarjebis Sesaxeb.
Options
menius es punqti gaaaqtiurebs opciebis fanjaras,
sadac SeiZleba davayenoT redaqtirebis, kompilaciisa da
sxva opciebi.
Sesrulebis meniu Run.
Run
Delphi-s danarTs gauSvebs Sesrulebaze. Tu aqamde
ar iyo Sesrulebuli kompilacia, Sesrulebaze gaSvebis
win Sesruldeba kompilacia.
Parameters
menius es punqti gamoiZaxebs dialogur fanjaras
Run, romelic im parametrebis micemis saSualebas iZleva,
romelic saWiroa danarTis gaSvebisaTvis.
135
Step Over
es brZaneba danarTis nabij-nabij Sesrulebis
saSualebas iZleva. TiToeuli operatoris mixedviT, amasTan
procedura an funqcia sruldeba ise, Tundac igi iyos
programis erTi operatori. es moxerxebulia maSin, rodesac
gvainteresebs Cveni programis moqmedeba, magram ar gvinda
CavxedoT SigniT TiToeul procedurasa da funqcias.
Trace Info
es brZanebac danarTis nabij-nabij Sesrulebis
saSualebas iZleva, Tanac nebismieri procedura da funqciac
sruldeba nabij-nabij.
Trace to Next Source Line
es brZaneba saSualebas iZleva davinaxoT Semdeg
romeli brZaneba Sesruldeba.
Run To Cursor
es brZaneba saSualebas iZleva Sesruldes Cveni
danarTi kursoris adgilamde. aq SeiZleba gamoviyenoT
Watch fanjara, im cvladis SefasebisaTvis, romlis
mniSvnelobaSic eWvi gvepareba.
Show Execution Point
SevasruloT es brZaneba, Tu davxureT redaqtirebis
fanjara da vimyofebiT programis nabij-nabij amoxsnis
procesSi. es dagvabrunebs redaqtirebis fanjaraSi, amasTan
136
kursori ganTavsebuli iqneba im operatorze, romelic
SemdgomSi Sesruldeba .
Program Pause
es brZaneba danarTis SesrulebaSi gamoiwvevs pauzas
da Cven SegviZlia mSvidad vimuSaoT Watch fanjarasTan.
Program Reset
es brZaneba Sewyvets danarTis Sesrulebas da
amotvirTavs mas mexsierebidan.
obieqtur-orientirebuli daproeqteba
obieqti aris arseba, romelsac aqvs mdgomareoba, anu
mas aqvs zogierTi mniSvneloba. obieqtis qceva ganisazRvreba
im moqmedebebiT, romlebic maTze moqmedeben. TiToeuli
obieqti aris obieqtTa klasis egzemplari .obieqtur-
orientirebuli daproeqtebis mizani mdgomareobs imaSi,
rom sistemis TiToeuli moduli realuri samyaros
obieqts an obieqtebis klass warmoadgens. sistemis
damuSaveba obieqtur-orientirebuli midgomiT mdgomareobs
SemdegSi:
1. obieqtis da maTi atributebis identifikacia;
2. identifikacia im moqmedebebisa, romlebic moqmedeben
TiToeuli obieqtis mdgomareobaze;
3. TiToeuli obieqtis xilvadobis gansazRvra sxva
obieqtebTan SedarebiT;
4. TiToeuli obieqtis interfeisis gansazRvra;
5. TiToeuli obieqtis realizacia.
137
obieqtebi
obieqtebi SeiZleba iyos Zalian didi da Sesdgebodes
mcire obieqtebisagan. interfeisSi Canan, Tu rogor
ukavSirdebian obieqtebi erTmaneTs. zustad unda
ganisazRvros mocemul obieqtTan sxva obieqtebi rogor
damokidebulebaSia.
klasebi
Delphi-Si aris darezervebuli sityva class, romelic
obieqtis aRweris saSualebas iZleva. rodesac Delphi-SivqmniT axal proeqts da vuyurebT Unit1-Si gamocxadebebs,es aris ZiriTadi formis klasis gamocxadeba.
ganvixiloT klasis gamocxadebis magaliTi:
Type TForm1 = class(TForm)
public {gamocxadebis gaxsna}proteqted {daculi gamocxadeba}
private {daxuruli gamocxadeba}
end;
modulis interface nawilSi mivuTiTebT tipis saxels
(TForm1) da Semdeg bazur klass, saidanac igi warmoiSveba.
yvela obieqti unda iyos warmoSvebuli TObject-sagan anerT-erTi misi STamomavlobisagan.
public nawilSi aris gamocxadeba, romelic misawvdomia
138
`gare samyarosaTvis~. private nawilSi gamocxadebulia
cvladebi, procedurebi, funqciebi, romelic gamoyenebulia,
mxolod klasis SigniT. protected nawili aris wina ori
ganxilulis saukeTeso Tvisebebis Serwyma. masSi
gamocxadebuli komponentebi misawvdomia mxolod
gamocxadebuli tipis STamomavlobisaTvis.
SevqmnaT monacemebis sakuTari obieqti, sabanko baraTis
PIN kodis Sesanaxad. igi ase gamoiyureba:Secret = class (TObject) private FThe_PIN : Integer;end;es kodi qmnis ara marto klass Secret saxeliT, aramed
daxurul FThe_PIN cvlads PIN mniSvnelobis Sesanaxad.
memkvidreobiToba
obieqtur-orientirebuli enis erT-erT Tvisebad
iTvleba memkvidreobiToba. igi saSualebas iZleva
warmoSvebul klasebs hqondes maTi mSoblebis klasebTan
mimarTvis saSualeba. es saSualebas iZleva aviRoT klasi,
romelSic aris yvela saWiro elementi da davumatoT mas
saWiroebis mixedviT axali obieqtebi.
Delphi – is danarTi.
erTi SexedviT TiTqos Cans, rom martivi programa
Sedgeba mxolod proeqtis failisa da programuli
modulisagan. sinamdvileSi aq aris kidev ramdenime faili.
Delphi – proeqti Sedgeba formebisagan, modulebisagan
proeqtis parametrebisagan, resursebisagan da a.S. bevri am
failTagani danarTis Seqmnisas, avtomaturad iqmnebian.
danarTis daproeqtebisas, Delphi qmnis Semdeg failebs:
139
proeqtis faili (.dpr) es faili gamoiyeneba
formebisa da modulebis Sesaxeb informaciis Sesanaxad.
modulis faili (.pas) es faili gamoiyeneba kodis
Sesanaxad. zogierTi moduli dakavSirebulia formasTan,
zogierTSi inaxeba mxolod funqciebi da procedurebi.
formis faili (.dfm) es aris faili, romelSic
inaxeba informacia Cveni formebis Sesaxeb. TiToeuli formis
fails Seesabameba modulis faili (.pas) . magaliTad
myform.pas failisaTvis arsebobs masTan dakavSirebuli
faili myform.dfm.proeqtis parametrebis faili (.dfo) - am failSi
inaxeba proeqtis parametrebis dayeneba.
paketebis Sesaxeb informaciis faili (.drf) -es binaruli faili Delphi – Si gamoiyeneba paketebTanmuSaobisas.
resursebis faili (.res) - es binaruli faili
Seicavs proeqtis mier gamoyenebul piktogramas. es faili
ar unda Seiqmnas da Seicvalos momxmareblis mier, radganac
Delphi mudmivad ukeTebs modificirebas am fails.
sarezervo aslebis faili (.~dp, .~df,.~pa) - esaris proeqtis failebis, formebisa da modulebisaTvis
sarezervo aslebis faili.
failebis Semdegi jgufi iqmneba kompilatoris mier:
Sesrulebadi faili (.exe) - es Cveni danarTis
gamSvebi failia.
modulis obieqturi faili (.dcu) - es (.pas)modulis kompilaciaze gaSvebuli failia.
Windows-is sxva failebi, romlebic gamoiyenebian Delphi-Si:
140
sacnobaro faili (.hlp) - es daxmarebis anu sacnobarofailia, romelic Delphi – Si gamoiyeneba.
grafikuli failebi (.wmf, .bmp, .ico) - es failebi
gamoiyenebian danarTSi lamazi interfeisis Sesaqmnelad.
proeqtis faili (.dpr)-Seicavs Object Pascal-ze dawerilkods da aris Cveni danarTis ZiriTadi nawili romliTac
iwyeba Cveni programis Sesruleba. danarTis damuSavebis
procesSi es faili Seiqmneba da modificirdeba avtomaturad.
saxeli, romelsac varqmevT proeqtis fails, xdeba gamSvebi
failis saxelic. qvemoT moyvanilia magaliTi imisa, Tu
rogor gamoiyureba faili, Tu axali proeqtis dawyebisas
Cven masSi ar SevcvaleT failisa da formis saxeli.
program Project1;uses Forms, Unit1 in ‘UNIT1.PAS’ {Form 1};
{SR*.RES}
begin Application.CreateForm(TForm, Form1); Application.Run(Form1);end.
moduli
arsebobs sami tipis moduli: modulebis faili,
romlebic dakavSirebulia formebTan; programuli
modulebis failebi, romlebic gamoiyeneba procedurebisa
141
da failebis Sesanaxad; programuli modulebis failebi,
romlebic gamoiyeneba komponentebis asagebad.
moduli es aris programuli kodebis faili, .pasgafarToebiT.
ganvixiloT moduli, romelic Delphi-Si iqmneba
dumiliT :
unit Unit1 ;
interface
uses Windows, Messages, SysUtils, Classes, Graphics,
Controls, Forms, Dialogs ;
type TForm1 = class(TForm) procedure FormCreate (Sender: Tobject); private {private declarations – daxuruli gamocxadeba}
public {public declarations – Ria gamocxadeba} end;var Form1: TForm1;
implementation
{$R*.DFM}
procedure TForm1.FormCreate (Sender: TObject);begin
142
end;end.
axali proeqtis Seqmnisas es moduli iqmneba
avtomaturad. ganvixiloT modulis Semadgeneli calkeuli
nawilebi:
modulis saxeli – es saxeli iwereba unit sityvisSemdeg;
inetrface – interfeisi - gamoiyeneba cvladebis
procedurebis da a.S. gamosacxadeblad;
uses - acnobebs kompilators romeli funqciebisa da
procedurebis romeli biblioTekebi gamoiyeneba Cvens failSi.
Tu vwerT sakuTar moduls da unda gamoviyenoT am modulSi
Semavali funqciebi, es moduli unda CairTos usesoperatorSi.
type – gamoiyeneba monacemTa tipebis gamosacxadeblad.
private – daxuruli - am nawilSi gamocxadeba
misawvdomia modulis SigniT, magram miuwvdomelia modulis
gareT.
public – Ria - am nawilSi gamocxadeba Cans modulis
gareTac.
implementation – Seicavs rogorc funqciebsa da
procedurebs xdomilobebis damuSavebisaTvis, aseve Cvens
sakuTar procedurebsa da funqciebs.
{$R*.DFM} - miabavs formas Tavis .dfm fails. am
striqonis waSlam programaSi SeiZleba Seqmnas problemebi.
proeqtis magaliTi
SevqmnaT mcire zomis proeqti. pirvel rigSi SevqmnaT
proeqtis failebi :
1. failebis Sesanaxad Delphi katalogSi SevqmnaT
143
q v e k atalogi . m a g aliTad : c:\programfiles\borland\delphi 3.0\mysource.
2. SevqmnaT qvekatalogi, romelSic SevinaxavT Cvens
proeqts, davarqvaT Formtalk (c:\programfiles\borland\delphi 3.0\mysource\formtalk)
3. gavuSvaT Delphi avirCioT brZaneba File| New,avirCioT Application piktograma, New Itemsdialogur fanjaraSi.
4. avirCioT brZaneba File|New Form, proeqtze meoreformis dasamateblad.
5. SevucvaloT Form1 formas da mis komponentebszogierTi Tviseba. obieqtebis inspeqtoris (ObjecInspector) gamoyenebiT Cvens formas SevucvaloT
caption (saTauri) Tviseba da davarqvaT ‘Semavali
forma~, xolo formis name (formis saxeli)
Tvisebas davarqvaT `InputForm~ (formebisa da
komponentebis saxelebi iwereba laTinuri asoebiT,
radgan isini arian identifikatorebi.
6. obieqtebis inspeqtoris gamoyenebiT meore formas
SevucvaloT saTauri da davarqvaT `gamomavali
forma~, xolo name TvisebaSi avkrifoT
`OutputForm~. programis Sesrulebisas es forma
gamomaval monacemebs miiRebs `InputForm~- dan.
monacemebis gadagzavna moxdeba maTi Setanisa da
`gadagzavna~ Rilakis daWeris Semdeg.
7. SevinaxoT unit1.pas modulis faili, magram fails
SevucvaloT saxeli SemdegiT:
c:\program files\borland\delphi 3.0\mysource\formtalk\input.pasSemdeg unda SevinaxoT unit2.pas SevcvaloT misi saxeli
da davarqvaT output.pasproeqtis failis Sesanaxad gamoviyenoT brZaneba File|Save Project As , gamosul fanjaraSi avirCioT katalogi
da saxeli proeqtis failis Sesanaxad. proeqtis
144
fails davarqvaT project1.dpr, misi misamarTi diskzeiqneba:
c:\programfiles\borland\delphi\mysource\formtalk\formtalk.dpr
exla avagoT formebi Semdegi procedurebis gamoyenebiT:
1. TiToeul formas davamatoT Edit redaqtirebisfanjara, da Semaval formaze davsvaT Button Rilaki,
Semdeg orive redaqtirebis fanjaraSi obieqtebis
inspeqtoris gamoyenebiT text Tvisebidan wavSaloT
teqsti.
2. Semavali formis redaqtirebis fanjaras mivaniWoT
saxeli InText, xolo gamomavali formis
redaqtirebis fanjaras mivaniWoT saxeli OutText.Semavali formis Rilaks mivceT saTauri (caption)`gadagzavna~, xolo saxeli (name) SendText.
3. ekranze formis vizualuri gamosaxvis
garantiisaTvis, obieqtebis inspeqtoris gamoyenebiT,
yvela axlad damatebuli formisaTvis visible TvisebaSevcvaloT True – Ti.
4. Rilakis kods davamatoT striqoni. SendTextRilakze orjer davawkapunoT da davamatoT Semdegi
striqoni:
OutputForm.OutText.Text:=InputForm.InText.Text;
Tu yvelaferi zustad iyo Sesrulebuli, programas
gavukeToT testireba, Semdegi mimdevrobiT:
1. avirCioT Run brZaneba, an davaWiroT F9 Rilaks.
dialogur fanjaraSi gamova Semdegi Setyobineba:
forma ‘InputForm’ gadaegzavneba ‘OutputForm’-s, romelic
gamocxadebulia OutputForm-Si. igi ar aris USES siaSi.gnebavT daamatoT siaSi?
2. davaWiroT yes Rilaks.
3. avirCioT brZaneba File| Save All.
145
4. isev gavuSvaT programa Sesrulebaze F9-iT. Cveniformebi gamoCndeba ekranze.
5. gavukeToT programas testireba, SevitanoT teqsti
Semaval formaSi da davaWiroT ̀ gadagzavna~ Rilaks.
Cveni Setanili teqsti gamoCndeba gamomavali
formis fanjaraSi.
vnaxoT rogor gamoiyureba Cveni programa. proeqtis
failis Sinaarsis sanaxavad gamoviyenoT brZaneba : View|Project Source.
program Formtalk ;
uses Forms, Input in ‘Input.pas’ {InputForm}, Output in ‘Output.pas’ {OutputForm};
{$R *.RES}begin Application.Initialize; Application.CreateForm(TInputForm, InputForm); Application.CreateForm(TOutputForm, OutputForm); application.Run;end.uses operatori Seicavs Forms moduls da Input, Output
modulebs, romlebic Seicaven Cvens mier Seqmnili formebis
kodebs.
pirveli begin operatoris Semdeg vxedavT meTodebisoperatorebs: Application.Initialize da Application.createForm. esmeTodebi asruleben Cveni formebis Seqmnisa da gaSvebisaTvis
aucilebel operaciebs. meTodi Seicavs kodis fragments.
damasrulebeli operatori aris Application.Run. igi gauSvebs
146
Cvens danarTs da Seasrulebs Cvens formebTan dakavSirebul
kods. formis damatebis an amogdebisas Delphi avtomaturadakeTebs proeqtis sawyisi kodis modificirebas.
vnaxoT Semavali formis modulis kodi, risTvisac
Semaval formaze orjer davawkapunoT.
Input formis moduli :
unit Input ;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, dialogs, StdCtrls ;type TInputForm = class(TForm) SendText: TButton; InText: Tedit; procedure SendTextClick(Sender: Tobject);private {private declarations}public {public declarations}end;
var InputForm: TInputForm;
implementation
uses output;
{$R *.DFM}
147
procedure TInputForm.SendTextClick(Sender: TObject);begin OutputForm.OutText.Text := InputForm.InText.Text;end;
end.
Output formis moduli:
unit Output ;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, dialogs, StdCtrls ;type TOutputForm = class(TForm)OutText: TEdit; InText: TEdit;private {private declarations}public {public declarations}end;
var OutputForm: TOutputForm;
148
implementation
{$R *.DFM}
end.
`gadagzavna~ Rilakis daWerisas sruldeba Semdegi
operatori:
OutputForm.OutText.Text := InputForm.InText.Text;
redaqtoris gamoyeneba
ganvixiloT martivi programa, romelic redaqtoris
gamoyenebis demonstrirebis saSualebas iZleva. es aris
martivi danarTi, romelSic momxmarebels Seaqvs ori ricxvi,
aWers Rilaks, programa gamoiTvlis jams da gamoitans
Sedegs. aq gamoyenebuli forma Sesdgeba erTi Rilakisagan,
ori redaqtirebis fanjrisa da oTxi Wdisagan.
gavuSvaT Delphi , gamova forma romelic iqmneba Delphi-is gaSvebisas avtomaturad. SevudgeT danarTis Seqmnas,
romelsac davarqmevT Addition .1. Delphi-is instrumentebis striqonze avirCioT
gverdi Standart CanarTiT (es gverdi iqneba mimdinare,Tu muSaobis dawyebisas Cven sxva gverdi ar
agvirCevia.)
2. Standart gverdze avirCioT Button (Rilaki), Semdeg
ki davawkapunoT formaze, am moqmedebis Sedegad
formaze daemateba Rilaki, romlis zomebi da
mdebareoba SeiZleba SevcvaloT. es Rilaki
movaTavsoT formis qveda nawilSi.
3. Rilakze warweris gasakeTeblad, movniSnoT igi,
risTvisac davawkapunoT Rilakze, Semdeg ki
149
obieqtebis inspeqtoris fanjaraSi Caption TvisebasmivceT mniSvneloba ̀ Sekreba~.
4. igive teqnikis gamoyenebiT formaze ganvaTavsoT
ori Wde (Label) da ori redaqtirebis fanjara(Edit). Wdis piktogramaze gamosaxulia ~A’’simbolo. ganvaTavsoT es obieqtebi vertikalurad
Semdegi mimdevrobiT: Label1, Edit1, Label2, Edit2.
5. obieqtebis inspeqtoris gamoyenebiT, rogorc
RilakisaTvis gavakeTeT, SevucvaloT Caption TvisebaWdeebsac. Label1 SevcvaloT `mniSvneloba 1~ -
iT, xolo Label2 ki - ̀ mniSvneloba 2~ - iT, aseve
SegviZlia SevcvaloT Caption Tviseba formisaTvis.6. Edit1 da Edit2 oboeqtebisaTvis Text Tvisebas
mniSvnelobis saxiT mivaniWoT carieli striqoni,
risTvisac obieqtebis inspeqtoris meSveobiT masze
dumiliT micemuli mniSvneloba amovSaloT.
7. Edit2 redaqtirebis fanjris qvemoT movaTavsoT
150
kidev ori Wde, esenia Label1 da Label2 , romlebic
ganTavsebulia erTmaneTis gverdiT. Label3 WdisCaption Tvisebas mivaniWoT `jami~ mniSvneloba,
xolo Label4 Wdis Caption Tvisebas wavuSaloT
dumiliT micemuli mniSvneloba..
8. gamoviZaxoT kodis redaqtori, risTvisac Rilakze
orjer davawkapunoT.
9. Button1-saTvis CavsvaT saWiro kodi. gavakeToTkodis redaqtireba ise, rom miviRoT Semdegi teqsti:
Procedure TForm1.Button1Click (Sender: TObject);var Value1, Value2, Total : integer;begin Value1 := StrToInt (Edit1.Text); Value2 := StrToInt (Edit2.Text); Total := Value1 + Value2; Label4.Caption := IntToStr (Total);end;
10. failis Sesanaxad avirCioT File | Save As. SevinaxoTprogramuli moduli ADDFORM.PAS failSi,
xolo proeqtis faili ADD.DPR failSi.
11. danarTis gasaSvebad vaWerT F9 Rilaks.
Tu yvelaferi swori aRmoCnda forma gaielvebs
ekranze, Cven SegviZlia SevitanoT redaqtirebis fanjaraSi
ricxvi, davaWiroT `Sekreba~ Rilaks da Label4 WdisfanjaraSi miviRoT jami.
Cveni danarTis sruli kodi gamoiyureba Semdegnairad:
unit addform;
interface
151
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,Forms, Dialogs, StdCtrls;
typeTForm1 = class (TForm)Button1 : TButton;Edit1 : TEdit;Edit2 : TEdit;Label1 : TLabel;Label2 : TLabel;Label3 : TLabel;Label4 : TLabel;procedure ButtonClick (Sender : TObject);private{ private declarations}public{ public declarations}end;
varForm1 : TForm1;
implementation;
{$r * . DFM}
procedure TForm1.Button1Click (Sender : TObject);varValue1, Value2, Total : integer;beginValue1 := StrToInt (Edit1.Text);
152
Value2 := StrToInt (Edit2.Text);Label4.Caption := IntToStr (Value1 + Value2);end;
end.
redaqtirebis fanjaraSi Setanili teqsturi striqoni
gardaiqmneba ricxviT mniSvnelobad StrToInt funqciis
gamoyenebiT. es funqcia ricxviT mniSvnelobebs inaxavs Value1da Value2 cvladebSi, Seajamebs am ricxvebs da miRebulmniSvnelobas gadaiyvans striqonul formatSi. miRebuli
mniSvneloba warweris saxiT moTavsdeba Label4 WdeSi.
programis gamarTvis damatebiTi brZanebebi.
Delphi-s menius Run ganyofileba Seicavs zogierT
programis SesrulebisaTvis saWiro damatebiT brZanebas.
Run - F9 programis kompilacia da Sesruleba; gawyobis
reJimSi muSaobisas programis Sesruleba gaagrZelos
mocemuli wertilidan.
Step Over – F8 brZaneba axorcielebs programis
striqonebis nabij-nabij Sesrulebas. funqciaSi an
proceduraSi Sesvla ar xdeba.
Trace Into – F7 axorcielebs programis nabij-nabij
Sesrulebas, gamoZaxebul funqciaSi da proceduraSi
SesvliT.
Trace to Next Source Line - [Shift-F7] momdevnoSesasrulebel striqonze gadasvla.
Run to Cursor – F4 brZaneba axorcielebs programis
Sesrulebas kursoris adgilamde.
Show Execution Point brZaneba kursors moaTavsebsmomdevno Sesasrulebel operatorze.
153
komponentebis Tvisebebi
Delphi-is yvela komponents aqvs Tavisi Tviseba. isini
saSualebas iZlevian SevcvaloT formisa da komponentebis
zomebi da sxva Tvisebebi. formebis Tvisebebze mimarTva
SeiZleba obieqtebis inspeqtoris meSveobiT. obieqtebis
inspeqtors aqvs ori CanarTi: Properties (Tvisebebi) daEvents (xdomilobebi).
ganvixiloT Cvens mier gamoyenebuli komponentis
Tvisebebi, es komponentia Button (Rilaki). gavxsnaT axali
proeqti, davsvaT Rilaki. davuSvaT am RilakisaTvis gvinda
davayenoT ramodenime Tviseba, magaliTad Height (simaRle),
misi dayeneba xdeba ricxviTi mniSvnelobis akrefviT, CursorTvisebis arCeva xorcieldeba Camoxsnadi menius saSualebiT,
saidanac SeiZleba sasurveli Tvisebis arCeva. iseTi Tviseba
rogoricaa Default (dumiliT) gvTavazobs True-FalsemniSvnelobebis arCevans. Caption (warwera) Tvisebis saxiTwarmodgenilia teqsti, romelic unda aikrifos saWiroebis
mixedviT. aris egreTwodebuli CarTuli Tviseba, romlis
winac dasmulia + niSani, magaliTad +Font. masze orjerdawkapunebiT igi gaixsneba da gamoCndeba CarTuli Tvisebebi.
aq SeiZleba gvqondes ramdenime CarTva.
ganvixiloT Button komponentis Tvisebebis sia:CancelCaptionCursorDefaultDragCursorDragModeEnabled+Font Color
154
Height Name Pitch Size +Style fsBold fsItalic fsUnderline fsStrikeOutHeightHeipContextHintLeftModalResultNameParentFontParentChowHintPopupMenuShowHintTabOrderTabStopTagTopVisibleWidthzogierTi Tviseba damokidebulia sxva Tvisebaze.
magaliTad Hint (miTiTeba). es miTiTeba gamodis maSin, rodesackursori miuaxlovdeba komponents. es imuSavebs mxolod
maSin, Tu ShowHint TvisebaSi arCeulia True mniSvneloba.
Tu TvisebaSi ParentShowHint (gamoviyenoT mSoblis ShowHint)arCeulia True mniSvneloba, miTiTeba gamova mxolod mSobel
formaze, xolo Tu misi mniSvnelobaa False es miTiTebagavrceldeba Svili formebisaTvisac. aseve Tu ParentFont
155
(gamoviyenoT mSoblis Srifti) TvisebaSi dayenebulia True,komponenti miiRebs informacias Sriftis Sesaxeb mSobeli
formisagan.
xdomilobebi.
RilakisaTvis SeiZleba avirCioT saWiro xdomiloba,
romelic ganTavsebulia obieqtebis inspeqtorze.
xdomilobis SeqmnisaTvis orjer davawkapunoT xdomilobis
velze, gamosul fanjaraSi SevitanoT xdomilobis kodi.
meTodebi .
meTodi iZleva komponentis marTvis saSualebas.
magaliTad Tu saWiroa, rom Rilaki gaxdes uxilavi, unda
aikrifos kodi Button1.Hide. ganvixiloT ButtonkomponentisaTvis misawvdomi meTodebis sia:
BeginDragBringToFrontCanFocusClientToScreenCreateDestroyDraggingEndDragFocusedFreeGetTextBufGetTextLenHideRefreshRepaintScaleBy
156
ScreenToClientScrollBySendToBackSetBoundsSetFocusSetTextBufShowUpdatemeTodis Sesaxeb informaciis misaRebad saWiroa
davawkapunoT komponenteze da davaWiroT F1 Rilakze.
miviRebT cnobebs aRniSnuli komponentis Sesaxeb. avirCioT
Methods da gamoCndeba mocemuli komponentisaTvis misawvdomi
sia. erT-erTis arCeva iZleva imis ganmartebas Tu rogor
muSaobs igi da rogor visargebloT am meTodiT.
gverdi Standard (standartuli)
komponenti MainMenu ( mTavari meniu) saSualebas
iZleva formaze Seiqmnas mTavari menius zoli da Camoxsnadi
meniu. es aravizualuri komponentia.
komponenti PopupMenu (mcocavi meniu), mcocavi
menius Seqmnis saSualebas iZleva. es meniu gamova Tagvvis
marjvena Rilakis daWerisas. es aravizualuri komponentia.
komponenti formaze teqstis ganTavsebis saSua-
lebas iZleva. komponenti vizualuria.
komponenti Edit (redaqtirebis fanjara) gamoi-
yeneba momxmareblis mier erTstriqoniani teqstis Sesatanad.
komponenti vizualuria.
157
Memo komponenti (redaqtirebis mravalstri-
qoniani fanjara), gamoiyeneba mravalstriqoniani teqstis
Sesatanad. komponenti vizualuria.
komponenti Button (brZanebis Rilaki), gamoiyeneba
Rilakis Sesaqmnelad, romliTac momxmarebeli danarTisaTvis
irCevs brZanebas. komponenti vizualuria.
CheckBox komponenti (sakontrolo indikatori
droSiT) momxmarebels programis opciis amorCevis an
gamorTvis saSualebas aZlevs. komponenti vizualuria.
RadioButton komponenti (radioRilaki) momxmarebels
aZlevs alternativebis nakrebs, saidanac amoirCeva erTi.
komponenti vizualuria.
ListBox komponenti (siis fanjara), momxmarebels
siidan amorCevis saSualebas aZlevs.
ComboBox komponenti (redaqtirebadi sia)
aerTianebs ListBox-isa da Edit-is funqciebs. momxmarebels
SeuZlia airCios teqsti siidan an Seitanos teqsti siaSi.
komponenti vizualuria.
Scrollbar komponenti (gadaxvevis xazi). komponenti
vizualuria.
GroupBox komponenti (jgufuri fanjara).
aerTianebs urTierTdakavSirebul marTvis organoebis jgufs,
magaliTad, rogoricaa RadioButton an CheckBox da sxva.komponenti vizualuria.K
158
RadioGroup komponenti (radioRilakebis jgufi)
warmoadgens GroupBox-is fanjarasradioRilakebis nakrebiT.
emsaxureba radioRilakebis jgufis Seqmnas. komponenti
vizualuria.
Panel komponenti (paneli), gamoiyeneba mdgomareobis
zolis, instrumentebis panelis, instrumentebis palitris
Sesaqmnelad. komponenti vizualuria.
teqsturi failis demonstrirebis magaliTi.
SevqmnaT programa, romelic akeTebs teqsturi failis
demonstrirebas.
formaze ganvaTavsoT Semdegi elementebi: Label1, Edit1,
159
Label2, Edit2. formis qveda nawilSi ganvaTavsoT sami Rilaki:
Button1, Button2, Button3, Rilakebs davarqvaT saxelebi:
`Senaxva~, ̀ CatvirTva~, ̀ daxurva~.
Rilaks `Senaxva~ davamatoT kodi:
procedure TForm1.Button1Click (Sender: TObject);var OutFile : TextFile; fname, OutString : string;begin {cvlads davarqvaT failis saxeli}
fname:= ̀ JUNKFILE.TXT`; {ganvsazRvroT failis saxeli da tipi, rogorc
OutFile} AssignFile(OutFile,fname); {Seiqmnas da gaixsnas axali faili, gansazRvruli
rogorc OutFile} Rewrite(OutFile); {aviRoT teqsti CawerisaTvis gavsazRvrul
redaqtirebis fanjridan}
OutString:=Edit1.Text; {CavweroT teqsti OutString striqonidan failSi}
Writeln(OutFile,OutString); {ganvaaxloT da davxuroT faili}
CloseFile(OutFile);end;
Rilaks `CatvirTva~ davamatoT kodi.
procedure TForm1.Button2Click (Sender: TObject);var InFile : TextFile;
160
fname, InString : string;begin {cvlads mivceT teqsturi failis saxeli}
fname := ‘JUNKFILE.TXT’; {ganvsazRvroT teqsturi faili, rogorc InFile} AssignFile (InFile, fname); {gavxsnaT InFile faili}
Reset (InFile); {wavikiTxoT teqstis striqoni} Readln (InFile, InString); {wakiTxuli striqoni movaTavsoT Read Text
fanjaraSi}
Edit2.Text := InString; {davxuroT faili}
CloseFile (InFile);end;
Rilaks `daxurva~ davamatoT kodi.
procedure TForm1.Button3Click(Sender: TObject);begin Application.Terminate;end;
programis sruli teqsti gamoiyureba Semdegnairad:
unit Textform;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs,
161
StdCtrls;
type TForm1 = class(TForm) Edit1 : TEdit; Label1 : TLabel; Label2 : TLabel; Edit2 : TEdit; Button1 : TButton; Button2 : TButton; Button3 : TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);var OutFile : TextFile; fname, OutString : string;begin fname:= ‘JUNKFILE.TXT’;
162
AssignFile(OutFile,fname); Rewrite(OutFile); OutString:=Edit1.Text; Writeln(OutFile,OutString); CloseFile(OutFile);end;
procedure TForm1.Button2Click(Sender: TObject);var InFile : TextFile; fname, InString : string;begin fname := ‘JUNKFILE.TXT’; AssignFile (InFile, fname); Reset (InFile); Readln (InFile, InString); Edit2.Text := InString; CloseFile (InFile);end;
procedure TForm1.Button3Click(Sender: TObject);begin Application.Terminate;end;
end.
ti pizebuli faili
tipizebuli failis demonstrirebisaTvis SevqmnaT
axali proeqti. SevinaxoT moduli, rogorc ADDR.PASxolo proeqti rogorc ADDRESS.DPR . jer SevqmnaTCanaweris struqtura. Implementation nawilSi {$R*DFM}
163
qvemoT movaTavsoT Semdegi kodi:
type Address = record Lastname : String[20]; Firstname : String[20]; Phone : String[15]; StreetAddress : String[50]; City : String[40]; State : String[2]; ZipCode : String[10];end;
aq gamoyenebulia mxolod striqonuli tipi, magram Cven
SegveZlo gamogveyenebina monacemTa sxva tipebic, rogoricaa
mTeli, namdvili da a.S. zemoT aRniSnuli kodis Semdeg
movaTavsoT Semdegi:
var AddresFile : File of Address; AddressData : Address;
AddresFfile es aris Address tipis failuri cvladi.
AddressData es aris Address tipis cvladi.
ganvixiloT procedurebi da funqciebi, romlebic
gamoiyenebian tipizebul failebTan muSaobisas.
AssignFile
sintaqsi: procedure AssignFile(var F, String);daniSnuleba: failur cvlads aniWebs failis saxels.
Reset
164
sintaqsi: procedure Reset (var F: File; [RecSize: Word] );daniSnuleba: gamoiyeneba arsebuli failis
gasaxsnelad. im failisa, romlis saxeli mieniWa failur
cvlads AssignFile – is daxmarebiT.
Rewrite
sintaqsi: Procedure Rewrite (var F[: File; RecSize:Word ]);
daniSnuleba: gamoiyeneba im failis Sesaqmnelad da
gasaxsnelad, romlis saxeli mieniWa failur cvlads
AssignFile-s daxmarebiT.
Seek
sintaqsi: Procedure Seek (var F, N: Longint);daniSnuleba: gamoiyeneba failuri maCveneblis
gaxsnili failis gansazRvrul Canawerze gadasaadgileblad.
Read
sintaqsi: Procedure Read (F; V1 [, V2, . . . , Vn] );daniSnuleba: gamoiyeneba failidan Canaweris
wasakiTxad.
Write
sintaqsi: Procedure Write (F; V1 [, V2, . . . , Vn] );daniSnuleba: gamoiyeneba failSi monacemis Casawerad.
Eof
sintaqsi: Procedure Eof (var F): Boolean;
165
daniSnuleba: gamoiyeneba failis dasasrulis
aRniSvnisaTvis.
CloseFile
sintaqsi: Procedure CloseFile (var F);daniSnuleba: gamoiyeneba Caweris damTavrebisa da
failis daxurvisaTvis.
proeqtis magaliTi.
mivubrundeT Cvens programas. AddressData : Address;striqonis Semdeg CavweroT:
Fname : String;RecSize, CurRec : Longint;
exla davamatoT formaze Svidi redaqtirebis fanjara,
Svidi Wde, oTxi Rilaki da erTi BitBtn Rilaki.
166
ganvixiloT kodi da gamoviyenoT igi Sesabamis marTvis
elementebze dasamateblad.
`misamarTebisa da telefonebis~ wignis danarTis
amonabeWdi:
Unit Addr;
interface
167
usesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;
type TForm1 = class (TForm) Edit1: TEdit;
Edit2: TEdit;Edit3: TEdit;Edit4: TEdit;Edit5: TEdit;Edit6: TEdit;Edit7: TEdit;Label1: TLabel;Label2: TLabel;Label3: TLabel;Label4: TLabel;Label5: TLabel;Label6: TLabel;Label7: TLabel;Previous: TButton;Next: TButton;Save: TButton;New: TButton;Close: TBitBtn;procedure FormCreate (Sender : TObject);procedure NewClick (Sender: TObject);procedure previousClick(Sender : TObject);procedure NextClick (Sender: TObject);procedure SaveClick (Sender: TObject);procedure CloseClick (Sender: TObject);
private
168
{private declarations}procedure LoadRecord; procedure SaveRecord;
procedure ShowRecord;procedure ClearData;
public {public declarations}end;
var Form1: TForm1;
implementation{$R*.DFM}type Address = record Lastname: String[20]; Firstname: String[20]; Phone: String[15]; StreetAddress: String[50]; City : String[40]; State : String[2]; ZipCode : String[10];end;
Var AddressFile : File of Address; AddressData : Address; Fname : String; RecSize, CurRec : Longint;
procedure TForm1.LoadRecord;begin
169
{Canaweris CatvirTva} Read(AddressFile, AddressData); {Canaweris gamosaxva ekranze} ShowRecord;end;
procedure TForm1.SaveRecord;begin {Canaweris kopireba ekranidan} AddressData.Lastname := Edit1.Text; AddressData.Firstname := Edit2.Text; AddressData.Phone := Edit3.Text; AddressData.StreetAddress := Edit4.Text; AddressData.City := Edit5.Text; AddressData.State := Edit6.Text; AddressData.ZipCode := Edit7.Text; {movaTavsoT Canaweri failSi}
Write (AddressFile, AddressData);end;
procedure TForm1.ClearData;begin {redaqtirebis fanjrebis gasufTaveba}
Edit1.Text := ‘ ‘;Edit2.Text := ‘ ‘;Edit3.Text := ‘ ‘;Edit4.Text := ‘ ‘;Edit5.Text := ‘ ‘;Edit6.Text := ‘ ‘;Edit7.Text := ‘ ‘;
end;
procedure TForm1.FormCreate (Sender: TObject);
170
begin {redaqtirebis fanjrebis gasufTaveba} ClearData; {Clear Current Record Counter} CurRec := 0; {davayenoT failis saxeli}
Fname := ‘ADDRESS.DAT’; {davniSnoT failuri cvladi};
AssignFile (AddressFile, Fname); {miviRoT Canaweris zoma} RecSize := SizeOf (AddressData); {Tu faili arsebobs, igi CavtvirToT}
If FileExists (Fname) thenBegin Reset (AddressFile); If not Eof (AddressFile) then begin Read (AddressFile, AddressData); ShowRecord; end;end
{winaaRmdeg SemTxvevaSi SevqmnaT igi} else begin ClearData; Rewrite (AddressFile); end;end;
procedure TForm1.NewClick (Sender: TObject);begin repeat
171
CurRec := CurRec + 1; Seek (AddressFile, CurRec);until Eof (AddressFile); {gavasufTaoT redaqtirebis fanjara} ClearData; {SevqmnaT axali Canaweri}
SaveRecord; {failis maCvenebeli gadavaadgiloT mimdinare
Canawerze}
Seek (AddressFile, CurRec);end;
procedure TForm1.PreviousClick (Sender: TObject);begin If CuRec-1 < 0 thenbegin {Tu mivediT failis dasawyisTan, gadavideT pirvel
CanawerTan da gamovceT Setyobineba}
CurRec := 0; Seek (AddressFile, CurRec); ShowMessage (‘es failis dasawyisia’)
end {winaaRmdeg SemTxvevaSi davbrundeT erTi CanaweriT
ukan da da gamovsaxoT ekranze}
elsebegin CurRec := CurRec – 1; Seek (AddressFile, CurRec); Read (AddressFile, AddressData); Seek (AddressFile, CurRec); ShowRecord; end;end;
172
procedure TForm1.NextClick (Sender: TObject);begin {gadavadgildeT Semdeg Canawerze}
CurRec := CurRec + 1;Seek (AddressFile, CurRec);{Tu ar aris failis dasasruli, wavikiTxoT da
gamovsaxoT Canaweri}
If not Eof (AddressFile) thenbegin Read (AddressFile, AddressData); Seek (AddressFile, CurRec); ShowRecord;end{Tu miRweulia failis dasasruli, davubrundeT bolo
Canawers da gamovceT Setyobineba)
elsebegin CurRec := CurRec – 1; Seek (AddressFile, CurRec); ShowMessage (‘es failis dasasrulia’);
end;end;
procedure TForm1. ShowRecord;begin {gadavakopiroT faili redaqtirebisaTvis}
Form1.Edit1.Text := AddressData.Lastname; Form1.Edit2.Text := AddressData.Firstname; Form1.Edit3.Text := AddressData.Phone; Form1.Edit4.Text := AddressData.StreetAddress; Form1.Edit5.Text := AddressData.City; Form1.Edit6.Text := AddressData.State;
173
Form1.Edit7.Text := AddressData.ZipCode;end;
procedure TForm1.SaveClick (Sender: Tobject);begin {SevinaxoT Canaweri} SaveRecord; {gamovsaxoT Canaweri redaqtirebis fanjaraSi} ShowRecord;end;
procedure Tform1.CloseClick (Sender: TObject);begin {SevinaxoT mimdinare Canaweri} SaveRecord; {davxuroT faili}
CloseFile (AddressFile); {gamosvla danarTidan}
Application.Terminate;end;
end.
es programa qmnis ADDRESS.DAT fails, momxmarebli-
sagan iRebs monacemebs da inaxavs am failSi Canaweris
formiT. `axali~ Rilakis kodi asufTavebs Semavali
monacemebis vels da axali Canaweris Setanis saSualebas
iZleva. ̀ Senaxva~ Rilaki Cawers am monacemebs ADDRESS.DATfailSi. `wina~ da `momdevno~ Rilakebi wina da momdevno
Canawerze gadaadgilebis saSualebas iZleva. `daxurva~
Rilaki danarTidan gamosvlis saSualebas iZleva.
174
exla SegviZlia danarTis testireba gavakeToT.
SevitanoT monacemebi da davaWiroT ̀ Senaxva~ Rilaks, Semdegi
Canaweris Sesatanad vaWerT ̀ axali~ Rilaks, redaqtirebis
fanjrebi gasufTavdeba da momzaddeba axali Canaweris
Sesatanad. danarTis momdevno gaSvebisas danarTi TiTon
ipovis ADDRESS.DAT fails da gamoitans mis pirvel
Canawers ekranze.
SevqmnaT forma `standartuli~ gverdis Rilakebis
gamoyenebiT:
175
unit gilakebi;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, Menus, StdCtrls, ExtCtrls;
type TForm1 = class(TForm) Memo1: TMemo; RadioGroup1: TRadioGroup; RadioButton1: TRadioButton; RadioButton2: TRadioButton; CheckBox1: TCheckBox; CheckBox2: TCheckBox; ComboBox1: TComboBox; Button1: TButton; MainMenu1: TMainMenu; N1: TMenuItem; File1: TMenuItem; procedure RadioGroup1Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure RadioButton1Click(Sender: TObject); procedure RadioButton2Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure File1Click(Sender: TObject); private { Private declarations }
176
public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.RadioGroup1Click(Sender: TObject);beginif radiogroup1.itemindex=0 then form1.Color:=clsilver;if radiogroup1.itemindex=1 then form1.Color:=clblue;if radiogroup1.itemindex=2 then form1.Color:=clyellow;if radiogroup1.itemindex=3 then form1.Color:=clred;end;
procedure TForm1.CheckBox1Click(Sender: TObject);beginif checkbox1.state=cbchecked then form1.Font.Style:=[fsitalic] else form1.Font.Style := [];end;
procedure TForm1.CheckBox2Click(Sender: TObject);beginif checkbox2.state=cbchecked then form1.Font.Style := [fsbold] else
177
form1.Font.Style:=[];end;
procedure TForm1.Button1Click(Sender: TObject);beginmemo1.Clear;end;
procedure TForm1.RadioButton1Click(Sender: TObject);beginif radiobutton1.Checked then memo1.Color := clwhite;end;
procedure TForm1.RadioButton2Click(Sender: TObject);beginif radiobutton2.Checked then memo1.Color := claqua;end;
procedure TForm1.ComboBox1Change(Sender: TObject);beginif combobox1.ItemIndex=0 then memo1.Font.Name:='arial';if combobox1.ItemIndex=1 then memo1.Font.Name:='Litnusx'; if combobox1.ItemIndex=2 then memo1.Font.Name:='Litmtavrps';end;
178
menius Sesadgenad formaze davsvaT Main Menu Rilaki,
masze orjer davawkapunoT, gamosul formaze
moniSnuli Rilakis Caption TvisebaSi CavweroT File,Tu gvinda, rom misi pirveli simbolo iyos xazgasmuli,
CavweroT &File, movniSnoT Semdegi Rilaki da Caption-Si CavweroT &Help. meniu File-s brZanebebis SesadgenaddavawkapunoT masze da gamosuli Rilakis Caption-SiCavweroT Exit da a.S.forma miiRebs Semdeg saxes:
procedure TForm1.File1Click(Sender: TObject);beginapplication.Terminate;end;
end.
179
grafikuli elementebi
magaliTSi gamoyenebulia piqselebis Tviseba, sinusoidis
asagebad. formaze aris erTaderTi Rilaki, masze daWerisas
daixazeba sinusoida.
180
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
const pi=3.14159;
181
var X : real; Y : real; PX : longint; PY : longint; HalfHeight : Longint;
begin HalfHeight := form1.Height div 2; for PX := 0 to form1.Width do
begin X := PX*(2*PI/Form1.Width); Y := sin(X); PY := trunc(0.7 * Y * Halfheight) + HalfHeight; Canvas.Pixels[PX,PY] := 0; end;
end;end.
182
wrfeebis daxazva.
erTi wertilidan meoreSi wrfeebis gasavlebad
gamoiyeneba LineTo meTodi, romelic moiTxovs mxolod
saboloo wertilis koordinatas Cvenebas da daivleba
xazi mimdinare wertilidan naCveneb poziciamde.
183
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
const Pi=3.14159;
184
var X : real; Y : real; PX : Longint; PY : Longint; Offset : Longint; HalfHeight : Longint;
begin HalfHeight := Form1.Height div 2; for Offset := -10 To 10 do begin PX := 0; While PX < Form1.Width do BEGIN X := PX * (2 * PI/Form1.Width); Y := SIN(X); PY := Trunc(0.7 * Y * HalfHeight) + HalfHeight
+(Offset*10); IF (PX = 0) Then canvas.LineTo(PX, PY); PY := trunc(0.7 * Y * HalfHeight) + HalfHeight + ((Offset-1) * 10); canvas.LineTo(PX,PY); PX := PX + 15; end; end;
185
martivi animacia Mode Tvisebis gamoyenebiT.
programa, dasawyisSi kalmis pmCopy da feris clRedreJimis gamoyenebiT xatavs wiTeli feris fanjaras, Semdeg
ki gadaaadgilebs samkuTxeds fanjris gavliT, risTvisac
iyenebs kalmis pmNotXor reJims. es saWiroa imisaTvis,rom TiToeul poziciaSi orjer daixatos samkuTxedi.
pirvelad samkuTxedi daixazeba, xolo meored waiSleba.
186
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Button1 : TButton; procedure Button1Click(Sender : TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender : TObject);var count : integer; pause : real;
begin
187
form1.Canvas.Pen.Mode := pmcopy; form1.Canvas.Pen.Color := clRed; form1.Canvas.PolyLine([point(50,10), point(100, 10), point(100, 200), point(50, 200), point(50, 10)]); form1.Canvas.Pen.Color := clBlue; form1.Canvas.Pen.Mode := pmNotXor; For count := 0 to (form1.Width div 5) do begin
Form1.Canvas.Polyline([point(Count * 5, 100), point(Count * 5 + 10, 100), point(Count * 5 + 5, 110), point(Count * 5, 100)]); Pause := Time; while (Time-Pause) < 1e-12 do; Form1.Canvas.Polyline([point(Count * 5, 100), point(Count * 5 + 10, 100), point(Count * 5 + 5, 110), point(Count * 5, 100)]);
end; end;
end.
188
ganvixiloT magaliTi.
danarTi, romelic `probelebs~ gardaqmnis
` mZimeebad~.
unit Sp2cma;
interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, dialogs, Menus, StdCtrls;
Type TForm1 = Class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; OpenDialog1: TOpenDialog; Edit1: TEdit; Label1: Tlabel; procedure Butto2Click (Sender: Tobject); procedure Butto1Click (Sender: Tobject); procedure Butto3Click (Sender: Tobject);private{private declarations}public{public declarations}end;
var Form1: TForm1;
implementation
189
var
Fname: String; {SR * DFM}
procedure TForm1.Button2Click(Sender: TObject);
var InFile: File; FBuffer : Array [0..1023] of Byte; FPointer : Longint; ButesRead : Integer; X: Integer;
begin
AssignFile(InFile,Fname); Reset(InFile,1); While Not Eof (InFile) do begin FPointer := FilePos(InFile); BlockRead (InFile, FBuffer, SizeOf(FBuffer), BytesRead); For x:=0 to BytesRead-1 do begin If FBuffer[x]=32 then Fbuffer[x] := 44;
end;
Seek(InFile, FPointer);BlockWrite(InFile, FBuffer, BytesRead);end;
CloseFile(InFile);ShowMessage( ‘procesi dasrulebulia!’);
end;
190
procedure TForm1.Button1Click(Sender: TObject);begin
OpenDialog1.FileName:=’*.*’; if OpenDialog1.Execute then Fname:= OpenDialog1.FileName; Edit1.Text:=Fname; Edit1.Visible:=True; Label1.Visible:=True;end;
procedure TForm1.Button3Click(Sender: TObject);
begin Application.Terminate;
end;end.
191
sarCevi
Turbo PascalSesavali ............................................................................................................................... 3
funqcionaluri Rilakebi ......................................................................................... 4
pirveli programa .......................................................................................................... 4
monacemTa tipebi ............................................................................................................ 9
monacemTa tipebis gardaqmna da maTze moqmedebebi ................................... 12
Sedgenili da carieli operatori ................................................................... 15
pirobis operatori ...................................................................................................... 21
FOR – TO cikli ............................................................................................................ 26
WHILE – DO cikli ..................................................................................................... 29
REPEAT – UNTIL cikli ............................................................................................. 31
amorCevis operatori ................................................................................................. 34
Wde da gadasvlis operatori .............................................................................. 39
masivis tipi .................................................................................................................... 41
simravlis tipi ............................................................................................................ 46
striqonuli tipi ....................................................................................................... 50
Object PascalCanawerebi .......................................................................................................................... 56
tipizebuli mudmiva .................................................................................................. 64
CamoTvliTi tipi ......................................................................................................... 65
variantis tipi ............................................................................................................. 66
192
moduli........................................................................................................110
formebi........................................................................................................115
formebisa da komponentebis Tvisebebi ..............................115
Delphi-is martivi danari.................................................................115kodis redaqtoris fanjara.........................................................119
obieqtebis inspeqtori....................................................................120
Delphi-is menius struqtura........................................................123obieqtur-orientirebuli daproeqteba...............................136
Delphi-is danarTi..................................................................................138proeqtis magaliTi.............................................................................142
Delphi
ganStoeba......................................................................................................67
Goto...................................................................................68 Break..............................................................................69 Continue..........................................................................70 Exit..................................................................................71 Halt..................................................................................72 RunError..........................................................................72failis tipi..............................................................................................73
procedurebi da funqciebi failebTan muSaobisaTvis.......75
procedurebi da funqciebi teqsturi failebisaTvis78
procedurebi da funqciebi tipizebuli da aratipize-
buli failebis damuSavebisaTvis....................................................82
procedurebi..............................................................................................83
funqciebi......................................................................................................87
standartuli qveprogramebi...........................................................89
ariTmetikuli funqciebi...................................................................90
gardaqmnis funqciebi............................................................................92
sxva funqciebi..........................................................................................94
teqsturi da grafikuli reJimebi.............................................96
193
redaqtoris gamoyenebis magaliTi..............................................148
programis marTvis damatebiTi brZanebebi...........................152
komponentebis Tvisebebi.....................................................................153
xdomilobebi...............................................................................................155
meTodebi.........................................................................................................155
komponentebis gverdi standartuli........................................156
teqsturi failis demonstrirebis magaliTi...................158
tipizebuli faili................................................................................162
proeqtis magaliTi................................................................................165
grafikuli elementebi delfSi..................................................179
194
literatura
1. v. v. faronovi, TurboPascal, sawyisi kursi, saswavlo
saxelmZRvanelo, 1997w. moskovi.
2. d. ouzer, s. grobman, s, batson Delphi, moskovi, 2001weli.
3. Booch G. Object-Oriented Design with Applications. Calif.,1990.
4. Coad P., Yourdan E. Object-Oriented Analysis. Prentice-Hall,1991
5. Jacobson I. Object Oriented Software Engineering. AddisonWesley, 1992
6. g. surgulaZe daprogramebis meTodebi, Tbilisi 1997w.
195
196