Sikl operatorlari.
Dasturni bajarish yo’lini ko’rsatib beruvchi vositalardan biri tanlov operatorlar switch hisoblanadi. Uning formati quyidagicha bo’ladi:
Switch
case
operator, operator,…;
case {1- qiymat,2- qiymat,…}
operator, operator,…;
otherwise,
operator, operator,…;
end
Bu operatorlar formatidagi -skalyar ifoda yoki qator(simvolli) bo’lishi mumkin. Operator quyidagicha ishlaydi:
case ostidagi< qiymat>ga teng bo’lsa, unda ko’rsatilgan operatorlar bajariladi, aks holda otherwise dan keyingi operatorlar bajariladi.
Qator (simvolli) bo’lgan holda ning tengligi “rost”ni beradi, agar strcmp(,) “rost”ni bersa.
Tanlov operatorlarni qo’llashga doir misollar ko’ramiz.
a)Faraz qilaylik method o’zgaruvchisi mavjud va simvollar bo’lsin. U holda switch operatorini quyidagicha ishlatiladi:
switch lower (method)
case{‘chiziqli’, ‘bichiziqli’}, disp{‘ chiziqli usul’}
case {‘cubic’}, disp(‘cubic usul’)
case {‘nearest’}, disp(‘taqribiy usul’)
otherwise, disp (‘noma’lum usul’)
end
b)ym.m nomli m-fayl yaratamiz:
va quyidagicha natijani olamiz:
>> ym(1)
1-kavrtal
>> ym(4)
2-kvartal
>> ym(8)
3-kvartal
>> ym(12)
4-kvartal
>> ym(15)
xató
Tanlash operatorlari.
Matlabda ko’rsatilgan operatorlar ketma-ketligini ma’lum marta takrorlab bajarish uchun for…end operatoridan foydalaniladi. Uning formati quyidagicha:
for =
operator
operator
end
Sikl qobig’ini tashkil qiluvchi operatorlar ketma-ketligi nig boshlang’ich qiymat x0 dan boshlab h qadam bilan oxirgi qiymati xn gacha bo’lgan qiymatlarida bajariladi. Agar qadam h berilmasa, tizim uni avtomatik tarzda 1 deb hisoblaydi.
Misollar:
for i=1:10
for j=1:10
a(i,j)=1/(i+j-1);
end
end
Bu dastur ishlashi natijasida (10x10) o’lchovli Gilbert matrisasi hosil qilinadi.
for i=0:2:10
y(i)=x(i)*sin(x(i))+1/(x(i)+1)
end
Sikl operator while…end ning umumiy ko’rinishi quyidagicha bo’lib, operator qobig’idagi komandalar ketma-ketlgi noma’lum sonda (shart bajarilguncha) qaytariladi:
while
{operatorlar}
end
Bunda {operatorlar} ketma-ketligi “yolg’on” qiymat qabul qilguncha takror bajarilaveradi, xuddi shartli operator if dagi kabi solishtirish amallari orqali aniqlangan bo’lishi kerak. Masalan, quyidagicha
i=2;
x(1)=10;
x(2)=11;
while abs(x(i)-x(i-1))>=0.001
i=i+1
x(i)=(1000-x(i-1))^(1/2);
end
√1000 - 𝑥>>z=(i,x(i)) ketma-ketlikda yozilgan kod xq tenglamaning 0.0001
aniqlikdagi taqribiy yechimini topib beradi. Bunda, while…end operator qobig’idagi hisoblashlar necha marta bajarilishi noma’lum. Hosil qilingan z vektorning birinchi komponentasi hisoblashlar sonini bildirsa, x(i)-yechimni bildiradi.
Do'stlaringiz bilan baham: |