saqartvelos teqnikuri universiteti

Size: px
Start display at page:

Download "saqartvelos teqnikuri universiteti"

Transcription

1 saqartvelos teqnikuri universiteti g. janelize daprogramebis safuzvlebi damtkicebulia stu-s saswavlo-metoduri sabwos mier Tbilisi 2002

2 uak wignsi ganxilulia daprogrameba Turbo Pascal-is, Object Pascal-is da fartod gavrcelebuli obieqturorientirebuli daprogramebis Delphi-is garemosi. wigni gatvaliswinebulia 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

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 gamzadebul dialogur 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. 3

4 funqcionaluri Rilakebi funqcionaluri Rilakebi gamoiyeneba Turbo Pascal-is garemos samartavad. F1 sacnobaro sistemis gamozaxeba; F2 programis teqstis damaxsovreba diskze; F3 diskze Cawerili failis gaxsna; F4 gamoiyeneba programis gawyobis rejimsi, programis Sesruleba 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~. 4

5 Program My_First_Program; const Text= me vaprogrameb turbo paskalze ; Writeln(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 vaprogrameb turbo 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 5

6 wertil-mzimit (;). es gamyofi turbo paskal enasi operatoris an arweris dasasruls arnisnavs. meore striqoni Const moicavs ertadert darezervebul sityvas Const, romelic arnisnavs, rom SemdgomSi erti an ramodenime konstanta iqneba arwerili (Constants-konstantebi), enasi konstantebad itvleba 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. 6 Text = me vaprogrameb turbo paskalze ; sadac konstanta _ Text-s miniwebuli aqvs me vaprogrameb turbo paskalze simboloebis striqoni. turbo paskalsi SeiZleba gamoviyenot sxvadasxva ti pis 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 kompilators 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. misi sruli saxelia WriteLine _ daweret striqoni. parametrebi proceduras 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: 7

8 identifikatori SeiZleba Sedgebodes latinuri anbanis asoebisagan, cifrebisagan, xazgasmis nisnisagan. danarceni simboloebi identifikatorsi dausvebelia. identifikatori ar SeiZleba cifrit iwyebodes. identifikatori ar unda emtxveodes arc ert 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. nebismieri Rilakis dawerisas isev vbrundebit ZiriTad ekranze. ganxiluli programis struqturas Semdegi saxe aqvs: Program My_First_Program; 8 {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 tipebi ti pis cneba ert-erti fundamenturi cnebaa turbo paskalsi. ganvixilot monacemta Semdegi tipebi: INTEGER - mteli tipis monacemebi, Siga warmodgenasi 2 baits ikavebs. SesaZlo mnisvnelobebis diapazonia dan 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 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 Word Shortint

10 10 Integer Cardinal Longint ganvixilot monacemta tipebis arweris magaliti: Const C1 = 17; C2 = 3.14; C3 = a ; C4 = ; C5 = False; kompilatori am programis fragmentis gaanalizebisas pirvel mudmivas INTEGER-is tips miakutvnebs, meores ki REAL-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 da C4 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: Var sigma : 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, ipovos 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(..); 11

12 Semdegnairad musaobs: dasawyisi operator Write-s gamohyavs 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. Writeln da 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 tipebis 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 12

13 x := 2.0; iqneba araswori, vinaidan real tipis integer tipad gardaqmna paskalsi dausvebelia. Tumca turbo paskalsi aris monacemta ti pebis gardaqmnis sasualebebi. isini unda iqnan cxadad gamoyenebuli. monacemta gardaqmnisatvis enasi arsebobs Casmuli funqciebi, romlebic parametris saxit miirebs erti tipis mnisvnelobas, xolo abrunebs sxva tipis mnisvnelobas. kerzod, real tipis integer tipad gardaqmnisatvis 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. INTEGERis CHAR tipad gardaqmnas axorcielebs funqcia CHR. turbo paskalsi gamoiyeneba otxive aritmetikuli operacia: + -Sekreba; _ -gamokleba; * -gamravleba; / -gayofa; DIV mtelricxva gayofa. mag. Canaweri VAR N: integer; N:=1/2; 13

14 dausvebelia, vinaidan N arwerilia, rogorc mteli tipi da is ver miirebs REAL tipis mnisvnelobas. xolo Canaweri: 14 VAR X : Real; X := 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 = mod 3 = 1 Integer, Real, Char ti pis monacemebisatvis gansazrvrulia Semdegi damokidebulebis (Sedarebis) operaciebi. = tolia; < > _ ar aris toli; < _ naklebia; > _ metia; <= _ naklebi an toli; >= _ meti an toli; damokidebulebis operaciis Sedegad miireba BOOLEAN tipis 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<d sintaqsurad SecdomiT aris Cawerili, xolo sworia (a>b) and (c<d). Sedgenili enis operatorebi da carieli operatorebi. ert-erti yvelaze xsirad gamoyenebuli operatori _ miniwebis operatori ukve ganvixilet. Sedgenili operatori _ programis nebismieri operatorebis Tanmimdevrobaa, romelic Casmulia end operatorul frcxilebsi. Sedgenili operatorebi _ turbo paskalis mnisvnelovani instrumentia, romelic sasualebas izleva daiweros programa struqturuli programirebis Tanamedrove 15

16 teqnologiit (GOTO) gadasvlis operatoris garese).. end;. end;. end;.. faqtiurad, mteli operatorebis ganyofileba, romelic end sityvebit Semoifargleba, warmoadgens ert Sedgenil operators. darezervebuli sityva end operatoruli frcxilebis daxurvis macvenebelia. is ertdroulad miutitebs wina operatoris dasasruls, amitom ` ; ~ simbolos dasma end-is win ar aris aucilebeli. endis win ` ; ~ - is arseboba wina magalitsi arnisnavda, rom bolo operatorsa da operatorul frcxil end _s Soris Tavsdeba carieli operatori. carieli operatori ar Seicavs aravitar moqmedebebs, ubralod programasi emateba zedmeti wertil-mzime. ZiriTadad carieli operatori gamoiyeneba Sedgenili operatoris bolos martvis gadasacemad. 16

17 mteli tipebis sademonstracio programa: Program IntegerDemo; var Pay : Integer; OverTimePay : Integer; TotalPay : Integer; 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 = ; var Pay : Real; OverTimePay : Real; GrossPay : Real; NetPay : Real; Pay : = ; 17

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; 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. 18

19 simboluri tipis sademonstracio magaliti: Program CharDemo; var Answer : Char; Question : Char; 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 TiToeul matgans eniweba mnisvneloba, Question -s simbolo A, xolo Answer - s simbolo B. mas Semdeg roca xdeba mati mnisvnelobebis ekranze gamotana, programa Ansver cvlads aniwebs Question cvladis mnisvnelobas da piriqit. miniweba dasasvebia, radgan orive cvladebi ertnairi tipisaa. 19

20 striqonis tipis sademonstracio programa: Program StringDemo; var LastName : String; FirstName : String[4]; NewFirstName : String[30]; 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. 20

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.: var x, y, max : integer;.. if x > max then x := max else y := x;.. am fragmentis Sesrulebisas y cvladi Rebulobs x cvladis mnisvnelobas, mxolod Tu es mnisvneloba(x) max_s ar aremateba, winaarmdeg SemTxvevaSi x gaxdeba max-is toli. pirobis operatoris ELSE <operatori2> nawili 21

22 SeiZleba gamotovebul iqnas. am SemTxvevaSi igi ar Sesruldeba da martva gadaecema rigit momdevno operators. var x, y, max : integer; 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 Seesabameba mastan zemodan uaxloesi - then. ganvixilot magaliti: 22 var a,b,c,d : integer; a:=1; b:=2; c:=3; d:=4; IF a>b then IF c<d then IF c<0 then c:=0 else a:=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; 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 ti pis 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 -is mnisvneloba, xolo winaarmdeg SemTxvevaSi, Tu Y Ymeti armocndeba X -ze, Max -s mieniweba Y-is mnisvneloba. Endis win gamoyenebuli Readln nisnavs, rom ekranze, Sedegi nacvenebi iqneba manam, sanam ar davawert Enter Rilaks. 23

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. 24

25 If...Then...Else operatoris gamoyenebis martivi programa: Program IfDemo; var UserInput : Integer; 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. 25

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). 26

27 var I, N, S : integer; {cvladebi} 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 27

28 for I := -1 downto N do S := S+I; ganvixilot magaliti, romelic amobewdavs N-dan 1-mde yvela naturalur ricxvs. Var I, N : integer; {cvladebi} Write( N= ); Readln(N); {Segvaqvs N} FOR I:= N DOWNTO 1 DO Write(I : 4); Readln; end. ganxilul programasi gamoyenebulia FOR - DOWNTO cikli, radgan ciklis parametri (-1)-iT unda Seicvalos. gamotanis operatori Write(I : 4), nisnavs, rom I-is yoveli momdevno mnisvnelobis gamotana moxdeba imave striqonze, amave dros yoveli momdevno I ekranze daibewdeba wina mnisvnelobidan meotxe poziciaze. 28

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; Writeln( n= ); Readln(n); i := 1; While i <= n do Writeln (i); i := i + 2; end; Readln; end. 29

30 WHILE DO ciklsi ciklis parametri, Cvens SemTxvevaSi 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; Writeln( n= ); Readln(n); i := 2; s := 0; While i <= n do 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). 30

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: var i, n : integer; Writeln( n = ); Readln(n); i := 2; Repeat Writeln (i); i := i + 2; Until i > n; End. 31

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; For Count := 1 to 10 do Writeln ( gamarjobat! ); Writeln( programis dasrulebisatvis daawiret Enter-s ); Readln; end. programa atjer gamoitans sityvas `gamarjobat~. 32

33 Program WhileDoDemo; Var I : Char; I := ; While (I < > q ) and (I < > Q ) Do Write ( SeitaneT simbolo (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; Repeat Write ( SeitaneT simbolo (programis dasrulebisatvis SeitaneT q an Q) : ); Readln(I); Until (I = q ) or (I = Q ) ; 33

34 Writeln ( programis dasrulebisatvis daawiret Enter-s ); Readln; end. 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 STRING tipisa). 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 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 34

35 amorcevis gasarebis mnisvnelobas, masin martva gadaecema ELSE-s Semdgom operators. 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 Setanisas sityvas `ara~. mag.: Var ch : char; readln(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. 35

36 ganvixilot programa amorcevis operatoris gamoyenebit: Program CaseDemo; var UserIn : Char; Writeln ( SeitaneT erti simbolo da daawiret Enters ); Readln (UserIn); Case UserIn of a : Writeln ( es weriti a simboloa ); z, Z : Writeln ( es weriti an bewdviti z simboloa ) else Writeln ( es simbolo gansxvavebulia a, z, Z - sagan ); end; Writeln ( programis dasrulebisatvis daawiret Enters ); 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. 36

37 Program calc; Var Operacion : char; X, Y, Z : Real; stop : boolean; 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. 37

38 programa Setanili mimdinare TariRis mixedvit gamoitans momdevno dris TariRs(ricxvs, Tves da wels); Program callendar; var month, day, year, nom : integer; 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 day := 1; month := succ (month); end else day := day + 1; 38

39 4, 6, 9, 11 : if day = 30 then day := 1; month:= succ(month); end else day := day + 1; 12 : if day = 31 then 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 day := 1; month := succ(month); end else day := day + 1; end; Writeln (month); Writeln (day); Writeln (year); Readln; end. 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 39

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; goto Lb1; Loop : Lb1 : Lb2 :. goto Lb2; 40

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 tipi. masivis ti pi miekutvneba rtuli ti pis monacemebs. rtuli ti pis 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; 41

42 E : ARRAY[COLOR] OF REAL; A masivi aris namdvili ti pi, 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 tipit COLOR. misi komponentebi gamoiyurebian Semdegnairad: E[RED], E[BLUE]; E[BLACK]. masivis elementebis Setana da gamotana SeiZleba mxolod TiToeuli elementis saxit, ganvixilot masivis Setanagamotanis 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*); Readln; Write( XS=> ); For I:=1 to 6 do Read(XS[I]); 42

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 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 43

44 A : Array[1..N] of Integer; I, S : Integer; 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 do 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. 44

45 Program.; const N = 10; var K, I : Integer; M : Array[1..N] of Integer; 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; 45

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 ti pis 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 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 ; digit = set of 0..9; 46

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 ti pi, 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 47

48 gansxvavebul elementebs. 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, Tu simravleebi araeqvivalenturia. <= simravleta Sedareba. Sedegia TRUE, Tu meore simravle 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. 48

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; m := [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. 49

50 striqonis ti pi STRING (striqoni) tipi fartod gamoiyeneba turbo paskalsi teqstebis dasamusaveblad. is emsgavseba ertganzomilebiani masivis simboloebs ARRAY[0..N] OF CHAR. 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] tipis gamocxadebit da SeiZleba Seicavdes 255 simbolos. turbo paskali sasualebas gvazlevs ar mivutitot N, am SemTxvevaSi striqonis 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; 50 mag.: var st : String;. 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]; 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,., Sn striqonebis 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 COUNT raodenobis simbolos gauketebs kopirebas, COPY ( Branka, 3, 4) -> anka COPY ( Branka, 5, 3) -> ka 51

52 52 COPY ( Branka, 2,1) -> r DELETE(ST, INDEX, COUNT) procedura ST striqonidan 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 SUBST qvestriqons Casvams ST striqonsi, INDEX nomridan dawyebuli. 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 striqonis im poziciis nomers, sadac napovni iqneba SecdomiTi simbolo, carieli adgili striqonsi ar unda iyos. POS (SUBST, ST) mteli tipis funqciaa, romelic ST striqonsi mozebnis SUBST qvestriqonis pirvel Sesvlas da izleva poziciis nomers, romlidanac igi iwyeba. Tu qvestriqoni ar iqneba napovni gvazlevs nuls. POS ( 23, ) -> 2 POS ( 21, ) -> 0 POS ( c, abcabc ) -> 3 UPCASE(CH) CHAR tipis funqciaa, romelsac CH simboluri gamosaxuleba gadahyavs bewdvit latinur simboloebsi. ganvixilot magaliti, romelsic gamoyenebulia ramdenime procedura da funqcia : var x : Real ; y : Integer ; st, st1 : String ; 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-53

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 TRUE mnisvnelobas: <. A > 1 Turbo < Turbo Pascal ganvixilot magaliti, romelsac simboluri gamosaxuleba gadahyavs bewdvit latinur simboloebsi. Program ; var k, ch : String; I : Integer; Readln (ch); for I := 1 to length(ch) do k[i] := Upcase(ch[I]); Write(k[I]); end; Readln; end. 54

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; 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 aris gamocxadebuli, amitom igulisxmeba, rom misi sigrzea

56 56 obieqturi paskali. (Object Pascal) Canawerebi Canaweris (RECORD) tips 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; Person.Name := Dan Osier ; Person.PhoneNumber := (916) ; 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 tipi Sesdgeba ramdenime nawilisagan. pirveli striqoni PersonalRecordType =Record ambobs, rom gamocxadebis Semdegi striqonebi Seicavs Canaweris velebs. SemdgomSi CamoTvlilia velebi (mati ti pebi). aq gvaqvs velebi: Name (gvari,saxeli) String ti pis, 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. is ucvenebs 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] of PersonalRecordType, es nisnavs, rom es masivi Sedgeba sami 57

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 : Char end; {PersonalRecordType} MyArrayType=array [1..3] of PersonRecordType; var PersonArray : MyArrayType; PersonArray[1].Name := Dan Osier ; PersonArray[1].PhoneNumber := (916) ; PersonArray[1].Age :=32; PersonArray[1].Sex := M ; 58 PersonArray[2].Name := Susie Smith ; PersonArray[2].PhoneNumber := (916) ; PersonArray[2].Age :=38; PersonArray[2].Sex := F ; PersonArray[3].Name := Pat ; PersonArray[3].PhoneNumber := (916) ; 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 tipis masivs. am saxit operatori PersonArray[3].Name := Pat, miutitebs, rom PersonArray cvladsi mesame elementis Name vels mieniwos Pat mnisvneloba. masivis ti pis Canaweris gamoyeneba mouxerxebelia,rodesac Sesatani gvaqvs didi moculobis informacia, magalitad informacia TanamSromlebis Sesaxeb. ganvixilot Canaweris tipis kidev erti magaliti: Program MyRecord2demo ; uses 59

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; 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 := ; Employee.WorkAddress.Street := 14 Big Business Road. ; Employee.WorkAddress.City := NoOzone ; Employee.WorkAddress.State := CA ; Employee.WorkAddress.ZipCode := ; 60

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 AAddressType ti pisani arian. cvladze mimartvisatvis sawiroa mietitos: cvladis saxeli (Employee), wertili, velis saxeli (HomeAddress), wertili, da radganac HomeAddress aris aseve Canaweri, mietiteba misi veli Street. gamotanis drosac mietiteba analogiuri mimdevrobit: Employee.HomeAddress.Street imisatvis, rom es Canaweri iyos ufro kompaqturi, gamoiyeneba With operatori. arnisnuli operatoris gamoyenebit programa miirebs Semdeg saxes: 61

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; With Employee do {With operatoris dasawyisi} LastName := Osier ; FirstName := don ; EmployeeNumber := 16253; end; {With Employee-s dasasruli} With Employee.HomeAddress do {with operatoris dasawyisi} Street := 1313 Your St. ; City := MyTown ; 62

63 State := Ca ; ZipCode := ; end; {with Emloyee.HomeAddress dasasruli} With Employee.WorkAddress do { with dasawyisi} Street := 14 Big Business Road. ; City := NoOzone ; State := CA ; ZipCode := ; end; {with Employee.WorkAddress dasasruli} With Employee do {with dasawyisi} Writeln(LastName); Writeln(FirstName); Writeln(EmployeeNumber); end; {with Employee dasasruli} With Employee.HomeAddress do {with dasawyisi} Writeln (Street); Writeln (City); Writeln (State); Writeln (ZipCode); end; {with Employee.HomeAddress dasasruli} With Employee.WorkAddress do {with dasawyisi} Writeln (Street); Writeln (City); Writeln (State); 63

64 Writeln (ZipCode); end; {with Employee.WorkAddress dasasruli} Readln; {fanjara rom darces gaxsnili, sanam ar davawert Enter Rilaks} end. {MyRecord3Demo} 64 tipizebuli mudmiva. ti pizebuli 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 ; ganvixilot programa,romelsic gamoyenebulia ti pizebuli mudmiva: Program TypedConstantDemo; uses Forms; const MyName : String = Dan Osier ; 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 sawyisi mnisvnelobaa Dan Osier. dasawyissi daibewdeba MyName -is mnisvneloba, imis dasadastureblad, rom tipizebuli mudmivasatvis SesaZlebelia sawyisi mnisvnelobis miniweba. Semdgom MyName mnisvneloba icvleba Jim Fisher ze da is ibewdeba. es nisnavs, rom tipizebuli mudmivas mnisvneloba SeiZleba ASeicvalos programis Sesrulebis processi. CamoTvliTi tipi. 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 ti pis gamoyenebit. Program MyEnumeratedDemo ; uses forms ; type StopLightColors = (Red, Yellow, Green) ; var MyLight : StopLightColors; 65

66 MyLight := Red; Writeln( Cemi mimdinare feria-,integer(mylight)); MyLight := Green; Writeln( axali feria,integer(mylight)); Readln;end. ganxilul programasi gvaqvs CamoTvliTi tipi StopLightColors, romelsac aqvs sami mnisvneloba: Red, Yellow, Green. 66 variantis tipi. variantis ti ps 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 ; MyInput := ; Writeln (MyInput); MyInput := gamarjobat, me mqvia Dan ;

67 Writeln (MyInput); MyInput := 4; Writeln (MyInput); Readln; end. am martiv programasi gamoyenebulia MyInput cvladi, romelic variantis tipisaa. Tavidan mas vaniwebt (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 tipizebuli enaa, magram variantis tipi gamonaklisis sasualebas izleva. ganstoeba Object Pascal-is ert-erti Tviseba aris programis ganstoeba. es aris sawiroebis SemTxvevaSi programis sxva nawilze gadasvlis SesaZlebloba. es SeiZleba ganxorcieldes sxvadasxva gzit : Goto Break Continue Exit 67

68 Goto 68 Halt RunError es operatori sasualebas izleva gadavidet programis nebismier striqonze. ganvixilot magaliti : Program GotoDemo ; Uses Forms ; var Ansver : String ; Label ThePlace ; 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 ; 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~, 69

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 Continue operatori. ProgramContinueDemo ; uses Forms ; var I : Char ; Count : Integer ; I := ; For Count :=1 to 100 Do 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 ( daawiret enter-s programis dasrulebisatvis ) ; Readln ; end. es programa cikls Seasrulbs 10-jer. ciklis SigniT Cven gvaqvs motxovna simbolos Setanaze da Setanili 70

71 simbolo motavsdeba I cvladsi. Tu davawert q~ an Q~ Rilaks, amusavdeba Continue operatori da daabrunebs martvas For ciklze, romelic For ciklsi Count cvlads daumatebs ert erteuls da gaagrzelebs Semdeg iteracias. Exit Exit operatori gamoiyeneba programis mimdinare blokidan gamosasvlelad. Tu es bloki aris ZiriTadi programa, masin Exit operatori wyvets mis musaobas, Tu mimdinare blokia CarTuli, masin Exit operatori gadascems martvas 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 ; Repeat Write ( SeitaneT simbolo Q musaobis damtavrebisatvis) ; Readln (I) If I= Q then Exit ; Until FALSE ; Writeln ( es operatori arasodes ar sruldeba ) ; end. es programa qmnis usasrulo cikls, romelic mtavrdeba 71

72 Until False operatorit. ciklis damtavrebisatvis unda SevitanoT Q~ simbolo, am SemTxvevaSi amoqmeddeba Exit operatori. Halt Halt operatori programis Sesrulebis Sewyvetis sasualebas izleva. es operatori SeiZleba gamoviyenot Zalian aucileblobis SemTxvevaSi. RunError Program HaltDemo ; uses Forms ; var I : Char ; Repeat Write ( dasrulebisatvis daawiret Q s ) ; Readln (I) ; If I= Q then Halt ; Until FALSE ; Writeln ( es operatori arasodes ar Sesruldeba ) ; end. programis nebismier adgilas Cven SegviZlia SevasruloT brzaneba RunError, mteli tipis parametrit. es Sewyvets programis musaobas da gamoitans ricxvs rogorc Secdomis nomers, romelic iwvevs Sewyvetas. 72

73 Program RunErrorDemo ; uses Forms ; var I : Char ; 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 tipi ganxiluli monacemebis ti pebisatvis 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 tipis elementebis nebismier mimdevreobas, Tanac am mimdevrobis sigrze winaswar ganusazrvrelia da igi 73

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 - misi elementebi. 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: 74 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 ti pi,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.com paper.chi autoexec.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 tipizebuli da arati pizebuli 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 75

76 informacia anu isini warmoadgenen failidan wakitxuli informaciis wyaroebs. roca kavsiri gare failtan damyarebulia, Setanagamotanis 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 RESET procedurit, misawvdomia mxolod wasakitxad, xolo teqsturi failebi, romlebic gaxsnilni arian REWRITE procedurit,misawvdomia mxolod Casawerad,ti pizirebuli 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: 76

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. 77

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. INPUT misawvdomia 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, ise TiTqos yofiliyos Sesrulebuli Semdegi operatorebi: 78

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, imis mixedvit 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 mesveobit da gaixsnas Reset, Rewrite an Append procedurebit. Tu gamotanaze orientirebuli proceduris an funqciisatvis ucvenebt fails, romelic gaxsnili iyo Reset procedurit, 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 79

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, aqedan ertsi Setanilia ricxvebi 2-dan 5-mde, meoresi ki Sesabamisad mati faqtorialebi, programa kitxulobs monacemebs failebidan da gamoaqvs ekranze: 80 Program FileDemo; var X, Y : Integer; F1, F2 : File Of Integer; 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; 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. 81

82 mdgomareobas (End_of_File); 82 tipizebuli da aratipizebuli failebi. procedurebi da funqciebi tipizebuli da aratipizebuli 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 arati pizebuli faili ariwereba sityvit File, atributebis garese. mag., var datefile : file; aratipizebuli failebisatvis Reset da Rewrite procedurebsi 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 Write procedurebisa. 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 ; 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 ; 83

84 Writeln ( ) ; end ; Procedure DoHorizontals; Writeln ( ) ; end ; 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 misi unikaluri saxelisagan, Cvens SemTxvevaSi es aris DoVerticals, DoHorizontals. procedura aris miniprograma da igive formati aqvs, rac Cveulebriv programas. satauris Semdeg SeiZleba gvqondes const, var da a.s. amis Semdeg modis Sesasrulebeli nawili end. proceduris gamozaxeba xdeba 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. 84

85 DoHorizontals procedura For Do ciklis gamoyenebit : Procedure DoHorizontals (HowManyTimes : Integer) ; var Count : Integer ; 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. DoHorizontals proceduras aqvs mteli tipis cvladi HowManyTimes, romelic gamoiyeneba proceduris SigniT. mocemul SemTxvevaSi proceduras DoHorizontals ver gamovizaxebt mxolod 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 ; 85

86 for Count := 1 to HowManyTimes do Writeln( ) ; end ; {DoHorizontals proceduris dasasruli} ; Writeln ( ramdeni horizontaluri xazis dabewdva gnebavt? ) ; Readln (Number) ; DoHorizontals (Number) ; Writeln ( daawiret enter-s programis dasrulebisatvis ) ; Readln ; end. rodesac es programa DoHorizontals izaxebs, proceduras gadaecema Number cvladi. es cvladi faqtiuri parametria. Number-is Semcveloba gadakopirdeba DoHorizontals procedurasi da motavsdeba HowManyTimes cvladsi. 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) ; 86

87 Writeln ( Number-is raodenoba udris,number) ; Writeln( String striqoni udris,stuff) ; end ; {Procedure Junk} ; 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 87

88 UserInput : Integer ; Write( SeitaneT ricxvi, romlis kvadratsi ayvana gsurt ) ; Readln (UserInput) ; Writeln (UserInput, kvadratsi tolia, Sqr (UserInput)) ; Writeln ( daawiret enter-s programis 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. 88 ganvixilot funqciis sademonstracio magaliti : Program FunctionDemo ; uses Forms ; Function Square (TheInput : Integer) : Integer ; Square := TheInput * TheInput ; end ; var UserInput : Integer ; 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 sintaqsi: DDelay Delay (Time) Time mteli tipis gamosaxulebaa. Pprocedura Delay Sewyvets programis Sesrulebas 89

90 Time miliwamis ganmavlobasi. Tu Time-s aqvs uaryofiti mnisvneloba, itvleba, rom mas aqvs mnisvneloba_0. Pprocedura: Randomize sintaqsi: Randomize procedura Randomize uparametroa. Ees procedura SemTxveviTi ricxvebis generatorsi daayenebs SemTxveviT dawyebit mnisvnelobas. Ffunqcia abs sintaqsi: abs(num) aritmetikuli funqciebi 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)= funqcia ArcTan sintaqsi: 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)= F funqcia Cos sintaqsi: Cos( Num) Num aris real an integer-is ti pis gamosaxuleba. Ffunqcia 90

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 ti pis 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)= 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)= F 91

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.0 F funqcia Sqr sintaqsi: Sqr(Num) Num - real an integer-is tipis gamosaxulebaa. Ffunqcia Sqr gvazlevs Num-is kvadratsi ayvanis Sedegad mirebul mnisvnelobas. Mmag: Sqr(2)=4 Sqr(2.0)=4.0 F funqcia Sqrt sintaqsi: 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 Odd sintaqsi: Odd(Num) Num mteli tipis gamosaxulebaa. Ffunqcia Odd gvazlevs Boolean tipis mnisvnelobas,tu Num aris kenti ricxvi, masin funqciis mnisvneloba aris True, winaarmdeg SemTxvevaSi false. Mmag: Odd(3)=true Odd(4)=false 92

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 Succ sintaqsi : Succ(Num) Num nebismieri martivi tipis gamosaxulebaa. Ffunqcia Succ gvazlevs Num-is momdevno mnisvnelobas. Mmag: Succ(false)=true Succ(0)=1 F funqcia Chr sintaqsi: Chr(Num) Num mteli tipis gamosaxulebaa. Ffunqcia Chr gvazlevs Char tipis gamosaxulebas,romlis kodi mocemulia Num gamosaxulebit. Mmag: Chr(65)= A Chr(27)=^[ funqcia Ord sintaqsi: 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 93

94 ricxvamde. mag: Round(5.5)=6 Round(-1.5)=-2 funqcia Trunc sintaqsi: 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 Include sintaqsi: Include(m, i) - m-s gazrdis i erteulit. mag. Include (m, 2) - eqvivalenturia m := m + 2 Canawerisa. funqcia Exclude saintaqsi: Exclude(m, i) - m-s Seamcirebs i erteulit. M mag. Exclude(m, 2) - eqvivalenturia m := m - 2 Canawerisa. 94 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. 95

96 96 procedurebi da funqciebi teqsturi rejimisatvis teqstur rejimsi gasvlisatvis sawiroa Sesruldes procedura: TextMode procedura TextMode sintaqsi: TextMode (BW40) TextMode(C40) TextMode(BW80) TextMode(C80) TextMode BW40, C40, BW80 da C80 mteli tipis konstantebis saxelebia, romelta mnisvneloba Sesabamisad udris 0, 1, 2 da 3. TextMode procedura BW40 parametrit 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 moatavsebs kursors 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 Window sasualebas izleva ganvsazrvrot ekranis romel adgilas aris fanjara. Aam fanjarasi Cawera igivea, rogorc mtel 97

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 sxvadasxva Sefardeba,xazis ti pebi 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: 98

99 1. Program GraphTest; 2. Uses 3. Graph; 4. Var 5. GraphDriver : Integer; 6. GraphMode : Integer; 7. ErrorCode : Integer; 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; 99

100 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 gansazrvravs romeli grafikuli draiveri da rejimi unda iqnas gamoyenebuli. procedura Ellipse xatavs elifss sawyisi kutxidan saboloo 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, mimdinare xazis tipisa da feris gamoyenebit. sintaqsi: DrawPoly (koordinatebis raodenoba: Word; wveroebis koordinatebi); 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 101

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 gamosaxvis elementis fers. funqcia GetX - gvazlevs mimdinare poziciis X koordinatas. funqcia GetY - gvazlevs mimdinare poziciis Y koordinats. 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 gamotanis mowyobilobaze, dawyebuli mimdinare macveneblidan. procedura OutTextXY - striqons agzavnis gamotanis mowyobilobaze. procedura PieSlice - xatavs seqtors, (X,Y) aris centri, seqtori ixateba sawyisi kutxidan saboloo kutxemde. 102

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 martkutxeds (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 sawyis rejims, romelic dayenebuli iyo grafikis inicializaciamde. aradgens sawyis videorejims, romelic Seiqmna InitGraph procedurit. es procedura SeiZleba gamoyenebul iqnes procedura 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 103

104 grafikul rejimsi da wmends ekrans. procedura SetLineStyle - daayenebs xazis mimdinare tips da mis sisqes. sintaqsi: SetLineStyle (striqonis tipi: word; nimusi: word; sisqe: word); xazis ti pebi: 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) gamoiyeneba striqonebs Soris intervalis gansazrvrisatvis. funqcia: TextWidth gvazlevs striqonis siganes gamosaxvis elementebsi. sintaqsi: TextWidth (teqsti-striqoni: string); es sasargebloa gamoviyenot striqonebs Soris intervalis gamotvlisas. 104 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 procedurit miireba monotonuri xmis signali Num herci sixsiris. procedura: NoSound sintaqsi: NoSound am procedurit Sewydeba xma, romelic mirebulia Sound procedurit. mag: program Note 400; Begin Sound (400); Delay(2000); NoSound; end. es programa gamoizaxebs 400 herci sixsiris xmovan signals, romelic grzeldeba 2 wamis ganmavlobasi. procedura Delay (miliwm : word) aketebs dayovnebas miliwamis ganmavlobasi. 105

106 programas, turbo paskalis teqsturi rejimis gamoyenebit, gamoaqvs teqsti ekranis sxvadasxva adgilas, fonisa da simboloebis feris SerCeviT. U Uses crt; Clrscr; Textcolor (Red); Textbackground (Green); Writeln ( Izabela ); GotoXY(5, 10); Textcolor (Magenta); Textbackground (Blue); Writeln ( Justina ); GotoXY(10, 20); Textcolor (Yellow); Textbackground (red); Writeln ( Meison ); Readln; end. 106

107 programa teqstur rejimsi xsnis fanjaras: Uses Crt; Var K : Integer; 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. 107

108 programa agebs naxazs grafikuli rejimis gamoyenebit: Program GraphDemo; Uses Crt, Graph; Var i, j, k, Graphdriver, GraphMode : Integer; Xa, Ya : Word; Clrscr; GraphDriver := detect; InitGraph (GraphDriver, GraphMode, ); For i := 1 To GetmaxX Do For j := 1 To GetmaxY Do Putpixel (i, j, 5); Setcolor (4); SetlineStyle (SolidLn, 0, thickwidth); For i := 1 To 200 Do Circle(GetmaxX div 2, GetmaxY div 2, i); Setcolor(10); For i := 1 To 100 Do Arc (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; 108

109 Repeat Ellipse (i, j, 0, 360, 60, 40); i := i + 20; j := j + 20 Until j = 300; For k := 1 To 10 Do Sound (100 * k +k * 200); delay (500); nosound; end; Repeat until keypressed; Closegraph; end. programa gamoscems sxvadasxva sixsiris musikalur signals: Program MusicDemo; Var I : Integer; For I := 1 To 10 Do Sound (I * 200); Delay (5000); Nosound; end; For I := 10 Downto 1 Do Sound (I * 200); DDelay (5000); Nosound; end; end. 109

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 enas daamata 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 ; procedure SayHello ; Seiqmnas fanjara ; davwerot fanjarasi ~gamarjoba~; gavanadgurot fanjara; end ; procedure SayBye ; Seiqmnas fanjara ; davwerot fanjarasi ~naxvamdis~; gavanadgurot fanjara; end ; 110

111 procedure SayNothing; 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 proeqtsi arnisnuli procedurebis gamoyeneba, unda davwerot : Use SayStyff. modulis formati : UUnit YourNameHere ; interface uses const type var procedure function implementation uses Label const type var procedure function 111

112 112 initialization {araaucilebeli ganyofileba}.. end ; finalization {araaucilebeli ganyofileba}. 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 ; implementation Function AddTwoNumbers (One, Two : Integer) : Integer ; AddTwoNumbers := One + Two ; end ; Function SubtractTwoNumbers (One, Two : Integer) : Integer ; SubtractTwoNumbers := One Two ; end ; Function SubtractTwoNumbers (One, Two : Integer) : Integer ; SubtractTwoNumbers := One Two ; 113

114 end ; procedure PositiveKarma ; 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 ; 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 114

115 funqcias oyenebs, es aris AddTwoNumbers. arnisnuli modulis Cvens proeqtsi Casamateblad sawiroa Sesruldes Semdegi brzaneba : View -> Project Manager da vawert Add Rilaks. forma delfis nebismieri danartis safuzveli aris forma. es aris isetive fanjara,rogorsac vxedavt Windows Si. formaze unda gantavsdes yvela komponentebi. forma SeiZleba iyos sxvadasxva ti pis. 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 115

116 dasataurebulia FORM1 it, Tu es ar Sesrulda, avirciot meniusi : File -> New Application ; 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 da end striqonebs Soris ; 7. davwerot striqoni : Canvas.TextOut (20, 20, programireba delfsi Zalian martivia ) ; 8. Cven SevqmeniT Cveni pirveli danarti, kompilaciisa da SesrulebisaTvis vawert F9 Rilaks 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,ristvisac fanjris 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: 116

117 formas aqvs igive Tvisebebi, rogorc Windows is yvela fanjaras. igi Semdegnairad gamoiyureba : 117

118 programis Sesrulebaze gasvebis Semdeg danarti Semdeg saxes miirebs: Button1-ze dawkapunebis Semdeg danarti Semdegnairad gamoiyureba: 118

119 komponentebis palitra komponentebis palitra - es aris vizualuri komponentebi, 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) 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 Modified sityva. mesamea Casmis rejimis indikatori (Insert), romelic ucvenebs Setanili simbolo win Caematos Tu ara. 119

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. 120

121 magalitad Tu movnisnet forma, obieqtebis inspeqtorsi davinaxavt Font Tvisebas da plus nisans mis Semdeg. Tu orjer davawkapunebt Font (Srifti) Tvisebaze, masin gaixsneba iseti Tvisebebis cxrili rogoricaa Color (feri), Height (simarle), Name (saxeli) da a. S. aseti formati xilvadi, martivi da efeqturia obieqtis atributebis Secvlisas. 121

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. 122

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 123

124 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 Unit am 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. Print 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 125

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 126

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 127

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. 128

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 129

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 sasualebas izleva davakvirdet obieqtebis memkvidreobitobisa da urtiertkavsiris models. 130 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 komponenti motavsdeba 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 131

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. 132 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 133

134 es programa kompilacias uketebs yvela komponents, formas, moduls imisagan damoukideblad Seicvalnen Tu ara isini. 134 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 135

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.obieqturorientirebuli 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. 136

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-Si vqmnit 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 ti pis saxels (TForm1) da Semdeg bazur klass, saidanac igi warmoisveba. yvela obieqti unda iyos warmosvebuli TObject-sagan an ert-erti misi STamomavlobisagan. public nawilsi aris gamocxadeba, romelic misawvdomia 137

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. 138 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 paketebtan musaobisas. 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) - es aris 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. -Si: Windows-is sxva failebi,romlebic gamoiyenebian Delphi 139

140 sacnobaro faili (.hlp) - es daxmarebis anu sacnobaro failia, romelic Delphi Si gamoiyeneba. grafikuli failebi (.wmf,.bmp,.ico) - es failebi gamoiyenebian danartsi lamazi interfeisis Sesaqmnelad. proeqtis faili (.dpr)-seicavs Object Pascal-ze daweril kods 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} Application.CreateForm(TForm, Form1); Application.Run(Form1); end. 140 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,.pas gafartoebit. 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); 141

142 end; end. axali proeqtis Seqmnisas es moduli iqmneba avtomaturad. ganvixilot modulis Semadgeneli calkeuli nawilebi: modulis saxeli es saxeli iwereba unit sityvis Semdeg; 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 uses operatorsi. type gamoiyeneba monacemta ti pebis 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. 142 proeqtis magaliti SevqmnaT mcire zomis proeqti. pirvel rigsi SevqmnaT proeqtis failebi : 1. failebis Sesanaxad Delphi katalogsi SevqmnaT

143 qvekatalogi. magalitad : c:\program files\borland\delphi 3.0\mysource. 2. SevqmnaT qvekatalogi, romelsic SevinaxavT Cvens proeqts, davarqvat Formtalk (c:\program files\borland\delphi 3.0\mysource\formtalk) 3. gavusvat Delphi avirciot brzaneba File New, avirciot Application piktograma, New Items dialogur fanjarasi. 4. avirciot brzaneba File New Form, proeqtze meore formis dasamateblad. 5. SevucvaloT Form1 formas da mis komponentebs zogierti Tviseba. obieqtebis inspeqtoris (Objec Inspector) 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.pas Semdeg unda SevinaxoT unit2.pas SevcvaloT misi saxeli da davarqvat output.pas proeqtis failis Sesanaxad gamoviyenot brzaneba File Save Project As, gamosul fanjarasi avirciot katalogi da saxeli proeqtis failis Sesanaxad. proeqtis 143

144 144 fails davarqvat project1.dpr, misi misamarti diskze iqneba: c:\programfiles\borland\delphi\mysource\formtalk\formtalk.dpr exla avagot formebi Semdegi procedurebis gamoyenebit: 1. TiToeul formas davamatot Edit redaqtirebis fanjara, 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 Tviseba SevcvaloT True Ti. 4. Rilakis kods davamatot striqoni. SendText Rilakze 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. Cveni formebi 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} 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 operatoris Semdeg vxedavt metodebis operatorebs: Application.Initialize da Application.createForm. es metodebi asruleben Cveni formebis Seqmnisa da gasvebisatvis aucilebel operaciebs. metodi Seicavs kodis fragments. damasrulebeli operatori aris Application.Run. igi gausvebs 145

146 Cvens danarts da Seasrulebs Cvens formebtan dakavsirebul kods. formis damatebis an amogdebisas Delphi avtomaturad aketebs proeqtis sawyisi kodis modificirebas. vnaxot Semavali formis modulis kodi, ristvisac Semaval formaze orjer davawkapunot. Input formis moduli : unit Input ; 146 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); 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; 147

148 implementation {$R *.DFM} end. `gadagzavna~ Rilakis dawerisas sruldeba Semdegi operatori: OutputForm.OutText.Text := InputForm.InText.Text; 148 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 Delphiis 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 Tvisebas mivcet 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 Tviseba Wdeebsac. 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 149

150 kidev ori Wde, esenia Label1 da Label2, romlebic gantavsebulia ertmanetis gverdit. Label3 Wdis Caption 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. gavaketot kodis redaqtireba ise, rom mivirot Semdegi teqsti: Procedure TForm1.Button1Click (Sender: TObject); var Value1, Value2, Total : integer; Value1 := StrToInt (Edit1.Text); Value2 := StrToInt (Edit2.Text); Total := Value1 + Value2; Label4.Caption := IntToStr (Total); end; 10. failis Sesanaxad avirciot File Save As. SevinaxoT programuli 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 Wdis fanjarasi mivirot jami. Cveni danartis sruli kodi gamoiyureba Semdegnairad: unit addform; interface 150

151 uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = 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; var Form1 : TForm1; implementation; {$r *. DFM} procedure TForm1.Button1Click (Sender : TObject); var Value1, Value2, Total : integer; Value1 := StrToInt (Edit1.Text); 151

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 Value1 da Value2 cvladebsi, Seajamebs am ricxvebs da mirebul mnisvnelobas 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] momdevno Sesasrulebel striqonze gadasvla. Run to Cursor F4 brzaneba axorcielebs programis Sesrulebas kursoris adgilamde. Show Execution Point brzaneba kursors moatavsebs momdevno Sesasrulebel operatorze. 152

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) da Events (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, Cursor Tvisebis arceva xorcieldeba Camoxsnadi menius sasualebit, saidanac SeiZleba sasurveli Tvisebis arceva. iseti Tviseba rogoricaa Default (dumilit) gvtavazobs True-False mnisvnelobebis arcevans. Caption (warwera) Tvisebis saxit warmodgenilia teqsti, romelic unda aikrifos sawiroebis mixedvit. aris egretwodebuli CarTuli Tviseba, romlis winac dasmulia + nisani, magalitad +Font. masze orjer dawkapunebit igi gaixsneba da gamocndeba CarTuli Tvisebebi. aq SeiZleba gvqondes ramdenime CarTva. ganvixilot Button komponentis Tvisebebis sia: Cancel Caption Cursor Default DragCursor DragMode Enabled +Font Color 153

154 Height Name Pitch Size +Style fsbold fsitalic fsunderline fsstrikeout Height HeipContext Hint Left ModalResult Name ParentFont ParentChowHint PopupMenu ShowHint TabOrder TabStop Tag Top Visible Width zogierti Tviseba damokidebulia sxva Tvisebaze. magalitad Hint (mititeba). es mititeba gamodis masin, rodesac kursori 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 mititeba gavrceldeba Svili formebisatvisac. aseve Tu ParentFont 154

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 Button komponentisatvis misawvdomi metodebis sia: BeginDrag BringToFront CanFocus ClientToScreen Create Destroy Dragging EndDrag Focused Free GetTextBuf GetTextLen Hide Refresh Repaint ScaleBy 155

156 ScreenToClient ScrollBy SendToBack SetBounds SetFocus SetTextBuf Show Update metodis 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 sasualebas izleva. komponenti vizualuria. komponenti Edit (redaqtirebis fanjara) gamoiyeneba momxmareblis mier ertstriqoniani teqstis Sesatanad. komponenti vizualuria. 156

157 Memo komponenti (redaqtirebis mravalstriqoniani 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 157

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. 158 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; {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; 159

160 fname, InString : string; {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; 160 Rilaks `daxurva~ davamatot kodi. procedure TForm1.Button3Click(Sender: TObject); 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; fname:= JUNKFILE.TXT ; 161

162 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; fname := JUNKFILE.TXT ; AssignFile (InFile, fname); Reset (InFile); Readln (InFile, InString); Edit2.Text := InString; CloseFile (InFile); end; procedure TForm1.Button3Click(Sender: TObject); Application.Terminate; end; end. tipizebuli faili tipizebuli failis demonstrirebisatvis SevqmnaT axali proeqti. SevinaxoT moduli, rogorc ADDR.PAS xolo proeqti rogorc ADDRESS.DPR. jer SevqmnaT Canaweris 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 ti pizebul failebtan musaobisas. AssignFile sintaqsi: procedure AssignFile(var F, String); danisnuleba: failur cvlads aniwebs failis saxels. Reset 163

164 sintaqsi: procedure Reset (var F: File; [RecSize: Word] ); danisnuleba: gamoiyeneba arsebuli failis gasaxsnelad. im failisa, romlis saxeli mieniwa failur cvlads AssignFile is daxmarebit. 164 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: arnisvnisatvis. gamoiyeneba failis dasasrulis 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. 165

166 ganvixilot kodi da gamoviyenot igi Sesabamis martvis elementebze dasamateblad. `misamartebisa da telefonebis~ wignis danartis amonabewdi: 166 Unit Addr; interface

167 uses Windows, 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 167

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; 168

169 {Canaweris CatvirTva} Read(AddressFile, AddressData); {Canaweris gamosaxva ekranze} ShowRecord; end; procedure TForm1.SaveRecord; {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; {redaqtirebis fanjrebis gasuftaveba} Edit1.Text := ; Edit2.Text := ; Edit3.Text := ; Edit4.Text := ; Edit5.Text := ; Edit6.Text := ; Edit7.Text := ; end; procedure TForm1.FormCreate (Sender: TObject); 169

170 {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) then Begin Reset (AddressFile); If not Eof (AddressFile) then Read (AddressFile, AddressData); ShowRecord; end; end {winaarmdeg SemTxvevaSi SevqmnaT igi} else ClearData; Rewrite (AddressFile); end; end; procedure TForm1.NewClick (Sender: TObject); repeat 170

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); If CuRec-1 < 0 then {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} else CurRec := CurRec 1; Seek (AddressFile, CurRec); Read (AddressFile, AddressData); Seek (AddressFile, CurRec); ShowRecord; end; end; 171

172 procedure TForm1.NextClick (Sender: TObject); {gadavadgildet Semdeg Canawerze} CurRec := CurRec + 1; Seek (AddressFile, CurRec); {Tu ar aris failis dasasruli, wavikitxot da gamovsaxot Canaweri} If not Eof (AddressFile) then Read (AddressFile, AddressData); Seek (AddressFile, CurRec); ShowRecord; end {Tu mirweulia failis dasasruli, davubrundet bolo Canawers da gamovcet Setyobineba) else CurRec := CurRec 1; Seek (AddressFile, CurRec); ShowMessage ( es failis dasasrulia ); end; end; 172 procedure TForm1. ShowRecord; {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); {SevinaxoT Canaweri} SaveRecord; {gamovsaxot Canaweri redaqtirebis fanjarasi} ShowRecord; end; procedure Tform1.CloseClick (Sender: TObject); {SevinaxoT mimdinare Canaweri} SaveRecord; {davxurot faili} CloseFile (AddressFile); {gamosvla danartidan} Application.Terminate; end; end. es programa qmnis ADDRESS.DAT fails, momxmareblisagan 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.DAT failsi. `wina~ da `momdevno~ Rilakebi wina da momdevno Canawerze gadaadgilebis sasualebas izleva. `daxurva~ Rilaki danartidan gamosvlis sasualebas izleva. 173

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: 174

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 } 175

176 public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.RadioGroup1Click(Sender: TObject); if 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); if checkbox1.state=cbchecked then form1.font.style:=[fsitalic] else form1.font.style := []; end; procedure TForm1.CheckBox2Click(Sender: TObject); if checkbox2.state=cbchecked then form1.font.style := [fsbold] else 176

177 form1.font.style:=[]; end; procedure TForm1.Button1Click(Sender: TObject); memo1.clear; end; procedure TForm1.RadioButton1Click(Sender: TObject); if radiobutton1.checked then memo1.color := clwhite; end; procedure TForm1.RadioButton2Click(Sender: TObject); if radiobutton2.checked then memo1.color := claqua; end; procedure TForm1.ComboBox1Change(Sender: TObject); if 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; 177

178 procedure TForm1.File1Click(Sender: TObject); application.terminate; end; end. 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 Sesadgenad davawkapunot masze da gamosuli Rilakis Caption-Si CavweroT Exit da a.s. forma miirebs Semdeg saxes: 178

179 grafikuli elementebi magalitsi gamoyenebulia piqselebis Tviseba, sinusoidis asagebad. formaze aris ertaderti Rilaki, masze dawerisas daixazeba sinusoida. 179

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= ; 180

181 var X : real; Y : real; PX : longint; PY : longint; HalfHeight : Longint; HalfHeight := form1.height div 2; for PX := 0 to form1.width do X := PX*(2*PI/Form1.Width); Y := sin(x); PY := trunc(0.7 * Y * Halfheight) + HalfHeight; Canvas.Pixels[PX,PY] := 0; end; end; end. 181

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. 182

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= ; 183

184 var X : real; Y : real; PX : Longint; PY : Longint; Offset : Longint; HalfHeight : Longint; HalfHeight := Form1.Height div 2; for Offset := -10 To 10 do 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; 184

185 martivi animacia Mode Tvisebis gamoyenebit. programa, dasawyissi kalmis pmcopy da feris clred rejimis 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. 185

obieqtze orientirebuli programirebis ena C#

obieqtze orientirebuli programirebis ena C# T. baxtaze obieqtze orientirebuli programirebis ena C# Object Main Class { this new new this Object new Object this "teqnikuri universiteti" saqartvelos teqnikuri universiteti T. baxtaze obieqtze orientirebuli

More information

დისკრეტული სტრუქტურების გაფართოვება: პროგრამული ენა ჰასკელი

დისკრეტული სტრუქტურების გაფართოვება: პროგრამული ენა ჰასკელი Tbilisis saxelmwifo universiteti zusti da sabunebismetyvelo mecnierebata fakulteti ინტერდისციპლინური (მათემატიკა, კომპიუტერული მეცნიერებები) ქვემიმართულება: მათემატიკური ლოგიკა და დისკრეტული სტრუქტურები

More information

inga abulaze laboratoriuli samusaoebi VBA enaze `teqnikuri

inga abulaze laboratoriuli samusaoebi VBA enaze `teqnikuri inga abulaze laboratoriuli samusaoebi VBA enaze `teqnikuri universiteti @ saqartvelos teqnikuri universiteti inga abulaze laboratoriuli samusaoebi VBA enaze registrirebulia stu-s saredaqcio-sagamomcemlo

More information

II. grafika. grafikuli obieqtebis ageba: funqcia Graphics

II. grafika. grafikuli obieqtebis ageba: funqcia Graphics II. grafika grafikuli obieqtebis ageba: fuqcia Graphics wia leqciasi Cve gavixilet Mathematica sistemis grafikuli fuqciebi Plot (grafikis ageba sibrtkeze) da Plot3D (grafikis ageba sivrcesi). agretve gaxiluli

More information

monacemta bazebis martvis sistemebi

monacemta bazebis martvis sistemebi saqartvelos teqnikuri universiteti b. mefarisvili monacemta bazebis martvis sistemebi Tbilisi 2008 uak 681.3.06 saxelmzrvanelo gankutvnilia `idmas~ specialobis meotxe kursis studentebisatvis saleqcio,

More information

maswavlebelta profesiuli ganvitarebis centri informaciulsakomunikacio teqnologiebis sabazo kursi maswavleblebistvis maswavlebelta informaciul-sakomunikacio teqnologiebis treningis programa maswavlebelta

More information

1 leqcia PERL-is zogadi mimoxilva PERL-is dayeneba perl [ -sttuuwx ] [ -hv ] [ -V[:configvar] ] [ -cw ] [ -d[t][:debugger] ] [ - D[number/list] ] [

1 leqcia PERL-is zogadi mimoxilva PERL-is dayeneba perl [ -sttuuwx ] [ -hv ] [ -V[:configvar] ] [ -cw ] [ -d[t][:debugger] ] [ - D[number/list] ] [ 1 leqcia PERL-is zogadi mimoxilva PERL-is dayeneba perl [ -sttuuwx ] [ -hv ] [ -V[:configvar] ] [ -cw ] [ -d[t][:debugger] ] [ - D[number/list] ] [ -pna ] [ -Fpattern ] [ - l[octal] ] [ -0[octal/hexadecimal]

More information

1. CamoTvlilTagan ra SeiZleba gamoisaxos Semdegi CanaweriT:

1. CamoTvlilTagan ra SeiZleba gamoisaxos Semdegi CanaweriT: instruqcia davalebebisatvis # 1 _ 30: davalebasi dasmulia SekiTxva da mocemulia otxi savaraudo pasuxi, romeltagan mxolod ertia swori. pasuxebis furcelze davalebis Sesabamisi nomris qves ipovet ujra, romelic

More information

qcevis gamoyenebiti analizi procedurebis saxelmzrvanelo

qcevis gamoyenebiti analizi procedurebis saxelmzrvanelo Th e Ma n ualofapp lie d Be h a v iouran a ly sis Proce dure s qcevis gamoyenebiti analizi procedurebis saxelmzrvanelo Tb ilisi,mmay 2000 ' Ba rry S. Pra son son, M A Dip C lin Psy ch Ph D FNZ PsS Targmani:

More information

Getting Started With Pascal Programming

Getting Started With Pascal Programming Getting Started With Pascal Programming How are computer programs created What is the basic structure of a Pascal Program Variables and constants Input and output Common programming errors Computer Programs

More information

Getting Started With Pascal Programming

Getting Started With Pascal Programming Getting Started With Pascal Programming How are computer programs created What is the basic structure of a Pascal Program Variables and constants Input and output Pascal operators Common programming errors

More information

saqartvelos erovnuli angarisebi

saqartvelos erovnuli angarisebi saqartvelos statistikis erovnuli samsaxuri NATIONAL STATISTICS OFFICE OF GEORGIA saqartvelos erovnuli angarisebi NATIONAL ACCOUNTS OF GEORGIA 2013 statistikuri krebuli STATISTICAL PUBLICATION Tbilisi 2

More information

gv. 05 robert kavtiasvili: interviuebi majoritarobis kandidatebtan trampis msvidoba da manevrebis politika gadawyvetileba

gv. 05 robert kavtiasvili: interviuebi majoritarobis kandidatebtan trampis msvidoba da manevrebis politika gadawyvetileba CMYK factcheck.ge 1 12-18 seqtemberi, 2016 #006 fasi 1 lari sainformacio-analitikuri gazeti, gamodis orsabatobit ateulebi romeli saxelebi miizidavs amomrcevels gv. 04 23 qali, 2 momrerali, 1 msaxiobi,

More information

History. used in early Mac development notable systems in Pascal Skype TeX embedded systems

History. used in early Mac development notable systems in Pascal Skype TeX embedded systems Overview The Pascal Programming Language (with material from tutorialspoint.com) Background & History Features Hello, world! General Syntax Variables/Data Types Operators Conditional Statements Functions

More information

{ -- FLORIDA HIGH SCHOOLS COMPUTING COMPETITION '84 } { -- PASCAL PROGRAM SOLUTIONS }

{ -- FLORIDA HIGH SCHOOLS COMPUTING COMPETITION '84 } { -- PASCAL PROGRAM SOLUTIONS } { -- FLORIDA HIGH SCHOOLS COMPUTING COMPETITION '84 } { -- PASCAL PROGRAM SOLUTIONS } {1.1} program One1T84; { -- This program produces a table of Fahrenheit for Celcius. } C: Integer; Writeln ('CELCIUS

More information

520 Principles of Programming Languages. Arithmetic. Variable Declarations. 19: Pascal

520 Principles of Programming Languages. Arithmetic. Variable Declarations. 19: Pascal Structure of a Pascal Program 520 Principles of Programming Languages 19: Pascal Christian Collberg collberg@cs.arizona.edu Department of Computer Science University of Arizona PROGRAM Name (list of files);

More information

{ -- FLORIDA HIGH SCHOOLS COMPUTING COMPETITION '83 } { -- PASCAL PROGRAM SOLUTIONS }

{ -- FLORIDA HIGH SCHOOLS COMPUTING COMPETITION '83 } { -- PASCAL PROGRAM SOLUTIONS } FHSCC '83 PASCAL PROGRAM SOLUTIONS 145 { -- FLORIDA HIGH SCHOOLS COMPUTING COMPETITION '83 } { -- PASCAL PROGRAM SOLUTIONS } {1.1} program One1T83; { -- This program will round a number to nearest whole

More information

free download pnu pdf file from

free download pnu pdf file from : : : : ( ) -1 Const i : integer = 13; Const integer i = 13; Const i = 13; Const i := 13; (90 shr 3 mod 2 * 3-1) -2 4 2 22 10 a:=10; b:=13; a := a xor b; b := a xor b; a := a xor b; -3. b a. b a. a b.

More information

Today s Topics. Team Project Introduce this year s team project. S/SL S/SL, the Syntax/Semantic Language. CISC 458 Winter J.R.

Today s Topics. Team Project Introduce this year s team project. S/SL S/SL, the Syntax/Semantic Language. CISC 458 Winter J.R. Today s Topics Team Project Introduce this year s team project S/SL S/SL, the Syntax/Semantic Language Team Project CISC / CMPE 458 - Project 2019 Implement a compiler for a new language called Mini-Turing

More information

208 FLORIDA HIGH SCHOOLS COMPUTING COMPETITION

208 FLORIDA HIGH SCHOOLS COMPUTING COMPETITION 208 FLORIDA HIGH SCHOOLS COMPUTING COMPETITION 1985-1994 { -- FLORIDA HIGH SCHOOLS COMPUTING COMPETITION '93 } { -- PASCAL PROGRAM SOLUTIONS } {1.1} program One1T93; { -- This program displays six lines

More information

Computer Science II TURBO PASCAL

Computer Science II TURBO PASCAL Computer Science II TURBO PASCAL WEEK4 Program Flow Commands Dr.ELGİN KILIÇ IF THEN ELSE expression: If then Begin End else Begin < Processes when CASE is FALSE> End;

More information

A/L 2011_revision. PASCAL PROGRAMMING

A/L 2011_revision. PASCAL PROGRAMMING Pascal is a high level programming language developed by Niklaus Wirth in 1970 based on the ALGOL programming language. It was named in honor of the French mathematician and philosopher Blaise Pascal.

More information

Making Decisions In Pascal

Making Decisions In Pascal Making Decisions In Pascal In this section of notes you will learn how to have your Pascal programs choose between alternative courses of action High Level View Of Decision Making For The Computer Is income

More information

Quick Reference Guide

Quick Reference Guide SOFTWARE AND HARDWARE SOLUTIONS FOR THE EMBEDDED WORLD mikroelektronika Development tools - Books - Compilers Quick Reference Quick Reference Guide with EXAMPLES for Pascal language This reference guide

More information

In Delphi script, when values are assigned to variables, the colon-equal operator is used; :=

In Delphi script, when values are assigned to variables, the colon-equal operator is used; := Statements and Operators Old Content - visit altium.com/documentation Modified by on 13-Sep-2017 Parent page: DelphiScript DelphiScript Statements A statement in DelphiScript is considered as simple when

More information

PROGRAMMING IN HASKELL. Chapter 5 - List Comprehensions

PROGRAMMING IN HASKELL. Chapter 5 - List Comprehensions PROGRAMMING IN HASKELL Chapter 5 - List Comprehensions 0 Set Comprehensions In mathematics, the comprehension notation can be used to construct new sets from old sets. {x 2 x {1...5}} The set {1,4,9,16,25}

More information

Getting Started With Pascal Programming

Getting Started With Pascal Programming Getting Started With Pascal Programming How are computer programs created What is the basic structure of a Pascal Program Variables and constants Input and output Pascal operators Common programming errors

More information

GOZO COLLEGE. Boys Secondary Victoria - Gozo, Malta Ninu Cremona. Half Yearly Examination

GOZO COLLEGE. Boys Secondary Victoria - Gozo, Malta Ninu Cremona. Half Yearly Examination GOZO COLLEGE Boys Secondary Victoria - Gozo, Malta Ninu Cremona Half Yearly Examination 2010 2011 Subject: Form: Time: COMPUTER STUDIES 4 Junior Lyceum 1 hr 30 min NAME: CLASS: INDEX NO: Instructions to

More information

medioaqtivta saqceo sistemis saopozicio calebis zogierti gramatikuli da semantikuri Taviseburebis Sesaxeb

medioaqtivta saqceo sistemis saopozicio calebis zogierti gramatikuli da semantikuri Taviseburebis Sesaxeb iberiul-kavkasiuri enatmecniereba XXXVI 2008 murman suxis medioaqtivta saqceo sistemis saopozicio calebis zogierti gramatikuli da semantikuri Taviseburebis Sesaxeb Cvens samecniero literaturasi cnobilia

More information

FORM 4 PASCAL PROGRAMMING 6.1 WHAT IS AN ARRAY? Unit 6: Arrays and Strings

FORM 4 PASCAL PROGRAMMING 6.1 WHAT IS AN ARRAY? Unit 6: Arrays and Strings Unit 6 Arrays and Strings FORM 4 PASCAL PROGRAMMING Unit 6 Arrays and Strings http//www.i-garden.org March, 01 6.1 WHAT IS AN ARRAY? is a structured data type in which we store a collection of data items

More information

Hyrje ne Informatike Seminar 5

Hyrje ne Informatike Seminar 5 Hyrje ne Informatike Seminar 5 Elisa Reçi Universiteti Luigj Gurakuqi Fakulteti i Shkencave te Natyres Departamenti i Matematikes dhe Informatikes SHKODER MSc. Elisa Reci 1 PROGRAM ProgramName; VAR VariableName

More information

122 FLORIDA HIGH SCHOOLS COMPUTING COMPETITION

122 FLORIDA HIGH SCHOOLS COMPUTING COMPETITION 122 FLORIDA HIGH SCHOOLS COMPUTING COMPETITION 1995-1996 { -- FLORIDA HIGH SCHOOLS COMPUTING COMPETITION '96 } { -- PASCAL PROGRAM SOLUTIONS } {1.1} program One1T96; { -- This program displays a phrase

More information

Annex A (Informative) Collected syntax The nonterminal symbols pointer-type, program, signed-number, simple-type, special-symbol, and structured-type

Annex A (Informative) Collected syntax The nonterminal symbols pointer-type, program, signed-number, simple-type, special-symbol, and structured-type Pascal ISO 7185:1990 This online copy of the unextended Pascal standard is provided only as an aid to standardization. In the case of dierences between this online version and the printed version, the

More information

Making Decisions In Pascal

Making Decisions In Pascal Making Decisions In Pascal In this section of notes you will learn how to have your Pascal programs choose between alternative courses of action High Level View Of Decision Making For The Computer??? True

More information

COMPUTER SCIENCES II Spring Term 2017 Asst.Prof.Elgin KILIÇ

COMPUTER SCIENCES II Spring Term 2017 Asst.Prof.Elgin KILIÇ COMPUTER SCIENCES II Spring Term 2017 Asst.Prof.Elgin KILIÇ TURBO PASCAL WEEK 2 DECLARATION BLOCKS in DETAIL Uses There default sub pascal programs called UNITS which are already embedded in pascal editor.

More information

56 FLORIDA HIGH SCHOOLS COMPUTING COMPETITION

56 FLORIDA HIGH SCHOOLS COMPUTING COMPETITION 56 FLORIDA HIGH SCHOOLS COMPUTING COMPETITION 1985-1994 { -- FLORIDA HIGH SCHOOLS COMPUTING COMPETITION '87 } { -- PASCAL PROGRAM SOLUTIONS } {1.1} program One1T87; { -- This program will print out the

More information

Lecture 02 C FUNDAMENTALS

Lecture 02 C FUNDAMENTALS Lecture 02 C FUNDAMENTALS 1 Keywords C Fundamentals auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void

More information

Computer (Literacy) Skills. Variables, records, and pointers. Lubomír Bulej KDSS MFF UK

Computer (Literacy) Skills. Variables, records, and pointers. Lubomír Bulej KDSS MFF UK Computer (Literacy) Skills Variables, records, and pointers Lubomír Bulej KDSS MFF UK Variable = named storage location Values stored as sequences of bytes Type determines storage size and layout Also

More information

Compiladores Prof. Bruno Lopes Lista 1

Compiladores Prof. Bruno Lopes Lista 1 1. Coteje as etapas do processo de compilação. 2. Seja a seguinte BNF da linguagem Pascal. Compiladores 2016.2 Prof. Bruno Lopes Lista 1 program ::= program identifier ; uses declaration ; block. uses

More information

{ -- FLORIDA HIGH SCHOOLS COMPUTING COMPETITION '91 } { -- PASCAL PROGRAM SOLUTIONS }

{ -- FLORIDA HIGH SCHOOLS COMPUTING COMPETITION '91 } { -- PASCAL PROGRAM SOLUTIONS } FHSCC '91 PASCAL PROGRAM SOLUTIONS 163 { -- FLORIDA HIGH SCHOOLS COMPUTING COMPETITION '91 } { -- PASCAL PROGRAM SOLUTIONS } {1.1} program One1T91; { -- This program will display a phrase as a rectangle.

More information

Quick Reference Guide

Quick Reference Guide SOFTWARE AND HARDWARE SOLUTIONS FOR THE EMBEDDED WORLD mikroelektronika Development tools - Books - Compilers Quick Reference Quick Reference Guide with EXAMPLES for Basic language This reference guide

More information

Overview. ELEC2041 Microprocessors and Interfacing. Lecture 7: Number Systems - II. March 2006.

Overview. ELEC2041 Microprocessors and Interfacing. Lecture 7: Number Systems - II.   March 2006. ELEC2041 Microprocessors and Interfacing Lecture 7: Number Systems - II http://webct.edtec.unsw.edu.au/ March 2006 Saeid@unsw.edu.au Overview Signed Numbers: 2 Complement representation Addition, Subtraction

More information

ET CETERA პატრიკ ზიუსკინდი სუნამო ამბავი ერთი მკვლელისა

ET CETERA პატრიკ ზიუსკინდი სუნამო ამბავი ერთი მკვლელისა ET CETERA პატრიკ ზიუსკინდი სუნამო ამბავი ერთი მკვლელისა patrik ziuskindi sunamo ambavi erti mkvlelisa Patrick Süskind DAS PARFUM Die Geschichte eines Mörders germanulidan Targmnes natalia nadirasvilma

More information

Pascal: operations on basic data structures (selection) (I) 2.3 Accessing and manipulating data

Pascal: operations on basic data structures (selection) (I) 2.3 Accessing and manipulating data 2.3 Accessing and manipulating data structures (selection) (I) Data without being able to generate, access and change it is useless Usually, for elemental data types imperative and object-oriented languages

More information

CS Week 5. Jim Williams, PhD

CS Week 5. Jim Williams, PhD CS 200 - Week 5 Jim Williams, PhD The Study Cycle Check Am I using study methods that are effective? Do I understand the material enough to teach it to others? http://students.lsu.edu/academicsuccess/studying/strategies/tests/studying

More information

A general introduction to Functional Programming using Haskell

A general introduction to Functional Programming using Haskell A general introduction to Functional Programming using Haskell Matteo Rossi Dipartimento di Elettronica e Informazione Politecnico di Milano rossi@elet.polimi.it 1 Functional programming in a nutshell

More information

Computer Science II TURBO PASCAL

Computer Science II TURBO PASCAL Computer Science II TURBO PASCAL WEEK6 LOOP structures Dr.ELGİN KILIÇ Loop Type Description while-do loop Repeats a statement or group of statements while a given condition is true. It tests the condition

More information

Beginning Programming (Pascal) Lecture 75. Figure 1. type-declarations. simple-type. pointer-type. array-type. file-type. set-type.

Beginning Programming (Pascal) Lecture 75. Figure 1. type-declarations. simple-type. pointer-type. array-type. file-type. set-type. -declarations -identifier = ; ; Figure 1. -declarations simple- pointer- array- file- set- record- Figure 2. simple- standard- subrange- enumerated- Figure 3. simple- standard- boolean char integer real

More information

The Relational Data Model

The Relational Data Model The Relational Data Model Lecture 6 1 Outline Relational Data Model Functional Dependencies Logical Schema Design Reading Chapter 8 2 1 The Relational Data Model Data Modeling Relational Schema Physical

More information

2. ARRAYS What is an Array? index number subscrip 2. Write array declarations for the following: 3. What is array initialization?

2. ARRAYS What is an Array? index number subscrip 2. Write array declarations for the following: 3. What is array initialization? 1 2. ARRAYS 1. What is an Array? Arrays are used to store a set of values of the same type under a single variable name. It is a collection of same type elements placed in contiguous memory locations.

More information

Analysis and Implementation of Automatic Reassembly of File Fragmented Images Using Greedy Algorithms. By Lucas Shinkovich and Nate Jones

Analysis and Implementation of Automatic Reassembly of File Fragmented Images Using Greedy Algorithms. By Lucas Shinkovich and Nate Jones Analysis and Implementation of Automatic Reassembly of File Fragmented Images Using Greedy Algorithms By Lucas Shinkovich and Nate Jones Outline Introduction & Problem Method Algorithms Problems & Limitations

More information

G Programming Languages - Fall 2012

G Programming Languages - Fall 2012 G22.2110-003 Programming Languages - Fall 2012 Lecture 3 Thomas Wies New York University Review Last week Names and Bindings Lifetimes and Allocation Garbage Collection Scope Outline Control Flow Sequencing

More information

Programming for Engineers Structures, Unions

Programming for Engineers Structures, Unions Programming for Engineers Structures, Unions ICEN 200 Spring 2017 Prof. Dola Saha 1 Structure Ø Collections of related variables under one name. Ø Variables of may be of different data types. Ø struct

More information

HS STELLENBERG : DELPHI : FOKUS VIR EKSAMENS GEDATEER 1 FEB 2017.

HS STELLENBERG : DELPHI : FOKUS VIR EKSAMENS GEDATEER 1 FEB 2017. D E L P H I F O K U S V I R E K S A M E N S ( F E B 2 0 1 7 ) P a g e 1 HS STELLENBERG : DELPHI : FOKUS VIR EKSAMENS GEDATEER 1 FEB 2017. Hierdie is n werksdokument en word van tyd tot tyd opgradeer. GRAAD

More information

Making Decisions In Pascal In this section of notes you will learn how to have your Pascal programs to execute alternatives

Making Decisions In Pascal In this section of notes you will learn how to have your Pascal programs to execute alternatives Making Decisions In Pascal In this section of notes you will learn how to have your Pascal programs to execute alternatives Decision-Making In Pascal Decisions are questions that are either true or false

More information

sujet1: Correction Des Epreuves D Informatique _--Pratique--_ MEDDEB Mohamed Page 1 Devoirs et examens :

sujet1: Correction Des Epreuves D Informatique _--Pratique--_ MEDDEB Mohamed Page 1 Devoirs et examens : Correction Des Epreuves D Informatique sujet1: Program bac_2017_25_mai_s1; Uses Wincrt; Type tab = Array [1..20] Of Integer; n: Integer; T: tab; _--Pratique--_ 2017 Procedure saisir( n:integer); write('donner

More information

Boolean Algebra Boolean Algebra

Boolean Algebra Boolean Algebra What is the result and type of the following expressions? Int x=2, y=15; float u=2.0, v=15.0; -x x+y x-y x*v y / x x/y y%x x%y u*v u/v v/u u%v x * u (x+y)*u u / (x-x) x++ u++ u = --x u = x -- u *= ++x

More information

Basic types and definitions. Chapter 3 of Thompson

Basic types and definitions. Chapter 3 of Thompson Basic types and definitions Chapter 3 of Thompson Booleans [named after logician George Boole] Boolean values True and False are the result of tests are two numbers equal is one smaller than the other

More information

#include <iostream> #include <algorithm> #include <cmath> using namespace std; int f1(int x, int y) { return (double)(x/y); }

#include <iostream> #include <algorithm> #include <cmath> using namespace std; int f1(int x, int y) { return (double)(x/y); } 1. (9 pts) Show what will be output by the cout s in this program. As in normal program execution, any update to a variable should affect the next statement. (Note: boolalpha simply causes Booleans to

More information

Basic program The following is a basic program in C++; Basic C++ Source Code Compiler Object Code Linker (with libraries) Executable

Basic program The following is a basic program in C++; Basic C++ Source Code Compiler Object Code Linker (with libraries) Executable Basic C++ Overview C++ is a version of the older C programming language. This is a language that is used for a wide variety of applications and which has a mature base of compilers and libraries. C++ is

More information

Standard prelude. Appendix A. A.1 Classes

Standard prelude. Appendix A. A.1 Classes Appendix A Standard prelude In this appendix we present some of the most commonly used definitions from the standard prelude. For clarity, a number of the definitions have been simplified or modified from

More information

Exponentiation. Evaluation of Polynomial. A Little Smarter. Horner s Rule. Chapter 5 Recursive Algorithms 2/19/2016 A 2 M = (A M ) 2 A M+N = A M A N

Exponentiation. Evaluation of Polynomial. A Little Smarter. Horner s Rule. Chapter 5 Recursive Algorithms 2/19/2016 A 2 M = (A M ) 2 A M+N = A M A N Exponentiation Chapter 5 Recursive Algorithms A 2 M = (A M ) 2 A M+N = A M A N quickpower(a, N) { if (N == 1) return A; if (N is even) B = quickpower(a, N/2); retrun B*B; return A*quickPower(A, N-1); slowpower(a,

More information

Informatics 1 Functional Programming Lecture 5. Function properties. Don Sannella University of Edinburgh

Informatics 1 Functional Programming Lecture 5. Function properties. Don Sannella University of Edinburgh Informatics 1 Functional Programming Lecture 5 Function properties Don Sannella University of Edinburgh Part I Booleans and characters Boolean operators not :: Bool -> Bool (&&), ( ) :: Bool -> Bool ->

More information

SM15K - Interface modules

SM15K - Interface modules DELTA ELEKTRONIKA B.V. DC POWER SUPPLIES Vissersdijk 4, 4301 ND Zierikzee, the Netherlands www.deltapowersupplies.com Tel. +31 111 413656 SM15K - Interface modules Mod els Description INT MOD M/S-2 Master/Slave

More information

Supplier s declaration of conformity

Supplier s declaration of conformity Supplier s declaration of conformity As required by the following Notices: > Radiocommunications (Compliance Labelling - Devices) Notice 2014 made under section 182 of the Radiocommunications Act 1992;

More information

Variable A variable is a value that can change during the execution of a program.

Variable A variable is a value that can change during the execution of a program. Declare and use variables and constants Variable A variable is a value that can change during the execution of a program. Constant A constant is a value that is set when the program initializes and does

More information

Where we are going (today)

Where we are going (today) Where we are going (today) Q: How do we arrange bits in the memory of the computer? (why do we care? we want the computer to store many individual numbers) A: bytes and words 10110000 00001110 01000010

More information

Digital Design Using VHDL Using Xilinx s Tool for Synthesis and ModelSim for Verification Part II

Digital Design Using VHDL Using Xilinx s Tool for Synthesis and ModelSim for Verification Part II Digital Design Using VHDL Using Xilinx s Tool for Synthesis and ModelSim for Verification Part II Ahmed Abu-Hajar, Ph.D. abuhajar@digitavid.net Digitavid, Inc San Jose, CA VHDL Lexical Description Code

More information

ERROR: ERROR: ERROR:

ERROR: ERROR: ERROR: ERROR: ERROR: ERROR: Formatting Variables: Back and forth between character and numeric Why should you care? DATA name1; SET name; if var = Three then delete; if var = 3 the en delete; if var = 3 then

More information

C Syntax Arrays and Loops Math Strings Structures Pointers File I/O. Final Review CS Prof. Jonathan Ventura. Prof. Jonathan Ventura Final Review

C Syntax Arrays and Loops Math Strings Structures Pointers File I/O. Final Review CS Prof. Jonathan Ventura. Prof. Jonathan Ventura Final Review CS 2060 Variables Variables are statically typed. Variables must be defined before they are used. You only specify the type name when you define the variable. int a, b, c; float d, e, f; char letter; //

More information

arrays Simple Types (Atomic) In this section of notes you will be introduced to a homogeneous composite type, onedimensional 1) Integer 2) Real

arrays Simple Types (Atomic) In this section of notes you will be introduced to a homogeneous composite type, onedimensional 1) Integer 2) Real Arrays In this section of notes you will be introduced to a homogeneous composite type, onedimensional arrays Simple Types (Atomic) 1) Integer 2) Real 3) Char 4) Boolean 1) Homogeneous arrays 2) Heterogeneous

More information

Programming Languages

Programming Languages CSE 130 : Spring 2011 Programming Languages Lecture 3: Crash Course Ctd, Expressions and Types Ranjit Jhala UC San Diego A shorthand for function binding # let neg = fun f -> fun x -> not (f x); # let

More information

Types, Operators and Expressions

Types, Operators and Expressions Types, Operators and Expressions CSE 2031 Fall 2011 9/11/2011 5:24 PM 1 Variable Names (2.1) Combinations of letters, numbers, and underscore character ( _ ) that do not start with a number; are not a

More information

Chapter 3 Data Modeling Using the Entity- Relationship (ER) Model

Chapter 3 Data Modeling Using the Entity- Relationship (ER) Model Chapter 3 Data Modeling Using the Entity- Relationship (ER) Model Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 3-3 Chapter Outline Example Database Application (COMPANY) ER

More information

Lists. Adrian Groza. Department of Computer Science Technical University of Cluj-Napoca

Lists. Adrian Groza. Department of Computer Science Technical University of Cluj-Napoca Lists Adrian Groza Department of Computer Science Technical University of Cluj-Napoca Recall... Parameter evaluation Call-by-value Call-by-name Call-by-need Functions Infix operators Local declarations,

More information

Chapter 2 SML, a Functional Programming Language

Chapter 2 SML, a Functional Programming Language Plan Chapter 2 SML, a Functional Programming Language 1. Expressions... 2.2 2. Value declarations... 2.13 3. Function declarations... 2.16 4. Type inference... 2.18 5. Anonymous functions... 2.20 6. Specifications...

More information

2.1. Expressions. Chapter 2 SML, a Functional Programming Language. Integers. Interacting with ML

2.1. Expressions. Chapter 2 SML, a Functional Programming Language. Integers. Interacting with ML Plan Chapter 2 SML, a Functional Programming Language 1. Expressions... 2.2 2. Value declarations... 2.13 3. Function declarations... 2.16 4. Type inference... 2.18 5. Anonymous functions... 2.20 6. Specifications...

More information

Pascal/MT+ TM Language Reference Manual

Pascal/MT+ TM Language Reference Manual Pascal/MT+ TM Language Reference Manual Copyright 1983 Digital Research P.O. Box 579 801 Lighthouse Avenue Pacific Grove, CA 93950 (408) 649-3896 TWX 910 360 5001 All Rights Reserved COPYRIGHT Copyright

More information

Input parameters. Function. An ideal black-box representation of a function

Input parameters. Function. An ideal black-box representation of a function 7 Functions 7. Introduction Functions are identifiable pieces of code with a defined interface. They are called from any part of a program and allow large programs to be split into more manageable tasks,

More information

Correction proposée par Mr Najeh SOUGUIR 1/8

Correction proposée par Mr Najeh SOUGUIR 1/8 Corrigés Bac pratique Informatique Sections Math, Sciences et Technique 28 mai 2012(8h30, 10h,14h, 15h30) lundi 28 mai 2012 à 8h30 program Lundi_28_05_2012_8h30; type tab= array [1..20] of integer; var

More information

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end. NAREDBA CIKLUSA SA PREDUSLOVOM WHILE 1.Odrediti vrednosti s i p nakon izvrsenja sledecih naredbi za dato a=43, a=34, a=105 program p1; var a,s,p:integer; write('unesite a:');readln(a); p:=a; s:=0; while

More information

Problem Solving. Problem Solving Concept for Computer Science

Problem Solving. Problem Solving Concept for Computer Science Problem Solving Problem Solving Concept for Computer Science by Noor Azida Binti Sahabudin Faculty of Computer Systems & Software Engineering azida@ump.edu.my OER Problem Solving by Noor Azida Binti Sahabudin

More information

Advanced Synthesis Techniques

Advanced Synthesis Techniques Advanced Synthesis Techniques Reminder From Last Year Use UltraFast Design Methodology for Vivado www.xilinx.com/ultrafast Recommendations for Rapid Closure HDL: use HDL Language Templates & DRC Constraints:

More information

Lecture 2: List algorithms using recursion and list comprehensions

Lecture 2: List algorithms using recursion and list comprehensions Lecture 2: List algorithms using recursion and list comprehensions Søren Haagerup Department of Mathematics and Computer Science University of Southern Denmark, Odense September 12, 2017 Expressions, patterns

More information

CS 2340 Objects and Design - Scala

CS 2340 Objects and Design - Scala CS 2340 Objects and Design - Scala Objects and Operators Christopher Simpkins chris.simpkins@gatech.edu Chris Simpkins (Georgia Tech) CS 2340 Objects and Design - Scala Objects and Operators 1 / 13 Classes

More information

RMS Report Designing

RMS Report Designing RMS Report Designing RMS Report Writing Examples for designing custom report in RMS by RMS Support Center RMS uses the Report Builder report writing tool to allow users to design customized Reports using

More information

. ).-... I s 0 4 i o s ) ( i. Name CA K44-14". Block 3-4B: Linear Programming Homework

. ).-... I s 0 4 i o s ) ( i. Name CA K44-14. Block 3-4B: Linear Programming Homework Name CA K44-14". Block 3-4B: Linear Programming Homework 1. An electronics company makes two kinds of TV's: LCD and plasma. Let x be the number of LCD TV's and y be the number of plasma TV's made in a

More information

DKT 122/3 DIGITAL SYSTEM 1

DKT 122/3 DIGITAL SYSTEM 1 Company LOGO DKT 122/3 DIGITAL SYSTEM 1 BOOLEAN ALGEBRA (PART 2) Boolean Algebra Contents Boolean Operations & Expression Laws & Rules of Boolean algebra DeMorgan s Theorems Boolean analysis of logic circuits

More information

Programming Languages

Programming Languages CSE 130 : Fall 2008 Programming Languages Lecture 3: Epressions and Types Ranjit Jhala UC San Diego News PA 1 due (net) Fri 10/10 5pm PA 2 out today or tomorrow Office hours posted on Webpage: Held in

More information

High Level Database Models

High Level Database Models ICS 321 Fall 2011 High Level Database Models Asst. Prof. Lipyeow Lim Information & Computer Science Department University of Hawaii at Manoa 9/21/2011 Lipyeow Lim -- University of Hawaii at Manoa 1 Database

More information

Conditional Statement

Conditional Statement Conditional Statement 1 Conditional Statements Allow different sets of instructions to be executed depending on truth or falsity of a logical condition Also called Branching How do we specify conditions?

More information

KENDRIYA VIDYALAYA ALIGANJ SHIFT-II HOLIDAY HOMEWORK CLASS-XII INFORMATICS PRACTICES

KENDRIYA VIDYALAYA ALIGANJ SHIFT-II HOLIDAY HOMEWORK CLASS-XII INFORMATICS PRACTICES KENDRIYA VIDYALAYA ALIGANJ SHIFT-II HOLIDAY HOMEWORK 18-19 CLASS-XII INFORMATICS PRACTICES 1. Arrange the following data types in increasing order of their size : byte, int, float, double, char, boolean.

More information

DelphiScript Keywords

DelphiScript Keywords DelphiScript Keywords Old Content - visit altium.com/documentation Modified by on 13-Sep-2017 This reference covers the DelphiScript keywords used for the Scripting System in Altium Designer. The scripting

More information

CSCE 110 PROGRAMMING FUNDAMENTALS

CSCE 110 PROGRAMMING FUNDAMENTALS CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++ Prof. Amr Goneid AUC Part 2. Overview of C++ Prof. Amr Goneid, AUC 1 Overview of C++ Prof. Amr Goneid, AUC 2 Overview of C++ Historical C++ Basics Some Library

More information

CSC 1351 The Twelve Hour Exam From Hell

CSC 1351 The Twelve Hour Exam From Hell CSC 1351 The Twelve Hour Exam From Hell Name: 1 Arrays (Ch. 6) 1.1 public class L { int [] data ; void append ( int n) { int [] newdata = new int [ data. length +1]; for ( int i =0;i< data. length ;i ++)

More information

2. E/R Design Considerations

2. E/R Design Considerations 2. E/R Design Considerations 32 What you will learn in this section Relationships cont d: multiplicity, multi-way Design considerations Conversion to SQL 33 Multiplicity of E/R Relationships Multiplicity

More information

Revised 2016/2017 by GBXL

Revised 2016/2017 by GBXL Atari Version 1.1 Revised 2016/2017 by GBXL Latest Edit: 23 April 2017 This manual was created using: Linux Mint 18.1 Cinnamon 64 bit Open Office Writer 4.1.4 for Linux GIMP 2.8.10 for Linux Fonts: Ubuntu

More information

... ; ako je a n parno. ; ako je a n neparno

... ; ako je a n parno. ; ako je a n neparno Zadaci vezani za ciklus sa preduslovom (WHILE) Zad. Napisati program za izračunavanje n_tog stepena broja a. Zad2. Napisati program za izračunavanje sume S kvadrata parnih i kubova neparnih prirodnih brojeva

More information

DEPARTMENT OF MATHS, MJ COLLEGE

DEPARTMENT OF MATHS, MJ COLLEGE T. Y. B.Sc. Mathematics MTH- 356 (A) : Programming in C Unit 1 : Basic Concepts Syllabus : Introduction, Character set, C token, Keywords, Constants, Variables, Data types, Symbolic constants, Over flow,

More information

CS Week 2. Jim Williams

CS Week 2. Jim Williams CS 302 - Week 2 Jim Williams This Week Team Labs Lecture: Scanner, data types, conditionals Team Labs First meeting this week. 1350 cs and 1370 cs Expect an Ice Breaker, be assigned a partner and do the

More information