-расм. Visual Basic да кодлар ойнаси




Download 4,07 Mb.
bet13/21
Sana03.12.2023
Hajmi4,07 Mb.
#110428
1   ...   9   10   11   12   13   14   15   16   ...   21
Bog'liq
Vizual maruza
file (23), 1-kurs. Majmua IQTISOD, Chrome бўйича инструкция, 2-амалий, 1,Qishloq xo\'jaligi va sanoat sohasidagi o\'zgarishlar. Reja Qishl, Baslawish klass (2), Mustaqil ish2 MT A, KAMOLIDDIN KOMPYUTERNI TASHKIL ETISH, 596 10.11.2023, O‘zbekiston respublikasi oliy va o‘rta maxsus ta’lim vazirligi t, KICHIK BIZNESNI SOLIQQA TORTISHNING UMUMIY TAVSIFI., 1-Mavzu “Milliy g„oya asosiy tushuncha va tamoyillar” fanining-fayllar.org, TEST
11-расм. Visual Basic да кодлар ойнаси

Ю=орида айтиб ытганимиздек, процедура щисоблаб берган натижалар унинг фактик параметрлари ор=али асосий дастурга узатилади. Лекин, айрим пайтларда процедура параметрсиз щам былиши мумкин. Бу щолда асосий дастурнинг барча параметрлари процедура параметрлари ролини бажаради. Параметрсиз процедурада щам процедуранинг барча былимлари са=ланиб =олади, фа=ат параметрлар рыйщатигина =атнашмайди.


Процедураларни ани=лаш ва улардан фойдаланишни =уйидаги мисол ёрдамида кыриб чи=айлик:
Мисол: u max (x  y, x * y), v  max ( 0.5, u) – берилган x ва y ща=и=ий сонлардан фойдаланиб u ва v =ийматларни ани=лаш.
бу ерда x, u - =ийматлари киритиладиган ща=и=ий типли ызгарувчилар.
1. Масалани ечиш дастурини процедурадан фойдаланмай тузилган щоли:
Dim x, y, u, v As Double
Dim a, b, s As Double
Private Sub Command1_Click()
x = Val(Text1.Text)
y = Val(Text2.Text)
a = x + y: b = x * y
If a > b Then s = a Else s = b
u = s
a = 0.5: b = u
If a > b Then s = a Else s = b
v = s
MsgBox (Str(u) + " " + Str(v))
End Sub

Ащамият берсангиз, дастурдаги шартли оператор икки марта такрорланиб, бир хил иш бажарди.


2. Масалани ечиш дастурини параметрсиз процедурадан фойдаланиб тузилган щоли (энди ю=оридаги дастурда йыл =ыйилган камчиликни процедуралар ор=али тузатишга щаракат =иламиз):

Dim x, y, u, v As Double


Dim a, b, s As Double

Private Sub max1() ‘ max1 процедураси ташкил этилди


If a > b Then s = a Else s = b
End Sub

Private Sub Command1_Click()


x = Val(Text1.Text)
y = Val(Text2.Text)
a = x + y: b = x * y
Call max1 ‘ max1 процедурасига мурожаат
u = s
a = 0.5: b = u
Call max1 ‘ max1 процедурасига мурожаат
v = s
MsgBox (Str(u) + " " + Str(v))
End Sub

Асосий дастурнинг операторлар =исмида икки марта ёзилган мах1 параметрсиз процедурасига мурожаат, эълон =илинган процедурани икки марта асосий дастурга олиб келиб ишлатишни ташкил =илади. Эътибор берган былсангиз процедурага дастурнинг ихтиёрий =исмидан мурожаат Call калит сызи ёрадмида амалги оширилмо=да. Ащамият берилса, иккинчи дастур биринчи процедурасиз тузилган дастурга кыра ихчамро= ва соддаро=дир. Биз киритган процедура щозирча фа=ат иккита ща=и=ий сон ичидан каттасини ани=лаб берди щолос, шунинг учун дастур матнининг щажмини камайтиришдан эришган юту= салмо=ли былмади. Лекин, процедуралар асосан кып щажмли матндаги амалларни, вазифаларни бажаришга мылжалланади ва бу щолда эришилган юту= салмо\и анча ю=ори былади.


Параметрсиз процедуранинг асосий камчилиги, унинг асосий дастурга ва ундаги маълум параметрларга бо\ланиб =олганлигидир.
Процедура билан асосий дастурни бо\лайдиган асосий фактор бу – процедура параметрларидир. Параметрларни иккита типга ажратилади: =ийматли параметрлар (параметр-=иймат), ызгарувчили параметрлар (параметр - ызгарувчи).
Параметр - =иймат бу процедурани ишлаш жараёнини таъминловчи параметрлар щисобланади, яъни асосий дастур =ийматларини процедурага узатадиган параметрлардир.
Энди, ю=орида кыриб чи=илган сонларни энг каттасини топиш алгоритмининг дастурини =ийматли параметр билан ёзилган процедуралар ор=али амалга оширайлик:

Dim x, y, u, v As Double


Dim s As Double

Sub max1(a, b As Double)


If a > b Then s = a Else s = b
End Sub

Private Sub Command1_Click()


x = Val(Text1.Text)
y = Val(Text2.Text)
Call max1(x + y, x * y)
u = s
Call max1(u, 0.5)
v = s
MsgBox (Str(u) + " " + Str(v))
End Sub

бу ерда a, b - процедуранинг =ийматли формал параметрлари.


Процедурага мурожат =илишда формал ва фактик параметрларнинг типлари ызаро мос келиши керак, акс щолда дастур хато тузилган щисобланади. Ю=оридаги дастурдан кыриниб турибдики, а ва b формал параметрлар ырнига натижавий =ийматлари маълум ифодалар =ыйилди. Демак, =ийматли фактик параметрлар ырнига, шу типли натижага эришувчи ифода ёзилиши мумкин. Бундан таш=ари, процедурада киритилган а ва b параметрлари фа=ат процедуранинг ичидагина маънога эга, таш=арида, мисол учун асосий дастурда улар тушунарсиз, =ийматлари ани=ланмаган ми=дорлардир. Шунинг учун, =ийматли параметрларга процедура натижаларини ызлаштириб, асосий дастурга узатиб былмайди.
Ю=орида тузилган дастурнинг асосий камчилиги, топилган катта cон доим s ызгарувчисига ызлаштирилади. Мисолимиз шартига кыра эса, натижалар u ва v ызгарувчиларига ызлаштирилиши керак эди. Шунинг учун, дастурда икки марта =ышимча us ва vs ызлаштириш операторлари ёзилди.
Бу камчиликни тузатиш учун процедурага яна бир параметрни киритамиз. Лекин, киритилган бу параметр процедурага =иймат олиб кирмайди балки, процедура натижасини асосий дастурга олиб чи=иб кетади. Бундай параметрни параметр - ызгарувчи деб аталади.
Параметр-ызгарувчини параметр-=ийматдан фар= =илиш учун процедурани ани=лашдаги параметрлар рыйщатида ызгарувчи олдидан ByRef хизматчи сызи ёзилади. Параметр - ызгарувчидан сынг албатта, унинг типи кырсатиб =ыйилади. Ю=орида айтганимиздек, формал параметр - =иймат ырнига процедурага мурожат ва=тида шу типли ифода ёзиш мумкин былса, параметр - ызгарувчи учун бу щол мутла=о мумкин эмас.
Процедурани мукаммаллаштириб бориш динамикасини щис этиш учун яна, ю=орида кырилган максимум топиш мисолининг дастурини параметр - ызгарувчи ишлатган щолда кыриб чи=амиз:

Dim x, y, u, v As Double


Dim s As Double

Sub max1(a, b As Double, ByRef s As Double)


If a > b Then s = a Else s = b
End Sub

Private Sub Command1_Click()


x = Val(Text1.Text)
y = Val(Text2.Text)
Call max1(x + y, x * y, u)
Call max1(u, 0.5, v)
MsgBox (Str(u) + " " + Str(v))
End Sub

Шундай =илиб, битта дастурни процедуранинг уч хил варианти учун тузиб чи=иб, натижада ихчам ва содда дастурга эга былдик.





Download 4,07 Mb.
1   ...   9   10   11   12   13   14   15   16   ...   21




Download 4,07 Mb.

Bosh sahifa
Aloqalar

    Bosh sahifa



-расм. Visual Basic да кодлар ойнаси

Download 4,07 Mb.