1-mavzu. Algoritm tushunchasi va ulardan foydalanish
6. Tarmoqlanuvchi algoritmlar Agar hisoblash jarayoni biror-bir berilgan shartning bajarilishiga qarab turli tarmoqlar bo‘yicha davom ettirilsa va hisoblash jarayonida har bir tarmoq faqat bir marta bajarilsa, bunday hisoblash jarayonlari tarmoqlanuvchi algoritmlar deyiladi. Tarmoqlanuvchi algoritmlarni tasvirlash uchun “ayri” tuzilmasi ishlatiladi. Tarmoqlanuvchi tuzilmasi berilgan shartning bajarilishiga qarab ko‘rsatilgan tarmoqdan faqat bittasining bajarilishi ta’minlanadi (1.7-rasm).
1.7-rasm. Tarmoqlanishning umumiy ko‘rinishi
Berilgan R-shart romb figurasi ichida tasvirlanadi. Agar shart bajarilsa, "ha" tarmoq bo‘yicha A-amal, aks holda (shart bajarilmasa) "yo‘q" tarmoq bo‘yicha V-amal bajariladi.
1-misol. Tarmoqlanuvchi algoritmga misol sifatida quyidagi sodda masala keltiriladi:
x2 , agar x ≥ 0 у=
2x, aks holda.
Natijaviy qiymat y berilgan x ning qiytmatiga bog‘liq holda bo‘ladi: agar x≥0 shart rost bo‘lsa, tarmoq bo‘yicha y = x2 munosabatning qiymati, aks holda, y = 2*xmunosabatning qiymati hisoblanadi. Bu masala bajarilishining so‘z bilan ifodalangan algoritmi quyidagicha:
agar ( x ≥ 0 ) shart bajarilsa, u holda u=x2, aks holda u=2*x.
Masala echimining blok-sxemasi 1.8-rasmda keltirilgan.
1.8-rasm. Interval ko‘rinishidagi funksiya qiymatini hisoblash blok-sxemasi
Ko‘pgina masalalarni yechishda, shart asosida tarmoqlanuvchi algoritmning ikki tarmog‘idan biri, ya’ni «rost» yoki «yolg‘on»ning bajarilishi etarli bo‘ladi. Bu holat tarmoqlanuvchi algoritmning xususiy holi sifatida qisqartirilgan strukturasi deb atash mumkin. Qisqartirilgan struktura blok-sxemasi quyidagi ko‘rinishga ega (1.9-rasm).
1.9-rasm. Qisqartirilgan strukturaning umumiy ko‘rinishi
2-misol. Berilgan x, u, z sonlari ichidan eng kattasini aniqlang. Ushbu masalaga mos matematik modelni quyidagicha tasvirlash mumkin: p= max{x, y,z}.
Berilgan x, y, z sonlardan eng kattasi p deb belgilangan. So‘zlar orqali ifodalangan algoritm asosida masala echimini quydagicha tasvirlash mumkin: 1) kiritish (x, y, z);
agar ( x > u ) bo‘lsa, u holda p = x, aks holda p = u;
agar (r < z ) bo‘lsa, u holda p = z; 4) muhrlash (r). Keltirilgan algoritmga mos blok-sxema 1.10-rasmda tasvirlangan.
Bu algoritmda, avva, x va y o‘zaro solishtiriladi, katta qiymatligi ega r ga yuklanadi. So‘ngra x va y larning kattasi deb aniqlangan r va z o‘zarosolishtiriladi. Agar r < zsharti bajarilsa, u holda eng katta qiymat p= z deb olinadi, aks holda boshqarish navbatdagi amalga uzatiladi. Natijada p da uchta qiymatdan eng kattasi aniqlanadi.
1.10-rasm. Berilgan x, y, z sonlar ichidan eng kattasini topish blok-sxemasi
Ushbu masalani yechish algoritmining yana bir usulini ko‘rib chiqamiz.
kiritish (x, y, z);
p = x;
agar (p < y ) bo‘lsa, u holda p= y; 4) agar (p < z ) bo‘lsa, u holda p= z; 5) muhrlash (r). Bu algoritmga mos blok-sxema 1.11-rasmda tasvirlangan.
Bu usulga asosan, avvalo sonlar ichida birinchisi eng kattasi deb faraz qilinadi, ya’ni p = x. So‘ngra har bir qadamda navbatdagi son – r ning qiymati bilan solishtiriladi va shart bajarilsa, u eng kattasi deb qabul qilinadi.Bu algoritmning afzalligi shundaki, uning asosida uchta va undan ko‘p sonlar ichidan eng kattasini (kichigini) topishning qulay imkoniyati mavjud.
1.11-rasm. Hisoblash blok-sxemasi
3-misol. Quyidagi ifoda bilan berilgan munosabatni hisoblang [2, 52 b.].
b − x, agar x > 0,
Y = x + a, agar x < 0,
a + b, aks holda .
Bu misol natija x ning qiymatiga bog‘liq shart bilan berilgan va masala quyidagicha so‘zlar orqali ifodalangan algoritm asosida aniqlanadi: agar x > 0 bo‘lsa, u holda u = b - x bo‘ladi, aks holda; agar x < 0 bo‘lsa, u holda u = x + a, aks holda u = a+ b. Avvalo, birinchi shart tekshiriladi va agar u bajarilsa, y = b - x amal
x + a, agar x < 0, bajariladi, aks holda Y = munosabat hisoblanadi.
a + b, aks holda .
Bu fikrlar quyidagi blok-sxemada o‘z aksini topgan (1.12-rasm).