vbasic-ს ლექციები 2015 თებ (1).doc

53
saqarTvelos teqnikuri universiteti daprogramebis safuZvlebi algoriTmuli ena VISUAL BASIC-s elementebi (leqciebis konspeqti) Semdgeneli prof. vaxtang WankotaZe

Upload: kandi-avery

Post on 29-Sep-2015

21 views

Category:

Documents


1 download

TRANSCRIPT

leqcia 1

- 44 -

saqarTvelos teqnikuri universiteti

daprogramebis safuZvlebialgoriTmuli ena VISUAL BASIC-s elementebi(leqciebis konspeqti)

Semdgeneli

prof. vaxtang WankotaZe

Tbilisi

2015

Sesavali

VISUAL BASIC (VB) vizualuri daprogramebis sistemaa, romelic iZleva Windows garemoSi momuSave programebis Seqmnis saSualebas. termini vizualuri gulisxmobs daprogramebis TvalsaCino stils. VB-s gamoyenebisas xdeba ara amocanis amoxsnis programis Cawera klasikuri gagebiT, aramed xdeba amocanis amoxsnis procesis daproeqteba, da aqedan gamomdinae, VB-Si Sesaqmnel produqts proeqts uwodeben. proeqti SeiZleba iyos erTamocaniani an Seicavdes ramodenime amocanas. mravalamocaniani proeqtis SemTxvevaSi, yoveli amocanisaTvis unda Seiqmnas calke interfeisi da Sesabamisi programuli moduli.Visual Basic-Si, amocanis proeqtis Sedgena ramodenime ZiriTad etaps moicavs. esenia: 1. grafikuli interfeisis daproeqteba, romelic mdgomareobs formaze mmarTveli elementebis obieqtebis saxiT ganTavsebaSi; 2. Properties fanjaraSi, saWiroebis SemTxvevaSi, gamoyenebuli elementebis Tvisebebis cvlilebebis, SetanaSi; 3. interfeisis Sesabamisi obieqtebisaTvis programuli procedurebis SedgenaSi, rac sruldeba programuli kodis Code fanjaraSi.

forma da masTan dakavSirebuli programuli moduli inaxeba .frm gafarToebis failSi. proeqti ki inaxeba .vbp gafarToebis mqone failSi. VB-s programuli proeqtis momzadeba xdeba VB-s samuSao garemoSi (nax.1)

nax.1

fanjris centraluri nawili ukavia Project-Form fanjaras, romelSic xdeba grafikuli interfeisis daproeqteba. fanjris marcxena kideSi mdebareobs marTis elementTa paneli (ToolBox), romelic Seicavs formaze obieqtebis gansaTavseblad saWiro instrumentebs.

fanjris marjvena kideSi mdebareobs sami fanjara, romelTagan ufro sainteresoa:

1. proeqtis struqturis fanjara Project;2. obieqtTa Tvisebebis Secvlis fanjara Properties.

Project-Form fanjris SigniT moTavsebulia Tavad forma (Form), romelzec xdeba momxmareblis grafikuli interfeisis daproeqteba. Tavdapirvelad forma carielia. masze datanebulia wertilovani bade, romelic saWiroa formaze obieqtebis pozicionirebisaTvis.

rogorc iyo aRniSnuli, yovel formasTan dakavSirebulia programuli moduli (kodi), romlis Sesrulebisas forma gadaiqceva Windows-is tipis fanjrad, romelSic muSaobs Sedgenili proeqti. am dros formaze bade ar Cans.

formaze marTvis elementebis anu obieqtebis ganTavsebisaTvis saWiroa: 1. marTvis elementTa ToolBox panelSi saWiro elementis moniSvna; 2. mausiT, kursoris saWiro adgilze moTavseba; 3. mausis daWeril mdgomareobaSi saWiro zomis obieqtis ageba.

erTi da igive tipis ramodenime obieqtis formaze ganTavsebisas isini inomreba formaze moTavsebis rigiTobis mixedviT.

formaze grafikuli interfeisis obieqtebis moTavsebis Semdeg, saWiroebis SemTxvevaSi, unda Seicvalos sistemis mier, gulisxmobis principiT gansazRvruli obieqtebis Tvisebebi, da amis Semdeg iwyeba programuli kodis Seqmna, risTvisac gamoiyeneba Code fanjara, romlis gaxsna xdeba mausiT im obieqtze ormagi daWeriT, romlisTvisac xdeba programuli kodis Cawera. gaxsnil Code fanjaraSi Cndeba proceduris SUB End Sub carieli bloki (Sabloni), romelSic Caiwereba programuli kodi, saWiro garkveuli algoriTmis programul realizaciis uzrunvelsayofad.

VISUAL BASIC (VB) programis (kodis) struqtura

VB-s ZiriTad struqturul erTeuls warmoadgens operatori.

VB-programa ki warmoadgens garkveuli TanmimdevrobiT Cawerili operatorebis erTobliobas, romelic maTi Sesrulebis Sedegad uzrunvelyofs amocanis amoxsnas. programis operatorebis saSualebiT sistemas mieTiTeba Tu ra moqmedeba unda iqnas Sesrulebuli programis Sesrulebis mocemul etapze. sazogadod programis yoveli operatori Caiwereba calke striqonze. momxmarebels SeuZlia erT striqonze erTze meti operatoris (anu operatorTa blokis) ganTavseba. am SemTxvevaSi operatorebi erTmaneTisagan gamoiyofa orwertiliT (:).programaSi SeiZleba ganmartebiTi teqstis (komentaris) ganTavseba. komentarebis raodenoba ar aris SezRuduli. komentaris saSualebiT mieTiTeba Tu, Sinaarsobrivad ra moqmedebebs asrulebs programis esa Tu is nawili. programis nebismieri striqoni, romelic iwyeba (apostrofiT) an REM sityviT ganixileba komentaris striqonad.

programis operators SeiZleba hqondes Wde anu pirobiTi niSani. Wdes gamoyeneba saWiroa im SemTxvevebSi, rodesac ama Tu im mizezTa gamo saWiroa programis raime erTi nawilidan gadasvla programis sxva, moSorebiT mdebare, nawilze. amis ganxorcielebisaTvis programis im operators, romelsac gadaecema marTva, unda gaaCndes pirobiTi misamarTi anu Wde. WdeT SeiZleba gamoyenebuli iqnas naturaluri ricxvi, calkeuli aso, asoebis an asoebis da cifrebis mimdevroba. Wde Caiwereba operatoris win da gamoiyofa misgan orwertiliT.

kompiuteri asrulebs programebs, romlebic Cawerilia e.w. manqanur kodebSi. algoriTmuli ena ki warmoadgens Sualedur enas kompiutersa da momxmarebels Soris. masSi gamoyenebulia maTematikaSi miRebuli simbolikis magvari simbolika, rac aadvilebs programis aRqmas, da agreTve e.w. samosamsaxuro sityvebi romlebic warmoadgenen algoriTmuli enis operatorebis umravlesobisaTvis aucilebel nawils.

momxmareblis mier algoriTmul enaze Sedgenili programis manqanur kodebSi Caweril programad gardaqmnisaTvis, saWiroa misi translireba. translirebis Semdeg programa warmodgenili iqneba orobiT sistemaSi. sxva da sxva algoriTmul enebSi am funqcias asrulebs specialurad am miznisaTvis Sedgenili ori gansxvavebuli tipis programa. esenia translatori, romelsac agreTve kompilators uwodeben, da interpretatori. maT Soris gansxvaveba mdgomareobs imaSi, rom translatori axdens sawyisi programis translirebas kompiuteris mexsierebaSi mTliani programis Setanis Semdeg. interpretatori ki programis yoveli calkeuli operatoris SetanisTanave axdens mis translirebas, anu gardasaxvas manqanur kodebSi.

translirebis procesSi, xdeba programis Sedgenisas an misi kompiuterSi Setanisas daSvebuli sintaqsuri Secdomebis gamovlena, da momxmareblisaTvis Sesabamisi sadiagnostiko informaciis miwodeba daSvebuli Secdomebis Sesaxeb. gamovlenili Secdomebis gasworebis Semdeg, xdeba programis koreqtirebuli variantis xelaxali translireba da a. S. manam, sanam programa ar iqneba srulad gamarTuli, da mxolod amis Semdeg SesaZlebeli iqneba misi Sesruleba Visual BASIC-is (VB) ZiriTadi elementebi da konstruqciebi

alfavitiVB-is alfaviti Seicavs:

cifrebs 0,1,2,3,...,9

laTinuri alfavitis asoebs A,B,C,.....,Z,a,b, . . ., z ariTmetikuli operaciebis niSnebs +,-, /, *

specialur niSnebs (,), ^, < , > , = , ! , # , $ , % , : , ; , . , , .mudmivebimudmiva (konstanta) ewodeba sidides, romelic programis Sesrulebis procesSi ar icvlis mniSvnelobas. VB-Si ZiriTadad gamoiyeneba ricxviTi da striqonuli mudmivebi.

ricxviTi mudmiva

ricxviTi mudmivebis ricxvs miekuTvnebian mTeli da namdvili tipis mudmivebi.

mTeli tipis mudmiva Caiwereba `+~ an `-~ niSnis mqone cifrTa mimdevrobis saxiT. `+~ niSnis Cawera ar aris aucilebeli. mTeli (Integer) tipis mudmivebis mniSvnelobaTa diapazonia -32768-dan +32767-de.

mag.+28, 11030, -275.

namdvili tipis mudmiva SeiZleba Seicavdes mTel da wilad nawilebs. algoriTmul enebSi ricxvis mTeli da wiladi nawilebi erTmaneTisagan gamoiyofa wertiliT, romelsac aTobiTi wertili ewodeba.

ricxviVB -ze Cawera

12,5

12.5

0,125

.125

-1,25

-1.25

125,00 125

didi ricxvebis SemTxvevaSi moxerxebulia namdvili ricvebis warmodgena eqsponencialuri formiT (naxevradlogariTmuli formiT). eqsponencialuri formis gamoyenebisas ricxvi Caiwereba ricxvis mantisisa da rigis miTiTebiT. magaliTad -571.9562 ricxvis eqsponencialuri formiT warmodgenisas Caiwereba -5.719562E+02.

SeniSvna. ( mudmiva QBASIC enaSi ar aris gansazRvruli. amitom saWiroebis SemTxvevaSi (Tu igi figurirebs dasaprogramebel amocanaSi) aucilebelia programaSi misi gansazRvra, magaliTad pi=3.14 saxiT. striqonuli mudmiva

striqonuli mudmiva (literali) warmoadgens VISUAL BASIC-s alfavitis nebismier simboloTa erTobliobas, moTavsebuls brWyalebSi. mag.

namravli =, amocanis amonaxsnis Sedegi:, x+y, Z =, BMW, 60, 60 wuTi.cvladebisidide, romelic amocanis amoxsnis procesSi Rebulobs sxva da sxva mniSnelobas, cvladi ewodeba. VB-Si ganasxvaveben ricxviTi da striqonuli tipis cvladebs. ricxviTi cvladi, Tavis mxriv SeiZleba iyos mTeli an namdvili tipisa.

cvladebis aRniSvnisaTvis gamoiyeneba identifikatori (programistis mier SerCeuli cvladis saxeli).identifikatoris saSualebiT xdeba cvladis gamoyeneba gamoTvliT procesSi gamoTvlebSi da agreTve mexsierebaSi misi damaxsovrebisaTvis.

identifikatorad SeiZleba gamoyenebuli iqnas calkeuli aso, asoebis an asoebis da cifrebis mimdevroba, romelic aucileblad unda iwyebodes asoTi. mag. B, ALPHA, C5DG3. ukeTesia, Tu cvladis identifikatori asaxavs cvladis fizikur arss. cvladTa tipebi

ricxviTi monacemebi, mudmivebis da cvladebis mniSvnelobebi SeiZleba iyvnen sxvadasxva tipisa. cvladis tipze aris damokidebuli mis mier mexsierebaSi dakavebuli baitebis raodenoba, da Sesabamisad, ricxvebis warmodgenis diapazoni da agreTve - sizuste.

cxrilSi moyvanilia: a) monacemTa tipis dasaxeleba; b) Tu ramden baits ikavebs ama Tu im tipis cvladi; g) Sesabamisi cvladis mniSvnelobis warmodgenis diapazoni. cvladis tipidakavebuli baitebis raodenobadiapazoni

mTeli (INTEGER)2-32768-dan 32767-mde

ormagi mTeli (LONG)4-2147483648 -dan2147483647 -mde

namdvili (SINGLE)4-3.4E+38 dan3.4E+38 - mde

namdvili ormagi sizustiT (DOUBLE)8-1.8E+308 dan

1.8E+308 - mde

teqsturi (STRING)1 baiti 1 simbolosaTvis32767 simbolomde

cvladTa tipebis gansazRvra SesaZlebelia an misi identifikatoris Sesabamisi sufiqsiT damTavrebiT, an Sesabamisi tipis cvladis gamocxadebiT.

cvladTa tipebis gansazRvrisaTvis gamoiyeneba Semdegi sufiqsebi:

1. INTEGER - %

2. LONG INTEGER - &

3. SINGLE PRECISION - !

4. DOUBLE PRECISION - #5. STRING - $

mag. A% niSnavs, rom A aris mTeli tipis cvladi; SIGMA& - SIGMA aris ormagi mTeli, da analogiurad : B5!, PRICE#, NAME$.

cvladis tipis gamocxadeba xorcieldeba specialuri Dim operatoriT romelic zogadi saxiT Caiwereba Semdegnairad:

DIM AS mag: DIM x AS Double , DIM b AS INTEGER, DIM k AS STRING da a.S. ramodenime cvladis gamocxadebis SemTxvevaSi DIM sityva Caiwereba mxolod erTxel mag. DIM d AS DOUBLE, k AS INTEGER, t AS INTEGER, cvladis tipi ki unda mieTiTos yoveli cvladisaTvis. VB-Si mTeli tipis cvladebze moqmedebis Sesrulebis Sedegi yovelTvis aris mTeli. funqciebi

algoriTmul ena VISUAL BASIC-Si gamoiyeneba standartuli funqciebi, romelTagan ufro xSirad (metad) gamoiyeneba Semdegi funqciebi:#funqciaCawera VBASIC-ze

1Sin(x)SIN(X)

2Cos(x)COS(X)

3Tg(x)TAN(X)

4Arctg(x)ATN(X)

5Ln(x)LOG(X)

6exEXP(X)

7|x|ABS(X)

8

SQR (X)

9 (x]INT (x)

10[0;1) diapazonSi SemTxveviTi ricxvis generireba RND

SeniSvna:

1. VB-Si axarisxebis niSnad gamoiyeneba ^ simbolo.

2. raime sididis aTobiTi logariTmi (logariTmi 10-s fuZiT) Caiwereba am sididis naturaluri logariTmisa aTis naturalur logariTmTan Sefardebis saxiT. mag. lg(a+b) Caiwereba -> log(a+b)/log(10)

ariTmetikuli gamosaxuleba

ariTmetikuli operaciebis niSnebiTa da mrgvali frCxilebiT erTmaneTTan dakavSirebuli mudmivebi, cvladebi da standartuli funqciebi ariTmetikul gamosaxulebas warmoadgens.ariTmetikul gamosaxulebaSi gamoiyeneba ariTmetikuli moqmedebebis Semdegi niSnebi:

+ Sekreba

/ gayofa

_ gamokleba \ mTelniSna gayofa

* gamravleba ^ axarisxebagaxsnili da daxuruli mrgvali frCxilebi (~ da )~

ariTmetikuli gamosaxulebis Sedgenisas gaTvaliswinebuli unda iqnes Semdegi:1. ariTmetikuli gamosaxuleba Caiwereba erT striqonSi; ar SeiZleba misi gadatana axal striqonze. ukidures SemTxvevaSi igi unda daiyos ramodenime, mcire sigrZis mqone gamosaxulebad.2.ariTmetikuli gamosaxulebis gamoTvla warmoebs moqmedebaTa (operaciaTa) prioritetis (Sesrulebis rigiTobis) mixedviT:

a)funqciis mniSvnelobis gamoTvla;

b)frCxilebSi moTavsebuli gamosaxulebis gamoTvla;

g)axarisxeba;

d)gamravleba da gayofa, naSTis gamoyofa;

e)Sekreba da gamokleba.

3. namdvil xarisxSi axarisxeba, mag. ab (b-namdvili ricxvia) algoriTmul enebSi, xorcieldeba formuliT (e neperis rixvia). am garemoebis gaTvaliswineba aucilebelia kuburi (an sxva kenti ricxvis toli xarisxis mqone) fesvis amoRebisas. kerZod, Tu ki fesqveSa gamosaxulebam SeiZleba miiRos uaryofiTi mniSvneloba, saWiro iqneba magaliTad, fesvis amoReba gamosaxulebis absoluturi mniSvnelobidan, xolo Semdeg, miRebul Sedegs unda mieweros minus niSani (gamvraldes -1 ze). ariTmetikuli gamosaxulebebis Caweris magaliTebi

1. - Cos(abs(z+b))^2*sqr(b)

2. - 12*(b^2+z^3)^(1/3)

3. - (c^2*y^3+abs(a))^3/2^b algoriTmuli ena VB-is ZiriTadi operatorebi

miniWebis operatori

aRniSnuli operatoriT xorcieldeba cvladisaTvis ariTmetikuli gamosaxulebis mniSvnelobis miniWeba.

zogadi saxiT igi Caiwereba Semdegnairad:

B=A

aq A- aris ariTmetikuli gamosaxuleba. B - aris cvladi romelsac eniWeba A gamosaxulebis mniSvneloba. ikiTxeba : B-s mieniWos A-s mniSvneloba. mag. c=5.3, k=m; z=(a+b+f)*x

am operatoris Sesruleba kompiuterSi xdeba Semdegnairad B cvladisaTvis, sistemis mier, gamoyofil mexsierebis ujredSi Caiwereba ricxvi, romelic warmoadgens gamosaxulebis gamoTvlil mniSvnelobas. informaciis Setana kompiuterSi

cvladebis mniSvnelobebis kompiuteris mexsierebaSi Setanis erTerT xerxs warmoadgens INPUTBOX funqciis gamoyeneba, romelic zogadi saxiT Caiwereba Semdegnairad:

cvladi = INPUTBOX(miniSneba, saTauri, mniSvneloba) zogad SemTxvevaSi, aRniSnuli funqcia Seicavs sam arguments, romelTagan mxolod pirvelia aucilebeli. mag. x= INPUTBOX(x=) am operatoris Cawera SeiZleba konkretuli miniSnebis Caweris gareSe, oRond brWyalebi aucileblad unda iqnas gamoyenebuli. mag. x= INPUTBOX( ) am operatoris Sesrulebisas monitoris ekranze gaCndeba Setanis fanjara, romlis e.w. Setanil velSi momxmarebels Seaqvs mocemuli cvladis mniSvneloba. cvladis mniSvnelobis Setana SeiZleba, formaze winaswar ganTavsebuli TextBox obieqtis gamoyenebiT. davuSvaT, rom formaze ganvaTavseT erTi TextBox, romelsac sistemam avtomaturad mianiWa saxeli Text1 (vinaidan TextBox- ebidan igi aris rigiT pirveli ganTavsebuli formaze). amocanis specifikidan gamomdinare formaze SeiZleba ganTavsebuli iqnas erTze meti TextBox da maTi saxelebi iqneba Text1, Text2 da a.S. TextBox-s gamoyenebis SemTxvevaSi cvladis mniSvnelobis Setanis erTerTi xerxi mdgomareobs SemdegSi: momxmarebeli TextBox-Si Cawers cvladis saWiro mniSvnelobas, xolo programaSi ki saWiro iqneba a=Text1.Text operatoris gamoyeneba. amiT a cvlads mieniWeba Text1 saxelis mqone TextBox-Si arsebuli informacia, da amis Semdeg SesaZlebeli iqneba misi gamoyeneba gamoTvlebSi.informaciis gamotanis xerxebi:1. informaciis gamotana formazearsebobs kompiuteris mexsierebidan informaciis, rogorc ricxviTi aseve teqsturis, gamotanis ramodenime sxva da sxva saSualeba. kompiuteridan informaciis gamotana SesaZlebelia rogorc formaze, aseve TextBox-Si, ListBox-Si (romelic gamoiyeneba siebis Sesaqmnelad da gamosayeneblad) an failSi (misi damaxsovreba failis saxiT). mocemul etapze Cven ganvixilavT Tu rogor xorcieldeba informaciis gamotana formazeinformaciis gamosatanad formaze gamoiyeneba operatori PRINT , romelic zogadi saxiT Caiwereba

PRINT gamosaxuleba1, gamosaxuleba2,....

(gamosaxulebis kerZo SemTxvevas warmoadgens cvladi, an raime konkretuli ricxviTi mniSvneloba).

erTi operatori PRINT-iT SeiZleba erTze meti gamosaxulebis mniSvnelobis gamotana.

mag. PRINT a,b,c

PRINT (a+b)*c, -8.96, f

programaSi SeiZleba "carieli" operatori PRINT-is gamoyeneba. (operatorSi ar iqneba miTiTebuli gamosatani gamosaxuleba). carieli operatori PRINT-is Sesrulebisas ganxorcieldeba gadasvla axal striqonze (gaCndeba erTi damatebiTi carieli striqoni).2. informaciis gamotana TextBox an ListBox-s gamoyenebiT

obieqtebis formaze ganTavsebisas, sistema maT aniWebs saxelebs. rigiT pirveli TextBox-s ganTavsebisas Text1; momdevnos Text2 da a.S. ListBox rigiT pirvel obieqts List1, momdevnos List2 da a.S. TextBox-Si informaciis gamotanis operators aqvs Semdegi saxe:

obieqtis saxeli.Text = gamosaxuleba (an teqsturi informacia)mag. 1. Text1.Text=a 2. Text1.Text=b & c (TextBox-Si gamoitans b da c cvladebis mniSvnelobebs) 3. Text1.Text=2*cos(x)+sqr(b) (Caiwereba miTiTebuli gamosaxulebis gamoTvlis Sedegad miRebuli ricxviTi niSvneloba)

4. Text3.Text= Hello World ListBox-Si informaciis gamotanis operators ki eqneba saxe:

List1.AddItem a ( a cvladis mniSvneloba daematos List1 obieqtSi arsebul

informacias). magaliTad:

1. List1.AddItem exp(x) +abs(r)*(a+b)^(1/3)2. List1.AddItem gaumarjos Pavlesa3. List3.AddItem ygulisxmobis principiT Visual Basic-is obieqtebisaTvis arsebuli Tvisebebis mixedviT, arsebobs principuli gansxvaveba TextBox da ListBox Soris, rac mdgomareobs SemdegSi: yoveli momdevno sainformacio erTeulis gamotanisas TextBox-Si, misi mniSvneloba gadaewereba am momentisatvis masSi arsebul informacias, anu masSi yovelTvis imyofeba mxolod rigiT bolo brZanebiT Setanili informacia.

ListBox- s SemTxvevaSi ki am operatoris yoveli Sesrulebis Sedegad gamotanili informacia, daemateba sias misi axali elementis saxiT. wrfivi struqturis algoriTmis daprogramebaSevadgineT gamosaxulebis mniSvnelobis gamoTvlis algoriTmis bloksqema da programa, Tu ,

blok-sqemis aRwera

mocemuli amocanisaTvis sawyis monacemebs warmoadgenen x da c cvladebi. amitom Tavdapirvelad xorcieldeba maTi mniSvnelobebis Setana kompiuteris mexsierebaSi. momdevno etapze (bloki 3 da 4 ) gamoiTvleba jer Y gamosaxulebis, Semdeg ki Z gamosaxulebis mniSvnelobebi.

gamoTvlebis dasrulebis Semdeg saWiroa miRebuli Sedegis kompiuteris mexsierebidan monitoris ekranze gamotana (bloki 5).

algoriTmis blok-sqema

1.2 3.

4.

5.

zemoT moyvanili programis SesrulebiT miRebuli Sedegi gamotanili iqneba formaze, romelic VISUAL BASIC Tan muSaobis damTavrebis Semdeg daikargeba. zemoT aRwerili xerxiT z cvladis mniSvnelobis gamotana SesaZlebelia TextBox-Sic. am SemTxvevaSi gamotana ganxorcieldeba operatoriT Text1.Text= y= & y. magaliTad, Tu y mniSvneloba 12.7 tolia, am operatoriT TextBox-Si igi iqneba gamotanili Semdegnairad y=12.7 .

logikuri gamosaxuleba

damokidebulebis niSniT (, >=,