Mavzu: Pascal tilida Chiziqli tuzilmali va tarmoqlanuvchi tuzilmali algoritmlar asosida dastur tuzish
Reja:
-
Chiziqli tuzilmali algoritmlarni dasturlash
-
Shartsiz o’tish operatori
-
Shartli o’tish operatori
-
Tarmoqlanuvchi strukturali algorimlarni dasturlash
Tayanch iboralar: Chiziqli strukturali algoritmlar, shartsiz o’tish operatorlar, shartli o’tish operatorlar, tanlash operatori, tarmoqlanuvchi algoritmlar.
Chiziqli tuzilmali algoritmlarni dasturlash
Algoritmning blok-sxema tarzidagi tavsiflanishi EHMlar uchun dastur tuzish amaliyotida juda keng kullaniladi. Berilgan masalaning yechish algoritmi blok-sxema shaqlida tavsiflash algoritmini dasturlashtirish uchun ancha qulaylik yaratiladi.
Bloklari ketma-ket, blok-sxemada joylashgan tartibda bajariladigan algoritm Chiziqli strukturali algoritm deyiladi. Chiziqli strukturadagi dasturlarda xech qanday shart bulmaydi, shuning uchun ular algoritm bilan aniqlangan ketma-ketlikda bajariladilar. Chiziqli strukturadagi dasturlarni tashkil etish uchun uzlashtirish operatorlari, ma‘lumotlarni kiritish va ma‘lumotlarni kayta ishlash natijalarini chiqarish operatorlari kiradi. Bizga ma‘lumki dastur tuzishda operatorlar o’zaro “;” bilan ajratiladi. begin va else operatorlaridan sung bu belgi quyilmaydi. Dasturning izoxli qismida uzgaruvchilar tavsivlanadi. Dasturning bajariladigan qismida esa, yuqorida aytganimizdek fakat uzlashtirish, uzgaruvchilar kiymatlarini kiritish va uzgaruvchilar kiymatlarini kompyuter ekraniga chiqarish operatorlari ishlatiladi. Chiziqli strukturali algoritmlarni dasturlashga misol ko’rib utamiz. Masalan у=ax2+bх+с funktsiyani kiymatini hisoblash uchun blok-sxema va dastur tuzamiz
boshlash
у=
tamom
а, в,с, х
у=ах2+bх+с
a=1.21; b=3.12; c=-0.2; x=0.45.
|
Dasturi quyidagicha bo’ladi.
Program t1(input,output);
Var a,b,c: real;
x, y: real;
Begin
Write(‘ a=’); read(a);
Write(‘ b=’); read(b);
Write(‘ c=’); read(c);
Write(‘ x=’); read(x);
y:=a*SQR(x)+b*x+c;
Writeln(‘ натижа y=’,y);
end.
Натижа y=1.449025
|
Kurinib turibdiki blok-sxemada bloklar ketma-ket (Chiziqli) bajariliyapdi.
Tarmoqlanuvchi tuzilmali dasturlarni tashkil etishda albatta shart bo’ladi va bu shart bajarilishiga karab algoritmning blok sxemasida tarmoqlanishlar bo’ladi va bir-nechta operatorlar ketma-ketligi tanlanadi.
Shartsiz o’tish operatori
Tarmoqlarni tashkil etish uchun dasturda o’tish, shartli va tanlash operatorlari bo’lishi kerak.
SHartsiz o’tish operatori. SHartsiz o’tish operatorini umumiy ko’rinishi goto n bu yerda goto operator n- metka (satrga quyilgan nomer, belgi) N metka label yordamchi so’zi bilan quyilishi kerak.
Masalan:
Program t(output);
Label 7; var a,b:real;
Begin
……..
goto 7
………
7: a:=b*3
………
end.
Bu yerda boshqarish goto operatori orqali 7-metkaga (nomerga) utkazilayapti.
Metkalar turtta rakamdan oshmagan ishorasiz butun sonlar bo’lib, ular metkalarni tavsiflash bo’limida tavsiflanadilar.
Shartli o’tish operatori
SHartli o’tish operatori quyidagi umumiy ko’rinishdagi yozuvga ega:
А) if b1 then a1; kiska yozilishi,
В) if b1 then a1 else a2; to’liq yozilishi
Bu yerda b1- mantiqiy ifoda; a1 ,a2 -operatorlar. Operatorning a) ko’rinishdagi yozuvi agar mantiqiy ifoda TRUE kiymatga ega bo’lsa, a1 operatorni hisoblashni tashkil etadi, aks holda a1 bajarilmaydigan shartli operatordan keyin turadigan operator bajariladi. b) ko’rinishda agar mantiqiy ifoda TRUE kiymatni qabul kilsa, unda a1 operator bajariladi, aks holda a2 operator bajariladi. Shuni takidlash kerakki ELSE operatoridan oldin “;” nuqta-vergul quyilmaydi.
Masalan: if y>0 then d:=sqrt(y) else d:=y
Ya‘ni u>0 bo’lsa, d= bajariladi aks holda d=y bo’ladi.
Case operatori dasturda tarmoqlanishni tashkil etib, bir necha operatorlar orasidan birini tanlash imkonini beradi. Uning umumiy ko’rinishi quyidagicha;
case <ifoda> of
<operatorlar>
end
Masalan: case i of
2: x:=0;
3: x:=a*x;
100: x:=sin(x);
end;
a:=b;
Agar i 3ga teng bo’lsa x:=a*x bajariladi va boshqarish A:=V operatorga utadi.
Tarmoqlanuvchi strukturali algorimlarni dasturlash
Tarmoqlanuvchi strukturali algorimlarni dasturlashtirishda shatrsiz o’tish va shartli o’tish operatorlaridan foydalaniladi. Tarmoqlanuvchi strukturali algoritmlarda biror bir shartga ko’ra algoritmning keyingi kadamlari quyilgan shartga ko’ra tarmoqlarga bulinib bajariladi. Yuqorida keltirilgan fikrlarni misolda ko’rib utamiz.
Quyidagi funktsiyani hisoblash algoritmining blok-sxemasi va paskal tilidagi dasturini tuzamiz
bu yerda а=3,8; b=3,4.
Funktsiyani hisoblash algoritmining blok-sxemasi quyidagicha bo’ladi.
a,b,x
Y=a∙sinx/cosx+ a∙sinx
boshlash
X >1
X<0
Y=a2x2+bx
Y=ax+b
У:=
tamom
1
2
5
3 yo’q yo’q
ha ha
4 6
7
8
9
10
|
Функцияни хисоблаш алгоритм-нинг паскал тилидаги дастури куйидагича булади.
Program t1(input, output);
Label 2
Var a, b, x: real;
y: real;
begin
if x<0 then y:=a*a*x*x+b*x goto 2;
if x>1 then y:=a*sin(x)/cos(x)+b*cos(x)
else y:=a*x+b;
2: writeln(‘натижа у=’,y);
end.
Bu dasturda 3-blok bajarilganda 4-blok hisoblanadi, bajarilmaganda 5-blok sharti tekshiriladi va bu blok bajarilganda 6-blok hisoblanadi, bajarilmaganda esa boshqarish avtomatik ravishda 7-blokka utib shu blok xioblanadi. Har uchala holda ham hisoblangan u funktsiyaning kiymati 8-blok orqali birlashadi va 9-blokda natijalar ekranga chikariladi
|
|
|
Nazorat savollari
-
Chiziqli tuzilmali algoritm deb qanday algoritmga aytiladi?
-
Tarmoqlanuvchi algoritm deb qanday algoritmga aytiladi?
-
Chiziqli tuzilmali algoritmlarni dasturlashtirishda asosan qaysi operatorlar ishlatiladi?
-
Uzlashtirish, ma‘lumotlarni kiritish va chiqarish operatorlarining umumiy ko’rinishini yozing va izoxlang
-
SHartsiz o’tish operatori qanday yoziladi?
-
SHartli o’tish operatori qanday yoziladi?
-
ELSE xizmatchi so’zi qaysi hollarda ishlatiladi?
-
Tarmoqlanuvchi dasturlar tuzishda LABEL xizmatchi so’zidan foydalanmasa ham bo’ladimi?
-
Tanlash operatorining umumiy ko’rinishini yozing va izoxlang
-
Tarmoqlanuvchi algoritmning blok sxemasida romb geometrik shaql qaysi blokni bildiradi?
0>0>
Do'stlaringiz bilan baham: |