-маъруза: Процедура-функцияни эълон =илиш. Функцияга мурожаат =илиш ва ундан фойдаланиш




Download 4.07 Mb.
bet14/21
Sana03.12.2023
Hajmi4.07 Mb.
#110428
1   ...   10   11   12   13   14   15   16   17   ...   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

10-маъруза: Процедура-функцияни эълон =илиш. Функцияга мурожаат =илиш ва ундан фойдаланиш.


Щажми катта ва мураккаб дастурларни ишлаб чи=ишда, табиийки катта =ийинчиликларга дуч келинади. Катта, комплекс дастурларни зарур муддатда яратишга битта дастурчининг ва=ти етмайди. Бундай щолларда, яъни мущим ащамиятга эга былган ва =ис=а муддатларда яратилиш керак былган дастурларни ишлаб чи=иш учун дастурчиларнинг катта гурущини жалб этишга ты\ри келади. Бундай, ягона дастурни яратишдаги параллел иш олиб боришда процедура ва функцияларнинг роли жуда катта былади. Бажарилиши керак былган ишни муста=ил былимларга ажратилиб, щар бир муста=ил иш алощида дастурланиб, кейинчалик улар ягона - асосий дастурга бирлаштирилади.


Асосий дастурда ишлатилувчи ызгарувчилар ва процедура параметрларини =андай танлаб олиш керак деган муаммо, бажариладиган ишнинг энг о\ир =исмларидан бири былиб =олади. Агар уларни бир-бирларига бо\лаб юборилса, у щолда асосий дастурдаги бирор ызгарувчига киритилган ызгартириш, процедурада ишлатилган ва шу ызгарувчига бо\ли= барча ишларни =айтадан тащлил =илиб, текшириб чи=ишга олиб келади. Бундай чалкаш ва о\ир ишни бажаришнинг =ийинлиги дастур тузишда параллел, бир нечта дастурчининг иш олиб боришига щала=ит беради.
Шунинг учун, процедура ва функцияларни ёзишда щар бир дастурга ызи ечаётган масалага мувофи= щолда, турли хил ички ызгарувчилар, дастурли объектлар ызгарувчиларининг турли =ийматларини танлаб олиш щу=у=и берилади. Хаттоки, битта ызгарувчини турли хил вазифаларда ишлатса щам былади. Visual Basic тилида бундай масалани щал =илиш учун локаллаштириш принципи ишлаб чи=илган, яъни процедура ёки функцияда ишлатилган ызгарувчи шу процедура ёки функциянинг таъсир доирасида (ичида) гина ыз =ийматини са=лаб =олади. Процедура ва функцияларнинг ичида ани=ланиб, =ийматланган ызгарувчиларни локал (ички) ызгарувчилар деб аталади. Таш=арида, яъни асосий дастурда киритилган ызгарувчилар эса умуман олганда дастурнинг ихтиёрий жойида ыз =ийматини са=лаб =ола олади. Бу ызгарувчиларни глобал (таш=и) ызгарувчилар деб аталади.
+уйидаги мисолда локаллаштириш принципи я==ол кызга ташланади:

Const n = 1


Dim t, x As String
Private Sub p(x, y As Double)
Dim n As Double
n = x + t
t = y
MsgBox (Str(n) + " " + Str(t) + " " + Str(x))
End Sub
Private Sub Command1_Click()
t = n / 2
x = "+"
Call p(n, 0.8)
MsgBox (Str(n) + " " + Str(t) + " " + x)
End Sub

бу ерда t – асосий дастурнинг глобал ызгарувчиси;


x, y – Р процедурасининг формал параметрлар;
n – P процедурадаги локал ызгарувчи.

Математика курсидан функция тушунчаси бизга яхши таниш былиб, унинг ёрдамида функция ва аргумент ыртасидаги бо\ли=лик ани=ланади. Visual Basic тилида щам функция тушунчаси киритилган былиб, уни шартли равишда икки турга ажратсак былади: стандарт функциялар ва дастурчи томонидан ани=ланган процедура - функциялар. Стандарт функциялар щар бир алгоритмик тил учун ани=ланиб, амалда кып учраб турувчи функцияларнинг =ийматларини щисоблаб беришга мылжалланган. Масалан, Sin(х), Cos(х), Exp(х), Abs(х), sqr(х) ва щ.к.


Худди cтандарт функциялар каби дастурчи щам ызи учун зарур, муста=ил дастур объектларини функциялар кыринишида ани=лаб, ундан керакли пайтда фойдаланиши мумкин.
Функция Visual Basic тилида =уйидаги структура быйича ани=ланади:

[Private][Public][Static] Function процНоми (Параметрлар) [as type]


операторлар
End Function

Ю=орида эслатиб ытганимиздек, функциялар щам процедуралар каби муста=ил дастурлар щисобланиб, асосий дастур ор=али бош=арилади ва худди асосий дастур ва процедурага ыхшаш cтруктурада ёзилади.


Процедура учун айтилган гапларнинг деярли барчаси функция учун щам ыринлидир. Функциянинг процедурадан асосий фар=и =уйидагилардир:

  • функция cарлавщаси бош=ача ани=ланади;

  • функциянинг иши давомида олинадиган натижа функциянинг исмига ызлаштирилади, яъни функциянинг тана =исмида албатта, функция исмига мос типли =иймат ызлаштирилган былиши керак;

  • функциядан асосий дастурга унинг исми ор=али биттагина =иймат берилади.

Функцияга мурожат щам худди процедурадаги каби амалга оширилади, лекин функциянинг мос типли ифодада =атнашиши каби =ышимча имконияти мавжуд.
Энди функцияни ани=лаш ва унга мурожат =илишни тыли=ро= ырганиш учун =уйидаги мисолни кыриб чи=амиз:
Мисол: f(n)  n! (n!  1 * 2 * 3 * ...* n - факториал) функциядан фойдаланиб,
- ифодани щисоблашни ташкил =илинг:
Dim k, i As Integer
Dim m As Integer
Dim y As Double
Function Fact(n As Integer) As Integer
Dim p As Integer
Dim j As Integer
j = 1
For p = 1 To n
j = j * p
Next p
Fact = j
End Function
Private Sub Command1_Click()
k = Val(Text1.Text)
m = Val(Text2.Text)
y = (Fact(2) + Fact(3)) / (Fact(5) + Fact(3)) * Fact(k + 1) / Fact(m)
MsgBox (Str(y))
End Sub

Функцияларни ани=лашда доим шундай щаракат =илиш лозимки, унинг тана =исмида формал параметрлар ва функцияни ани=лаш учун зарур былган локал ызгарувчиларгина =атнашсин. Дастурнинг глобал ызгарувчисига иложи борича процедура ёки функция ичидан туриб =иймат бермаслик керак, акс щолда дастур хато натижа бериши мумкин.


Рекурсив функциялар


Visual Basic тилида процедура – функциялар билан ишлашда, функцияларнинг рекурсивлик щоссасидан фойдаланиш имконияти яратилган.
Рекурсия тушунчасига мисол =илиб оддий факториал щисоблашни келтириш мумкин:

бу ерда кыриниб турибдики n! =иймати (n-1)! ор=али ани=ланаяпти, яъни рекурсия дегани ызи ор=али ызини ани=лаш маъносини англатади.
Visual Basic тили щам функцияларни рекурсив ани=лаш имкониятини беради. Функцияни рекурсив ани=лаш унинг тана =исмида ызига - ызи мурожат =илиш ор=али амалга оширилади.
Ю=оридаги факториал щисоблашни рекурсив функциялар ор=али амалга оширайлик:

Dim n As Integer


Dim y As Integer

Function Fact(m As Integer) As Integer


Dim k As Integer
If m = 0 Then Fact = 1 Else Fact = Fact(m - 1) * m
End Function

Private Sub Command1_Click()


n = Val(Text1.Text)
y = Fact(n)
MsgBox (Str(y))
End Sub

Функцияларни рекурсив ани=лаш =ис=а ва тушунарли тилда былади, рекурсив эмас ани=лаш эса узо= ва функцияни кыриниш эффектини бузади, лекин биринчи щолда сарфланган ЭЩМ ва=ти ва хотира нисбатан анча ю=оридир.





Download 4.07 Mb.
1   ...   10   11   12   13   14   15   16   17   ...   21




Download 4.07 Mb.

Bosh sahifa
Aloqalar

    Bosh sahifa



-маъруза: Процедура-функцияни эълон =илиш. Функцияга мурожаат =илиш ва ундан фойдаланиш

Download 4.07 Mb.