Dasturlash asoslari. Dasturlashni asosiy vositalari. Matlabda ma’lumotlarni va fayllarni toifa(tip)lari. Stеnariya fayllarini tuzilishi va xossalari.
![Dasturlash asoslari. Dasturlashni asosiy vositalari. Matlabda
ma’lumotlarni va fayllarni toifa(tip)lari. Stеnariya fayllarini tuzilishi va
xossalari.
Reja:
1.Matlabda ma’lumotlar toifalari;
2.Fayllarning toifalari;
3.Ishchi fayllar.Stenariy fayllarning tuzilishi va xossalari.](/data/documents/56e65be6-6f61-4a4a-8aad-ebcbad01b01c/page_1.png)
![1. Matlabda ma’lumotlar toifalari. Matlab tizimidagi dasturlar matn
formatidagi m-fayllardir. Matlab tizimida dasturlash tili quyidagi vositalarga
ega:
Har xil turdagi ma’lumotlar;
Konstantalar va o’zgaruvchilar;
Operatorlar(matematik ifodal а rning operatorlarini ham o’z
ichiga oladi) ;
Biriktirilgan komanda va funksiyalar;
Foydalanuvchining funksiyalari;
Boshqaruvchi strukturalar;
Sistema operatorlari va funksiyalar;
Dasturlash tilining kengaytirish vositalari.
Matlab tizimida dasturlash kodlari yuqori darajali tild а yoziladi va
ushbu til tipik interpretator bo’lib hisoblanadi, ya’ni dasturning har xil
instruksiyasi darhol taniladi va bajariladi. Hamma instruksiyalarni, ya’ni
to’liq dasturni kompilyatsiya qilish etapi mavjud emas. Matlab bajariluvchi
dasturlarni yaratmaydi. Dasturlar faqat m-fayllar ko’rinishida mavjud bo’ladi.
Dasturlarning ishlash uchun Matlab muhiti zarur. Lekin М atlabda yozilgan
dasturlarni C va C++ dasturlash tillariga translayatsiya qiluvchi
kompelyatorlar yaratilgan. Ular Matlab muhitida tayyorlangan dasturlarni
bajariluvchi dasturlarga aylantirish masalasini hal qilish imkoniyatini beradi.
Matlab tizimi uchun kompilyatorlar mustaqil dasturiy vositalardir.
Shuni esda tutish kerakki, Matlabning hamma instruksiyalari ham
kompilyatsiya beravermaydi, ya’ni kompilyatsiyadan oldin bunday dasturni
qayta ishlash talab qilinadi. Kompilyatsiya qilish dasturlarning bajarish
tezligi 10-15 martagacha ortishi mumkin.
Matlabda quyidagi toifadagi ma’lumotlardan foydalaniladi:
-sonli toifa;](/data/documents/56e65be6-6f61-4a4a-8aad-ebcbad01b01c/page_2.png)
![-qatorlar va simvollar;
-obyektlar (matritsalar);
Sonli toifadagi berilgan ikki xil haqiqiy va kompleks sonlar bo’lishi
mumkin. Haqiqiy sonlar xuddi matematikadagi kabi ishlatiladi. Butun va kasr
qismlari nuqta(.) bilan ajratiladi. Kompleks sonlar esa, avval eslatganimizdek
a+ib yoki a+bi ko’rinishida yoziladi, bu yerda a va b mos ravishda kompleks
sonning haqiqiy va mavhum qismlari deyiladi, i-belgi (yoki I, J, j) mavhum
birlikni bildiradi(i^2=-1). Kompleks sonni bildiruvchi I belgi b ning chap
yoki o’ng tomoniga probelsiz yozilishi kerak, aks holda Matlab tizimi xatolik
haqida gapiradi.
Umuman, ixtiyoriy toifadagi son matritsalarni, vektorlarni yoki skalyar
miqdorlarni elementlari (qiymatlari) bo’lishi mumkin. Xotirada barcha sonlar
ikki karrali aniqlikdagi son ko’rinishida saqlanadi. Sonlar aniqlangan
oraliqlarning chegaralari hamda mashina aniqligi tizim o’zgaruvchilari eps,
realmax va realmin orqali beriladi.
Matlabda apostroflar ichiga joylashtirilgan simvollar ketma-ketligi
qator deb tushiniladi. Qatorlarga misol qilib quyidagilarni keltirish mumkin:
a=’Matlab’
b=’function’
Bir nechta qatorlarni birlashtirish uchun xuddi vector va matritsalar
kabi ([…]) kvadrat qavslar ishlatiladi. Masalan,
str1=[‘This’,’is’,’string’],
str2=[‘Sistema’,’Matlab’]
kabi ifodalar mos ravishda quyidagi simvolli qatorlarni beradi.
str1=‘This is string’
str2=‘Sistema Matlab’
Obyekt(matritsa)lar haqida avvalgi darslarimizda yetarlicha
ma’lumotlar berilgan.](/data/documents/56e65be6-6f61-4a4a-8aad-ebcbad01b01c/page_3.png)
![Qatorlarni xosil qiluvchi va ularga ishlov beruvchi Matlabning ba’zi
funksiya(komanda)larini keltirib o’tamiz:
blanks(n)- n ta probeldan iborat qatorni bildiradi;
num2str(n)- haqiqiy sonni qatorga aylantiradi;
deblanks(s)- s qatordan kerak bo’lmagan probellarni yo’qotadi;
index(s,t)- s qatorda t qator ostining birinchi marta ko’rinishi holatini
chiqaradi. Agar qator osti bo’lmasa nolni chiqaradi;
randex(s,t)- s qatorda t qator ostining oxirgi marta ko’rinshi holatini
chiqaradi. Agar qator osti bo’lmasa nolni chiqaradi;
strcmp(s1,s2)- 1 ni chiqaradi agar s1, s2 qatorlar bir xil bo’lsa, aks
holda 0 ni chiqaradi;
strrep(s,x,y)- x qator ostining s qatorga barcha kirishlarni y qatorga
kirishga almashtiradi;
bin2dec(s)- qator ko’rinishida tasvirlangan ikkilik sistemasidagi songa
mos o’nlik sistemasidagi sonni chiqaradi;
dec2bin(n)- o’nli sistemasidagi manfiy bo’lmagan songa mos ikkilik
sistemsidagi sonni qator ko’rinishida chiqaradi;
o dec2hex(n)- manfiy bo’lmagan o’nlik sistemasidagi songa mos
o’n oltilik sistemasidagi sonni qator ko’rinishida chiqaradi;
hex2dec(s)- o’n oltilik sistemasidagi qator ko’rinishidagi songa mos
o’nlik sistemasidagi sonni chiqaradi;
str2num(s)- s qatorni songa aylantiradi.
2. Fayllarning toifalari. Shunday masalalar borki, ularni yechish uchun
bir nechta komandalar yoki qatorlarni, ularni bajarishdan avval yozishga
to’g’ri keladi. Bunday masalalarni hal qilish uchun Matlabda m-fayllardan
foydalaniladi. Buning uchun ya’ni m-faylda Matlabning bir nechta
komandalari ketma-ketligi yoziladi va ular shu faylga nom berib saqlab
qo’yiladi. Natijada bu fayldagi komandalar ketma-ketligi Matlab komandalar](/data/documents/56e65be6-6f61-4a4a-8aad-ebcbad01b01c/page_4.png)
![oynasidan faylga murojat qilish orqali bajarilishi mumkin. Mana shunday
qo’shimcha xosil qilingan fayl ishchi fayl yoki fayl stenariy deyiladi. Bunday
fayl nom berib saqlanayotganda tizim avtomatik ravishda uni nomiga *.m
kengaytma beradi.
Demak, ishchi fayllar- Matlab komandalar ketma-ketligini o’z ichiga
oluvchi oddiy fayllardir. Ishchi fayllar matn(tekst) taxririda va formatida
tayyorlangan bo’lishi shart va Matlab yuklatilgan katalogda saqlangan
bo’lishi kerak. Fayl nomi ixtiyoriy faylga berish mumkin.
.m kengaytmali nom bo’ladi. Ishchi m-fayl yaratishga doir misol
ko’ramiz. Quyidagi:
y=sin(x) , xє[-7Π; 7 Π]
Funksiyaning grafigini chizilsin. Buning uchun ishchi m-fayldan
foydalanamiz . XXplot.m nomli fayl chaqiramiz va unda Matlabning matnli
tahrir va formatda quyidagicha komandalar ketma-ketligini kiritamiz:
% o dan boshlab kengayuvchi sinusoida grafigi
% funksiya ko’rinishi y=sin(x)
x=-7*pi:pi/50:7*pi;
y= sin(x);
plot(x,y),…
title(‘kengayuvchi sinusoida’),…
xlabel(‘x’),…
ylabel( ‘y’),…
text(2,2,’y=
sin(x)’),…
grid on](/data/documents/56e65be6-6f61-4a4a-8aad-ebcbad01b01c/page_5.png)
![Natija:](/data/documents/56e65be6-6f61-4a4a-8aad-ebcbad01b01c/page_6.png)
![Bu yerda birinchi ikkita komanda % belgi bilan belgilangan uchun
Matlab tizimi ularni matnli sharx sifatida qabul qiladi. Matlabda % belgidan
keyin yozilgan ixtiyoriy komanda yoki matn sharx deb qabul qilinadi va
bajarilmaydi. Misollardagi boshqa komandalar ta’rifini kelgusi
mavzularimizda keltiramiz.
Endi yuqoridagi komandalar ketma-ketligi yozilgan fayl XXplot.m
nomi bilan Matlabning ishchi katalogida saqlab qo’yilishi kerak. Biz Matlab
tizimidan XXplot komandasini terib, kengayuvchi sinusoidaning grafigini
olsak bo’ladi.
3. Ishchi fayllar.Stenariy fayllarning tuzilishi va xossalari. Komandalar
rejimida ishlash dasturlash emas. Matlab tizimida dasturlarning tashqi atributi
bo’lib m-faylda yozilgan amallarning ketma-ketligi hisoblanadi. Matlabda m-
faylni yaratish uchun biriktirilgan tahrirlagichdan yoki ASCII formatini
qo’llaydigan har qandau matn tahrirlagichdan foydalanish mumkin.
Tayyorlangan va diskka yozilgan m-fayl Matlab tizimining bir qismiga
aylanadi va uni komandalar satridan yoki boshqa m-fayldan chaqirish
mumkin. Ikki turdagi m-fayllar mavjud: fayl stenariyalar va fayl funksiyalar.
Ular, yaratilish jarayonida Matlab tizimiga biriktirilgan m-fayllarning
tahrirlagich/sozlagich yordamida sintaksis bo’yicha nazoratdan o’tgan
bo’lishi kerak.
Script-fayl deb ataluvchi fayl-stenariyalar kirish va chiqish parametrlari
bo’lmagan qator komandalarning to’plamidir. Ular quyidagi tarkibga ega
bo’ladilar:](/data/documents/56e65be6-6f61-4a4a-8aad-ebcbad01b01c/page_7.png)
![ <<Asosiy izoh;
%Qo’shimcha izoh;
Turli ifodalarni o’z ichiga oluvchi faylning qobig’i.
Fayl-stenariy quyidagi xossalarga ega bo’ladi:
Kirish va chiqiah argumentlari bo’lmaydi;
Ishchi sohadagi ma’lumotlar bilan ishlaydi;
Bajarilish vaqtida kompilyatsiya bo’lmaydi;
Fayl ko’rinishga keltirilgan, sessiyadagiga o’xshash amallar
ketma-ketligidan iborat bo’ladi.
Matnli izohning birinchi satri asosiy izoh va keying satrlari qo’shimcha
izoh bo’lib hisoblanadi. Asosiy izoh lookfor va help katalog_nomi
komandalari, to’liq izohlar esa help fayl_nomi komandasi bajarilganda
ekranga chiqadi. Quyidagi fayl-stenariyani ko’raylik:
x=xmin:0.1:xmax;
plot(x,sin(x),'r')
grid on
Dasturni pcr nomi bilan diskda saqlaymiz va komandalar oynasida
quyidagilarni kiritamiz:](/data/documents/56e65be6-6f61-4a4a-8aad-ebcbad01b01c/page_8.png)
![>> xmin=-5;
>> xmax=15;
>> pcr
Fayl stenariy ishga tushadi va ekranda quyidagicha tasvir hosil bo’ladi:](/data/documents/56e65be6-6f61-4a4a-8aad-ebcbad01b01c/page_9.png)
![Izohlarda % belgisi satrning birinchi pozitsiyasiga yozilishi kerak. Aks
holda help name komandasi izohni qabul qilmaydi va No help comments
found in-name.m ko’rinishidagi axborotni beradi.
Bunday faylni ishga tushirish uchun xmin va xmax o’zgaruvchilar
oldindan tayyorlangan bo’lishi kerak. Fayl-stenariyalardaishlatiladigan
o’zgaruvchilar global o’zgaruvchilar bo’lib hisoblanadi, ya’ni ular sessiya
komandalarda ham dasturiy bloklarning (jumladam fayl-stenariyalarning)
ichida ham bir xil ishlaydi. Shuning uchun sessiyada berilgan qiymatlar
faylda ishlatiladi. Fayl-stenariyalarning nomlaridan funksiyaning parametrlari
sifatida foydalanish mumkin emas, chunki fayl-stenariya qiymatlarni
qaytarmaydi. Fayl-stenariyalarni kompelyatsiya qilib bo’lmaydi. Ular fayl-
funksiyalarga aylantirilgandan keyingina kompelyatsiya qilinishi mumkin.](/data/documents/56e65be6-6f61-4a4a-8aad-ebcbad01b01c/page_10.png)
Dasturlash asoslari. Dasturlashni asosiy vositalari. Matlabda ma’lumotlarni va fayllarni toifa(tip)lari. Stеnariya fayllarini tuzilishi va xossalari. Reja: 1.Matlabda ma’lumotlar toifalari; 2.Fayllarning toifalari; 3.Ishchi fayllar.Stenariy fayllarning tuzilishi va xossalari.
1. Matlabda ma’lumotlar toifalari. Matlab tizimidagi dasturlar matn formatidagi m-fayllardir. Matlab tizimida dasturlash tili quyidagi vositalarga ega: Har xil turdagi ma’lumotlar; Konstantalar va o’zgaruvchilar; Operatorlar(matematik ifodal а rning operatorlarini ham o’z ichiga oladi) ; Biriktirilgan komanda va funksiyalar; Foydalanuvchining funksiyalari; Boshqaruvchi strukturalar; Sistema operatorlari va funksiyalar; Dasturlash tilining kengaytirish vositalari. Matlab tizimida dasturlash kodlari yuqori darajali tild а yoziladi va ushbu til tipik interpretator bo’lib hisoblanadi, ya’ni dasturning har xil instruksiyasi darhol taniladi va bajariladi. Hamma instruksiyalarni, ya’ni to’liq dasturni kompilyatsiya qilish etapi mavjud emas. Matlab bajariluvchi dasturlarni yaratmaydi. Dasturlar faqat m-fayllar ko’rinishida mavjud bo’ladi. Dasturlarning ishlash uchun Matlab muhiti zarur. Lekin М atlabda yozilgan dasturlarni C va C++ dasturlash tillariga translayatsiya qiluvchi kompelyatorlar yaratilgan. Ular Matlab muhitida tayyorlangan dasturlarni bajariluvchi dasturlarga aylantirish masalasini hal qilish imkoniyatini beradi. Matlab tizimi uchun kompilyatorlar mustaqil dasturiy vositalardir. Shuni esda tutish kerakki, Matlabning hamma instruksiyalari ham kompilyatsiya beravermaydi, ya’ni kompilyatsiyadan oldin bunday dasturni qayta ishlash talab qilinadi. Kompilyatsiya qilish dasturlarning bajarish tezligi 10-15 martagacha ortishi mumkin. Matlabda quyidagi toifadagi ma’lumotlardan foydalaniladi: -sonli toifa;
-qatorlar va simvollar; -obyektlar (matritsalar); Sonli toifadagi berilgan ikki xil haqiqiy va kompleks sonlar bo’lishi mumkin. Haqiqiy sonlar xuddi matematikadagi kabi ishlatiladi. Butun va kasr qismlari nuqta(.) bilan ajratiladi. Kompleks sonlar esa, avval eslatganimizdek a+ib yoki a+bi ko’rinishida yoziladi, bu yerda a va b mos ravishda kompleks sonning haqiqiy va mavhum qismlari deyiladi, i-belgi (yoki I, J, j) mavhum birlikni bildiradi(i^2=-1). Kompleks sonni bildiruvchi I belgi b ning chap yoki o’ng tomoniga probelsiz yozilishi kerak, aks holda Matlab tizimi xatolik haqida gapiradi. Umuman, ixtiyoriy toifadagi son matritsalarni, vektorlarni yoki skalyar miqdorlarni elementlari (qiymatlari) bo’lishi mumkin. Xotirada barcha sonlar ikki karrali aniqlikdagi son ko’rinishida saqlanadi. Sonlar aniqlangan oraliqlarning chegaralari hamda mashina aniqligi tizim o’zgaruvchilari eps, realmax va realmin orqali beriladi. Matlabda apostroflar ichiga joylashtirilgan simvollar ketma-ketligi qator deb tushiniladi. Qatorlarga misol qilib quyidagilarni keltirish mumkin: a=’Matlab’ b=’function’ Bir nechta qatorlarni birlashtirish uchun xuddi vector va matritsalar kabi ([…]) kvadrat qavslar ishlatiladi. Masalan, str1=[‘This’,’is’,’string’], str2=[‘Sistema’,’Matlab’] kabi ifodalar mos ravishda quyidagi simvolli qatorlarni beradi. str1=‘This is string’ str2=‘Sistema Matlab’ Obyekt(matritsa)lar haqida avvalgi darslarimizda yetarlicha ma’lumotlar berilgan.
Qatorlarni xosil qiluvchi va ularga ishlov beruvchi Matlabning ba’zi funksiya(komanda)larini keltirib o’tamiz: blanks(n)- n ta probeldan iborat qatorni bildiradi; num2str(n)- haqiqiy sonni qatorga aylantiradi; deblanks(s)- s qatordan kerak bo’lmagan probellarni yo’qotadi; index(s,t)- s qatorda t qator ostining birinchi marta ko’rinishi holatini chiqaradi. Agar qator osti bo’lmasa nolni chiqaradi; randex(s,t)- s qatorda t qator ostining oxirgi marta ko’rinshi holatini chiqaradi. Agar qator osti bo’lmasa nolni chiqaradi; strcmp(s1,s2)- 1 ni chiqaradi agar s1, s2 qatorlar bir xil bo’lsa, aks holda 0 ni chiqaradi; strrep(s,x,y)- x qator ostining s qatorga barcha kirishlarni y qatorga kirishga almashtiradi; bin2dec(s)- qator ko’rinishida tasvirlangan ikkilik sistemasidagi songa mos o’nlik sistemasidagi sonni chiqaradi; dec2bin(n)- o’nli sistemasidagi manfiy bo’lmagan songa mos ikkilik sistemsidagi sonni qator ko’rinishida chiqaradi; o dec2hex(n)- manfiy bo’lmagan o’nlik sistemasidagi songa mos o’n oltilik sistemasidagi sonni qator ko’rinishida chiqaradi; hex2dec(s)- o’n oltilik sistemasidagi qator ko’rinishidagi songa mos o’nlik sistemasidagi sonni chiqaradi; str2num(s)- s qatorni songa aylantiradi. 2. Fayllarning toifalari. Shunday masalalar borki, ularni yechish uchun bir nechta komandalar yoki qatorlarni, ularni bajarishdan avval yozishga to’g’ri keladi. Bunday masalalarni hal qilish uchun Matlabda m-fayllardan foydalaniladi. Buning uchun ya’ni m-faylda Matlabning bir nechta komandalari ketma-ketligi yoziladi va ular shu faylga nom berib saqlab qo’yiladi. Natijada bu fayldagi komandalar ketma-ketligi Matlab komandalar
oynasidan faylga murojat qilish orqali bajarilishi mumkin. Mana shunday qo’shimcha xosil qilingan fayl ishchi fayl yoki fayl stenariy deyiladi. Bunday fayl nom berib saqlanayotganda tizim avtomatik ravishda uni nomiga *.m kengaytma beradi. Demak, ishchi fayllar- Matlab komandalar ketma-ketligini o’z ichiga oluvchi oddiy fayllardir. Ishchi fayllar matn(tekst) taxririda va formatida tayyorlangan bo’lishi shart va Matlab yuklatilgan katalogda saqlangan bo’lishi kerak. Fayl nomi ixtiyoriy faylga berish mumkin. .m kengaytmali nom bo’ladi. Ishchi m-fayl yaratishga doir misol ko’ramiz. Quyidagi: y=sin(x) , xє[-7Π; 7 Π] Funksiyaning grafigini chizilsin. Buning uchun ishchi m-fayldan foydalanamiz . XXplot.m nomli fayl chaqiramiz va unda Matlabning matnli tahrir va formatda quyidagicha komandalar ketma-ketligini kiritamiz: % o dan boshlab kengayuvchi sinusoida grafigi % funksiya ko’rinishi y=sin(x) x=-7*pi:pi/50:7*pi; y= sin(x); plot(x,y),… title(‘kengayuvchi sinusoida’),… xlabel(‘x’),… ylabel( ‘y’),… text(2,2,’y= sin(x)’),… grid on