М- файл функцияларини тузилиши ва хоссалари. Локал ва глобал ўзгарувчилар. Ўзгарувчи сондаги аргументли функциялар.
М- файл функ ц ияларини тузилиши ва хоссалари. Локал ва глобал ў згарувчилар. Ў згарувчи сондаги аргументли функ ц иялар. Режа: 1. М- файл функцияларини тузилиши ва хоссалари; 2. Локал ва глобал ў згарувчилар; 3. Ў згарувчи сондаги аргументли функ ц иялар.
1.М- файл функ ц ияларини тузилиши ва хоссалари. Матлаб тизимида фойдаланувчи учун аниқ бир мақсадли ҳисоблашларни бажарувчи ва Матлаб каталогида йў қ б ў лган функ ц ия зарур б ў либ қолади. Бунда фойдаланувчи янги функ ц ияни ҳ осил қилиб Матлаб каталогига қ ў шиб қ ў йиш имкониятига эга. Янги функ ц ияни ташкил қилувчи команда ва функ ц иялар ҳар доим матнли м-файлларда жойлашган б ў лади. Янги яратилган, бир нечта командалар кетма-кетлигидан иборат функциялар ўзининг номига, локал характердаги ўзгарувчиларга эга бўлиб, унга параметрлар орқали мурожат қилиш мумкин бўлади. Функсция яратиб, сақланаётган м-файлнинг номи алифбо белгилардан бошланиб *. m кенгайтмасига эга бўлади. Кенгайтмасиз м- файлнинг номи бу Матлабда мурожат қилиш мумкин бўлган файл функция ёки ишчи файлнинг номидир. Функция яратилаётган м-файлнинг бошланғич қаторлари матнли шарҳлардан иборат бўлиб, м-файлда яратилаётган функцияни моҳиятини очиб берувчи бўлади. Ундан кейинги биринчи қаторда аниқланган функция номи м-файлнинг кенгайтмасиз номи билан бир хил бўлиши керак. Умумий кўринишида м-файлдаги функция ҳар доим function сўзидан бошланиб, қуйидагича бўлади: Function y=<функция номи>. Функция номидан кейин оддий қавс ичига аргументлар (параметрлар) вергул(,) билан ажратиб ёзилади. Масалан, дискдаги sred.m номли файлдаги қуйидаги код: function [y, sr, sd]=sred(x) n=length(x); sr=sum(x)/n; sd=sqrt(sum(x-sr).^2/n);
y=(sr+sd)/2; sred номи билан аниқланган ва х вектор координаталари ўрта арифметигини ( sr ), стандарт четланишини ( sd ) ҳамда уларнинг ўртасини ( y ) ҳисобловчи янги функцияни аниқлайди. Функция ичидаги барча ўзгарувчилар локал характерга эгадир, sum(x)-эса вектор координаталари йиғиндисини ҳисобловчи Матлаб функциясидир. М-файл функция ичидагина кўринадиган функция ости функцияси ҳам бўлиши мумкин. Бу функция ости функцияси ҳам асосий файл функция командалардан кейин ёзилиб, у ҳам худди асосий файл функция каби аниқланади. Масалан, srg функция sred файлдаги функция ости бўлса, код function [y, sr, sd]=sred(x) n =length(x); sr=srg(x,n); sd=sqrt(sum((x-srg(x,n)).^2)/n); function sr=srg(x,n) sr=sum(x)/n; Агар Матлаб функсияни номи б ў йича топа олмаса , у ҳолда шу номдаги файлни қидиради . Функ ц ия топилгандан кейин , уни кейинчалик ишлатиш учун Матлаб тизими функ ц ияни хотирага компеля ц ия қилади . Функ ц ионал м-файлдан чақирилса, Матлаб функ ц ияни анализ қилади ва хотирада сақлаб қ ў яди. Бу функ ц ия, хотира clear буйру ғ и билан тозаланмагунча хотирада сақланиб туради. Матлаб каталогидаги барча тригонометрик функ ц иялар радиан аргументларда ҳисоблашни бажаради. Энди биз градусларда берилган ихтиёрий бурчакнинг синусини ҳисоблаб берувчи файл функ ц ия ҳосил
қилиш мисолини к ў рамиз. Бунда, шунга э ъ тибор бериш керакки, функ ц ия номи файл номи билан бир хил б ў лиши керак. Бу функ ц ия учун sing ( x ) функ ц ия номи қилиб оламиз. Масалани ҳал қилувчи код қуйидагича б ў лади: Function y = sing ( x ) %Бу функ ц ия градусларда берилган %аргументнинг синусини ҳисоблаб беради y = sin ( x .* pi ./180) Энди тизим ичида х нинг аниқ градус қийматлари билан sing ( x ) га мурожат қилсак, унга қиймат чиқариб берилади. Юқоридаги ўхшаш мисоллардан бир нечтасини мустақил бажаринг. м-файл функция қуйидаги хоссаларга эга бўлади: y function эълон билан бошланади, ундан кейин ўзгарувчининг номи ва чиқиш параметрларнинг рўйҳати кўрсатилади; Функция ўз қийматини қайтаради ва уни математик ифодаларда номи(параметрлар рўйҳати) кўринишида ишлатиш мумкин; Файл-функциянинг қобиғидаги ҳамма ўзгарувчилар локал ўзгарувчилардир, яъни фақат функциянинг ичида ўринли; Файл-функция мустақил дастурий модул бўлиб, бошқа модуллар билан ўзининг кириш ва чиқиш параметрлари орқали алоқада бўлади; Файл-функ ц ия Матлаб тизимини кенгайтириш воситасидир; Файл-функ ц ия компеля ц ия қилинади ва бажарилади, ҳосил қилинган машина кодлари Матлаб тизимининг ишчи соҳасида сақланади. 2. Локал ва глобал ў згарувчилар. Функ ц ия параметрларининг р ў йҳатида к ў рсатилган параметрлар локал ў згарувчилар б ў либ функ ц ия
чақирилганда уларнинг ў рнига қ ў йиладиган қийматларни олиб ў тиш учун хизмат қилади. Агар функциядаги ўзгарувчилар глобал бўлиши зарур бўлса, улар глобал var 1, var 2, … командаси ёрдамида эълон қилинади. Қуйидаги мисолни кўрайлик. Таҳрирлагич ойнасида Z=x2 + y2 ифодани ҳисобловчи икки ўзгарувчили (x вa y) fun функцияси ҳосил қилинган. Дастурда х ва y ўзгарувчилар fun(x,y) функциянинг параметрлари бўлганликлари сабабли, улар локал ўзгарувчилардир. Функция қобиғидан ташқарида уларга нол қийматлар берилган. Агар функция қобиғида fun(2,3)нинг қиймати ҳисобланадиган бўлса уларга x=2 вa y=3 қийматлар берилади. 2. Lokal va global o'zgaruvchilar. Funksiya parametrlarining ro'yxatida ko'rsatilgan parametrlar lokal o'zgaruvchilar bo'lib funksiya chaqilirganda ularning o'rniga qo'yiladigan qiymatlarni olib o'tish uchun xizmat qiladi. Agar funksiyadagi o'zgaruvchilar global bo'lishi zarur bo'lsa, ular global var1, var2,… komandasi yordamida e'lon qilinadi. quyidagi misolni ko'raylik. Taxrirlagich oynasida Z=+ ifodani hisoblovchi ikki o'zgaruvchili (x va y) fun funksiyasi hosil qilingan. Dasturda h va y o'zgaruvchilar fun(x,y) funksiyaning parametrlari bo'lganliklari sababli, ular lokal o'zgaruvchilardir. Funksiya qobig`idan tashqarida ularga nol qiymatlar berilgan. Agar funksiya qobig`ida fun(2,3)ning qiymati hisoblanadigan bo'lsa ularga x=2 va y=3 qiymatlar beriladi.