§3.10. Sikl operatorlari
Biz takrorlanuvchi algoritmlarning sharti oldin berilgan, keyin berilgan va parametrga bog‘liq turlarini ko‘rib o‘tgan edik. Paskal tilida takrorlanuvchi jarayonlarni programmalash uchun maxsus 3 ta sikl operatorlari mavjud:
Parametrli sikl operatori (For)
Sharti keyin berilgan sikl operatori (Repeat until)
Sharti oldin berilgan sikl operatori (while do)
Parametrli sikl operatori. Bu operator parametrli takrorlash operatori ham deyiladi. Uni ishlatish uchun takrorlash jarayoni quyidagi qoidalarga ega bo‘lishi kerak: jarayonining takrorlanish soni uning bajarilishidan oldin ma’lum bo‘lish kerak; takrorlash jarayonini skalyar turdagi o‘zgaruvchi boshqaradi. Bu o‘zgaruvchi berilgan boshlang‘ich qiymatdan berilgan oxirgi qiymatgacha ketma-ket qiymatlarni qabul qiladi. Ko‘pincha quyidagi takrorlash operatori ishlatiladi:
for V: =E1 to E2 do S;
bu yerda for (uchun) , to (o‘sib boradi) va do (bajarish) - xizmatchi so‘zlar, V - skalyar turdagi o‘zgaruvchi (haqiqiydan tashqari) - takrorlash parametri, E1 va E2 - V turdagi ifodalar, S - operator - takrorlash tanasi.
Bu operatorni ishlash tamoyilini tushintiramiz: V takrorlash parametriga E1 boshlang‘ich qiymatidan boshlab, E2 oxirgi qiymatigacha ketma-ket qiymatlar beriladi va har bittasi uchun S operatori bajariladi. E1 va E2 qiymatlari takrorlash jarayoni boshlanishidan oldin faqat bir marta hisoblanadi, S operatori V qiymatini o‘zgartirishi mumkin emas. Agar E2Shunday qilib, arifmetik takrorlash operatorini quyidagi operatorlar ketma-ketligi yordamida yozish mumkin (vn va vk - V turdagi yordamchi o‘zgaruvchilar):
vn: = E1;
vk: =E2;
if vn<=vk then
begin
V: =vn; S; V: =succ(V); S; V: =succ(V); S; . . . ; V: =vk; S
end;
Paskalda takrorlash tugaganidan keyin V-ning qiymati noaniq hisoblanadi. Arifmetik takrorlash operatorini ishlatib, berilgan n uchun y=1+2+3+. . . +n quyidagcha yechish mumkin:
y: =0; for i: =1 to n do y: =y+i;
Ba’zida takrorlash parametrini kamayib borish tartibida o‘zgarishi kerak bo‘ladi. Bunday hollarda Paskalda takrorlash operatorining quyidagi shakli mavjud:
for V:E1 downto E2 do S;
bu yerda downto (kamayib borish) - xizmatchi so‘z. Bu ko‘rinishidagi takrorlash operatori quyidagi operatorlar ketma-ketligiga ekvivalent:
vn: =E1; vk: =E2;
if vn>=vk then
begin
V: =vn; S; V: =pred(V); S; V: =pred(V); S;. . . ;V: =vk; S
end;
Yuqorida keltirilgan masalani bu operator yordamida quyidagicha yechish mumkin:
y: =0; for i: =n downto 1 do y: =y+i;
1-misol:
Program Sum;
Var i: integer;
S: real;
Begin read(n);
S:0;
For i:1 to n do s:s1/sqr(x);
Write(s)
end.
2-misol:
Lotin alfavitidagi kichik harflar chop etilsin.
Program chart;
Var c: char;
Begin
For c:a to z do write (s)
end.
3-misol:
Program F1;
var n, i: integer,
b: boolean;
c: char;
begin read(n);
For i:1 to n do write (i);
For i:10 downto 10 do write(i);
For c:z downto a do write(s);
For b: False to true do write(b)
end.
Do'stlaringiz bilan baham: |