Tarmoqlanuvchi jarayon algoritmi
Dastur bajarilishini boshqarishning yana bir kuchli mexanzmlaridan biri – takrorlash
operatorlari hisoblanadi.
Takrorlash operatori
«takrorlash sharti» deb nomlanuvchi ifodaning rost qiymatida dasturning
ma’lum bir qismidagi operatorlar(takrorlash tanasi)ning ko’p marta takror ravishda bajarilishini
amalga oshiradi.
Takrorlash o’zining kirish va chiqish nuqtalariga ega bo’lib, ba’zan
chiqish nuqtasi
bo’lmasligi ham mumkin. Agar chiqish nuqtasi bo’lmasa cheksiz takrorlanish sodir bo’ladi.
Cheksiz takrorlanish uchun takrorlashni davom ettirish sharti doimo rost bo’ladi.
Takrorlash shartini tekshirish, takrorlanish tanasidagi operatorlarning bajarilishidan oldin
tekshirilishi mumkin (
for, while takrorlash operatorlarida) yoki takrorlanish tanasining
operatorlari bir marta bajarilgandan keyin tekshirilishi mumkin (
do-while).
Takrorlanishlarni tashkil etishda takrorlanishlar soni va qadami oldindan ma’lum bo’lgan
holatlar uchun
for operatoridan, boshqa hollarda esa
while hamda
do-while operatorlaridan
foydalanish maqsadga muvofiq.
Takrorlash operatorlari ichma-ich joylashishi ham mumkin.
Quyida takrorlash
operatorlari va ularning qo’llanilishi bilan batafsil tanishamiz.
for takrorlash operatorining sintaksisi quyidagi ko’rinishga ega:
for (; ;) ;
Bu operator o’z ishini <
ifoda1> ifodasining bajarishidan boshlaydi. Keyin takrorlash
qadamlari boshlanadi. Har bir qadamda <
ifoda2> tekshiriladi, agar <
ifoda2> ning qiymati 0
qiymatidan farqli, ya’ni rost bo’lsa, takrorlash tanasi − <
operator yoki blok> bajariladi, so’ngra
<
ifoda3> bajariladi. Agar <
ifoda2> ning qiymati 0 (
yolg’on) bo’lsa,
takrorlanish jarayoni
to’xtaydi va boshqaruv takrorlash operatoridan keyingi operatorga o’tadi. Shuni ta’kidlash
kerakki, <
ifoda2> ifodasi vergul bilan ajratilgan bir nechta ifodalar birlashmasidan iborat
bo’lishi ham mumkin, bu holda vergul bilan ajratilgan ifodalarning oxirgisi takrorlanish sharti
hisoblanadi. Takrorlanish
tanasi sifatida bitta operator, jumladan bo’sh operator bo’lishi yoki
operatorlar bloki ham kelishi mumkin.
Quyida
for operatori parametrlarining vazifalari bilan tanishamiz:
<
ifoda1>−takrorlash sanagichiga boshlang’ich qiymat berishga xizmat qiladi va u takrorlash
jarayoni boshida faqat bir marta hisoblanadi. Ifodada o’zgaruvchi e’loni hambo’lishi mumkin va
bu o’zgaruvchi takrorlash operatori tanasida amal qiladi va takrorlash operatoridan tashqarida
«
ko’rinmaydi».
<
ifoda2> − takrorlanishning bajarishi yoki bajarilmasligini aniqlab beruvchi mantiqiy ifoda
(
shart), agar shart
rost bo’lsa, takrorlanish davom etadi, aks holda to’xtaydi. Agar bu ifodaning
o’rni bo’sh bo’lsa,
shart doimo rost deb hisoblanadi.
<
ifoda3> − odatda takrorlanish sanagichining qiymatini oshirish (kamaytirish) uchun xizmat
qiladi yoki unda takrorlanish shartiga ta’sir etuvchi boshqa amallar ham bo’lishi mumkin.
Takrorlash operatorida qavs ichidagi ifodalar bo’lmasligi ham mumkin, lekin
sintaksis ‘;’ bo’lmasligiga ruxsat bermaydi. Shu sababli sodda ko’rinishdagi takrorlash operatori
quyidagicha bo’ladi:
for(;;).
Agar takrorlanish jarayonida bir nechta o’zgaruvchilarning
qiymati sinxron ravishda
o’zgarishi kerak bo’lsa, <
ifoda1> va <
ifoda3> ifodalarida zarur operatorlarni ‘,’ bilan yozish
orqali bunga erishish mumkin:
for(int i=1,j=2;i<=15;i++,j=i+1){…}
Takrorlash operatorining har bir qadamida
i va
jo’zgaruvchilarningqiymatlari mos
ravishda o’zgarib boradi.
for operatorida takrorlanish tanasi bo’lmasligi ham mumkin.
Shuni ham ta'kidlash joizki, C++ tilida
for operatorining parametrlari haqiqiy turga
tegishli bo’lishi, takrorlanishlar qadami ham ixtiyoriy holatda belgilanishi mumkin. Bu
imkoniyatlar operatorning keng qamrovli ekanligini bildiradi.
Masala. Dastlabki
n ta (
n>0) natural sonlarning kvadratlari yig’indisini hisoblovchi algoritm va
dastur tuzilsin.
Dostları ilə paylaş: