5. Ichma ich joylashgan sikllar
Ko’pincha matematik masalalarni yechishda, ya’ni ularning algoritmini tuzishda tekshirilayotgan ob’ektlar ichma-ich joylashgan bo’ladi. Bunday hollarda ichma-ich joylashgan sikllardan foydalanish tavsiya qilinadi. Ichma-ich joylashgan sikllardan foydalanish algoritm tushunchasining imkoniyatlarini kengaytiradi, foydalanuvchining turli masalalarni yechish algoritmining ifodalashda sodda ko’rinishlardan foydalanish imkoniyatini beradi.
Ichma-ich joylashgan sikllar umumiy ko’rinishini 12-rasmda kurishimiz mumkin.
Bu erda i tashqi sikl parametri, j va k lar ichki sikl parametrlari hisoblanadi. O’z navbatida j sikl parametri k ga nisbatan tashqi sikl parametri hisoblanadi.
Dasturnin bajarilishi jarayonida birinchi navbatda eng yuqorida turgan, tashqi sikl parametri i o’zining birinchi qiymatiga ega bo’ladi va u true qiymatiga ega bo’lsa, 1-sikl tanasidagi operatorlar ketma-ketligi bajariladi.
So’ngra boshqarish 2 chi sikl parametri j ga uzatilib, u ham o’z navbatida o’zining birinchi qiymatiga ega bo’ladi va u true qiymatiga ega bo’lsa, 2-sikl tanasidagi operatorlar ketma-ketligi bajariladi.
Navbatdagi boshqarish 3 chi sikl parametri k ga uzatilib, u ham o’z navbatida o’zining birinchi qiymatiga ega bo’ladi va u true qiymatiga ega bo’lsa, 3-sikl tanasidagi operatorlar ketma-ketligi bajariladi. Operatorlar ketma- ketligi bajarilib bo’lganidan so’ng, boshqarish eng ichki sikl operatoriga qaytariladi va k o’zining navbatdagi qiymatiga ega bo’ladi.
for i in . . .:
<1-sikl tanasidagi operator>
<1-sikl tanasidagi operator>
. . .
<1-sikl tanasidagi operator>
for j in . . .:
<2-sikl tanasidagi operator>
<2-sikl tanasidagi operator>
. . .
<2-sikl tanasidagi operator>
for k in . . .:
<3-sikl tanasidagi operator>
<3-sikl tanasidagi operator>
. . .
<3-sikl tanasidagi operator>
12-rasm. Ichma-ich joylashgan siklar
|
Agar u true qiymatiga ega bo’lsa, yana bir marta 3-sikl tanasidagi operatorlar ketma-ketligi bajariladi. Operatorlar ketma-ketligi bajarilib bo’lganidan so’ng, boshqarish eng ichki sikl operatoriga qaytariladi.
Ushbu jarayoni k o’zlashtiradigan qiymat false bo’lguncha davom ettiriladi. k qiymati false bo’lganda, ya’ni sikl parametri o’zining oxirgi qiymatiga teng bo’lganda eng ichki sikl o’z ishini to’xtatadi va boshqarishni o’zidan bir pog’ona oldin turgan siklga uzatadi.
Bu holda sikl parametri j navbatdagi qiymatini qabul qiladi. Ushbu qiymat siklning oxirgi qiymatidan kichik bo’lsa, 2-sikl tanasidagi operatorlar ketma-ketligi to’la bajariladi va boshqarish eng ichki siklga uzatiladi.
Ichma – ichjoylashgan siklni, xuddi elektron soatlardagi soat, minut, sekundlarning aylanishidek tasavvur qilish mumkin. Ya’ni sekund ko’rsatkichi 0 dan 59 gacha o’zgaradi, so’ngra minut ko’rsatkichi bir soniga orttiriladi, undan keyin yana sekund ko’rsatkichi 0 dan 59 gacha o’zgaradi va minut ko’rsatkichiga yana bir soni qo’shiladi.
Ushbu jarayon davom etib minut ko’rsatkichi 0 dan 59 gacha o’zgaradi. Sekundlar yana 0 dan 59 gacha o’zgarganda minut ko’rsatkichiga 1 soni qo’shiladi va minutlar ko’rsatkichi yana 0 dan boshlanadi. Soat ko’rsatkichi esa 1 soni qo’shiladi.
Ushbu jarayon ketma-ket davom etadi va minutlar 0 dan 59 gacha, soat ko’rsatkichi 23 gacha davom etadi.
Masala. Pifagor jadvali dasturi tuzilsin.
for i in range (2, 10):
print (i, 'karra')
for j in range (1, 10):
print(i,'*',j,'q',i*j)
Natija:
2 karra
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
. . .
2 * 9 = 18
3 karra
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
. . .
3 * 9 = 27
. . .
9 karra
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
. . .
9 * 9 = 81
Dastur kodida ko’rsatilib o’tilganidek, dasturda tashqi sikl i 2 dan 9 gacha, ichki sikl parametri j 1 dan 9 gacha davom etmoqda.
Bunda avvalo birinchi satrdagi tashqi sikl parametri i = 2 bo’ldi, i < 10 bo’lganligi uchun boshqarish tashqi sikl tanasi bo’lgan ikkinchi satrga uzatiladi.
Ikkinchi satrdagi print operatori “2 karra” yozuvini oynaga chiqaradi. Boshqarish tashqi sikl tanasi - uchinchi satrga, ichki sikl boshiga uzatilib, ichki sikl parametri j = 1 ga teng bo’ladi va j < 10 shartning bajarilishi tekshiriladi.
Shart bajarilganligi uchun boshqarish ichki sikl tanasida joylashgan print operatoriga uzatiladi va “2 * 1 = 2” yozuvini oynaga chiqaradi. Ichki sikl tanasida boshqa operator bo’lmaganligi uchun boshqarish ichki sikl boshiga uzatiladi.
Bu holda j = 2 < 10 bo’lganligi uchun boshqarish yana ichki sikl tanasidagi print operatoriga uzatilib, va “2 * 2 = 4” yozuvini oynaga chiqaradi. Shu tariqa ichki sikl j = 2 < 10 bo’lgancha davom etadi. Keyingi qadamda j = 10 < 10 bo’lganligi uchun ichki sikl o’z ishini tugatadi va boshqarishni tashqi siklga uzatadi.
Tashqi sikl i = i + 1 q3 qiymatiga teng bo’lib, i < 10 shart tekshiriladi. Shart bajarilganligi uchun boshqarish tashqi sikl tanasi print operatoriga uzatadi va “3 karra” yozuvini oynaga chiqaradi. Boshqarish tashqi sikl tanasi - uchinchi satrga, ichki sikl boshiga uzatilib, ichki sikl parametri qiymati yana j = 1 ga teng bo’ladi va j < 10 shartning bajarilishi tekshiriladi.
Shart bajarilganligi uchun boshqarish ichki sikl tanasida joylashgan print operatoriga uzatiladi va “3 * 1 = 3” yozuvini oynaga chiqaradi. Ichki sikl tanasida boshqa operator bo’lmaganligi uchun boshqarish ichki sikl boshiga uzatiladi. Shu tariqa tashqi sikl parametri 1 marta bajarilganda ichki sikl parametri 9 marta takrorlanadi.
Jarayon to tashqi sikl parametri 9 ga va ichki sikl parametri ham 9 ga teng bo’lguncha davom ettiriladi.
Masala. ni hisoblash dasturi tuzilsin.
U shbu yig’indi ko’paytmani hisoblash uchun uning yoyilgan shakli bilan tanishib chiqaylik.
Yuqoridagi masalaga o’xshagan holda, tashqi sikl parametri gacha, ichki sikl parametri gacha qiymatlarni qabul qiladi. Tashqi sikl parametri i = 2 bo’lganda ichki sikl parametri k 5 dan m gacha qiymatlarni ketma-ket qabul qiladi.
Tashqi sikl parametri bittaga orttirilganda, ya’ni i = 3 bo’lganda ichki sikl parametri k yana 5 dan m gacha qiymatlarni ketma-ket qabul qiladi.
Ushbu jarayon ketma-ket davom ettirilib tashqi sikl parametri i n ga, ichki sikl parametri k m ga teng bo’lgunicha davom ettiriladi (13-rasm).
Do'stlaringiz bilan baham: |