February 15, 2020

Pascal ABC | Sikl operatorlari. Parametrli sikl operatori

Assalomu alaykum @CMD_UZ . Bugun parametrli takrorlash haqida gaplashamiz.

Bir hil hisoblash jarayonlarini bir necha bor takrorlanishi Sikl deyiladi. Paskal programmalashtirish tilida sikl operatorining 3 xil turi mavjud.

  • Parametrli sikl operatori
  • Repeat sikl operatori
  • While sikl operatori

Yechilayotgan masalaga qarab, programmist o`zi uchun qulay bo`lgan sikl operatoridan foydalanishi mumkin.
Parametrli sikl operatorining ikki xil ko`rinishi mavjud.

1. FOR i :=start TO finish DO <sikl tanasi>;

FOR ( uchun), TO (gacha), DO (bajarmoq) xizmatchi so`zlari.
i – sikl parametri; start – sikl parametrining boshlang`ich qiymati;
finish - sikl parametrining oxirgi qiymati; sikl tanasi – bir yoki bir nechta operatorlar to`plami.
Sikl operatorining bu ko`rinishida start<=finish bo`lishi shart. Agar start>finish bo`lsa sikl tanasi biror marta ham bajarilmaydi.
Sikl parametrlariga ( i, start, finish) butun qiymatlar berilishi shart. Bu parametrlar sifatida haqiqiy sonlar berilsa xatolik yuz beradi.

Operatorning ishlash tamoyili:
Sikl parametri (i), sikl parametri boshlang`ich qiymati (start) ni o`zlashtiradi va sikl tanasi bajariladi. Keyin sikl parametri (i) birga oshirilib, sikl tanasi yana bajariladi. Bu jarayon toki sikl parametri (i), sikl parametrining oxirgi qiymati (finish) ga tenglashgunga qadar davom etadi.

Sikl takrorlanishi davomida bajarilishi lozim bo'lgan operatorlar majmuasi sikl tanasi deyiladi. Sikl tanasi sifatida bir yoki bir nechta operatordan foydalanish mumkin. Agar sikl tanasida bir nechta operatordan foydalanmoqchi bo`lsak bu operatorlarni begin end xizmatchi so`zlari orasiga olishimiz kerak.

Break – prosedurasini har qanday sikl operatoriga qo`llash mumkin. Bu prosedura sikl tugatilishini ta’minlaydi. Ya`ni boshqarilishni sikl operatoridan keyingi operatorga uzatadi.

Continue – prosedurasini har qanday sikl operatoriga qo`llash mumkin. Bu prosedura sikl parametrining keyingi qiymatni qabul qilishini taminlaydi. Boshqacha so`z bilan aytganda sikl tanasi tugatiladi. Bunda siklning o`zi tugatilmaydi.

Misol: n natural soni berilgan. Birdan n gacha bo`lgan sonlar yig`indisini hisoblovchi programma tuzilsin.

program sikl;
var i,n,s; integer;
begin
 write('N='); ReadLn(n);
s:=0;
 For i:=1 TO n DO
 s:=s+i;
 WriteLn('Yig`indi=',s);
 ReadLn;
 end.

Ayrim paytlarda sikl parametri o`sib borish emas, kamayib borish tartibida o`zgartirish mumkin. Bu sikl operatorining ikkinchi xil ko`rinishidir:

2. For i :=start DOWNTO finish <operator>;

Bu yerda DOWNTO (gacha kamayib) – tilning xizmatchi so`zi.
Bu operatorda sikl parametri (i), sikl parametri boshlang`ich qiymati (start) ni o`zlashtiradi va sikl tanasi (<operator>) bajariladi. Sikl parametri (i) birga kamaytirilib, sikl tanasi (<operator>) bajariladi. Bu jarayon toki sikl parametri (i), sikl parametrining oxirgi qiymati (finish) ga tenglashgunga qadar davom etadi.
Yuqorida keltirilgan misol uchun sikl operatori quyidagicha yoziladi.
For i:=n DOWNTO 1 DO
s:=s+i;

Parametrli sikl operatori takrorlanishlar soni oldindan ma`lum bo`lgan hollarda qo`llaniladi. Siklning takrorlanishlar sonini quyidagi formuladan aniqlash mumkin.

Bu yerda Xk oxirgi qiymat, Xh boshlangich qiymat, h qadam;

Eslatma: Sikl parametrlari haqiqiy toifali bo`lishi mumkin emas.

Quyidagi yig`indini hisoblovchi programma tuzilsin.

program sikl2;
var i: integer;
s: real;
begin
s:=0;
for i:=50 downto 1 do
s:=s+1/i;
WriteLn('Yig`insi=',s:2:2);
ReadLn;
end.

CMD | Dasturlash maktabi