Mavzu: Pascal tilida takrorlanuvchi tuzilmali algoritmlarni dasturlash. Ichma-ich sikllarni dasturlash
Reja:
-
Takrorlanuvchi algoritmlarni dasturlash
-
Takrorlanish soni avvaldan ma‘lum bo’lganda ishlatiladigan operatorlar
-
Takrorlanish soni avvaldan ma‘lum bulmaganda ishlatiladigan operatorlar
-
Ichma–ich joylashgan sikllarni dasturlash
Tayanch iboralar: Takrorlanuvchi tuzilmali algoritmlar, tsikl, tsikl tanasi, Takrorlanishlar soni avvaldan ma‘lum bo’lgan tsiklar, takrorlanishlar soni avvaldan ma‘lum bulmagan tsikllar, ichma ich joylashgan tsikllar.
Takrorlanuvchi algoritmlarni dasturlash
Siklik (takrorlanuvchi) tuzilmali dastur bir paytda bir yoki bir nechta parmetrlar uzgarishida, bir guruh operatorlar hisoblashini ko’p marta takrorlash imkonini beradi. Masalani quyilishiga karab takrorlanishlar soni oldindan ma‘lum bo’lgan va takrorlanishlar oldindan noma‘lum bo’lgan tsiklga bulinadi.
Tsiklik strukturali dasturlar shartli operatorlar yordamida tashkil etilishi mumkin. Bu holda tsiklik parametrini boshlangich kiymatini berish kerak, tsiklda esa bu parametr bilan hisoblashni amalga oshirish kerak. Agar tsikl tugamagan bo’lsa, unda hisoblashlarni davom ettirish kerak.
Takrorlanish soni avvaldan ma‘lum bo’lganda ishlatiladigan operatorlar
Tsikl operatori FOR takrorlanishlar soni oldindan ma‘lum bo’lgan tsikllarni tashkil etish uchun ishlatiladi. Operatorning umumiy ko’rinishi:
for i:=m1 to m2 do s; yoki for i:=m1 downto m2 do s;
Bu yerda: i -tsikl parametri -u xakikiy turda bo’lishi mumkin emas; m1 va m2 -tsikl parametrining boshlangich va oxirgi kiymatlari; S -tsikl tanasi (sodda yoki tarkibiy operator). TO xizmatchi so’zida tsikl parametrining uzgarish kadami 1ga teng. DOWNTO da esa -1ga teng.
Takrorlanish soni avvaldan ma‘lum bulmaganda ishlatiladigan operatorlar
WHILE operatori hisoblashlarni takrorlashlar soni yozilgan shartga boglik bo’lgan tsikllarni tashkil etish imkonini beradi.
Operatorning umumiy ko’rinishi:
while b1 do s; b2 bu yerda b1 mantiqiy ifoda (shart, operator) b2 ifoda yoki operator bo’lishi mumkin. S -sodda yoki taqribiy operatordan iborat tsikl tanasi.
Agar mantiqiy ifoda TRUE kiymatga ega bo’lsa (bajarilsa), unda tsikl operatorlar bajariladi. Mantiqiy ifoda FALSE kiymatini qabul qilishi bilan tsikl operatorlarining bajarilishi tugallanadi.
Misol. S= ni hisoblash algoritm blok-sxemasi va dasturini WHILE operatoridan foydalanib tuzamiz.
S=
N<=50
tamom
boshlash
|
Program N1(input, output);
Var s: real;
n: integer;
begin
s:=o; n:=1;
while n<=50 do
begin s:=s+1/n;
n:=n+1;
end;
writeln(‘yigindi kiymati s=’,s);
end.
bu yugindini hisoblash dasturida takrorlanish jarayoni n ning kiymati 50ga teng bulguncha davom etadi.
N ning kiymati 50 dan katta bo’lganidan yigindini kymatlarini hisoblash jarayoni tuxtatiladi va natija ekranga chikariladi.
Natija s=4.499...
|
n=1…500
tamom
S=
S=s+1/n
boshlash
|
Endi ushbu dasturni for operatoridan foydalanib tuzamiz
Program N2(input, output);
Var s: real;
n: integer;
begin
s:=0;
for n:=1 to 50 do
s:=s+1/n;
writeln(‘yigindi kiymati s=’,s);
end.
yigindini kiymati s=4.499…
|
FOR va WHILE operatorlaridan tashkari REPAET operatori yordamida ham takrorlanish jarayonini tashkil etish mumkin. REPAET operatorining umumiy ko’rinishi quyidagicha:
repaet a until b; Bu yerda а-operatorlar tsikl tanasi, b-mantiqiy ifoda.
Agar b shart bajarilsa boshqarish V dan keyingi operatorga utadi, V bajarilmasa tsikl davom etishi tuxtaydi.
Ichma–ich joylashgan tsikllarni dasturlash
Bitta tsikl ichiga bir yoki bir nechta boshqa tsikllar kirsa, karrali tsikl strukturali dasturlar hosil bo’ladi, ya‘ni ichma-ich tsikllar hosil bo’ladi.
Bunda ichki tsiklning ta‘sir doirasi uni uz ichiga oluvchi tsiklda joylashadi.
Misol A(10,15) matritsaning musbat elementlarining yozuvga chiqarish dasturini tuzamiz.
Har bir katorda matritsaning berilgan katoriga mansub elementlarni yozuvga chikarsin. Agar katorda musbat elementlar bulmasa, u bush bo’lishi kerak.
Dastur quyidagi ko’rinishda bo’ladi:
program matr (input, output);
const imax=10;ymax=15;
var y,i:integer;
a: array [1..imax,1..ymax] of real;
begin
for i=1 to imax do
begin
for y:=1 to ymax do
begin
read (a[i,y]);
if (a[i,y])>0 then write (a[i,y]:2:2)
end;
writeln
end;
end.
Nazorat savollari
-
Takrorlanuvchi strukli algoritm deb qanday algoritmga aytiladi?
-
Tsikl deganda nimani tushinasiz?
-
Takrorlanishlar soni avvaldan ma‘lum bo’lganda qanday takrorlanish operatori ishlatiladi?
-
FOR xizmatchi so’zi bilan boshlanuvchi takrorlanish operatorining umumiy ko’rinishini yozing va izoxlang
-
Tarorlanish kadami kamayadigan hollarda FOR xizmatchi so’zi bilan qaysi xizmatchi so’zi yoziladi?
-
Takrorlanishlar soni avvaldan noma‘lum bo’lganda qaysi operatorlar ishlatiladi?
-
WHILE operatorining umumiy ko’rinishi yozing va izoxlang
-
REPAET operatorining umumiy krinishini yozing va izoxlang
-
Ichma-ich tsikl deganda nmani tushinasiz?
-
CHekli yigindini hisoblash algoritmi qaysi turdagi algoritmlarga kiradi?
Do'stlaringiz bilan baham: |