logo

Dasturlash asoslari. Dasturlashni asosiy vositalari. Matlabda ma’lumotlarni va fayllarni toifa(tip)lari. Stеnariya fayllarini tuzilishi va xossalari.

Загружено в:

08.08.2023

Скачано:

0

Размер:

105.5732421875 KB
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 Natija: 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:  <<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: >> xmin=-5;
>> xmax=15;
>> pcr
Fayl stenariy ishga tushadi va ekranda quyidagicha tasvir hosil bo’ladi: 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.

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