|
Tarmoqlanuvchi algoritmlar
|
bet | 110/154 | Sana | 08.01.2024 | Hajmi | 5,29 Mb. | | #131939 |
Bog'liq MajmuaTarmoqlanuvchi 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.2.7-rasm).
1.2.7-rasm. Tarmoqlanishning umumiy ko‘rinishi
Berilgan P-shart romb figurasi ichida tasvirlanadi. Agar shart bajarilsa, "ha" tarmoq bo‘yicha A-amal, aks holda (shart bajarilmasa) "yo‘q" tarmoq bo‘yicha B-amal bajariladi.
3-misol. Tarmoqlanuvchi algoritmga misol sifatida quyidagi sodda masala keltiriladi:
Natijaviy qiymat y berilgan x ning qiymatiga bog‘liq holda bo‘ladi: agar shart rost bo‘lsa, tarmoq bo‘yicha munosabatning qiymati, aks holda, y = 2*x munosabatning qiymati hisoblanadi. Bu masala bajarilishining so‘z bilan ifodalangan algoritmi quyidagicha:
agar ( x ≥ 0 ) shart bajarilsa, u holda , aks holda y=2*x.
Masala yechimining blok-sxemasi 1.2.8-rasmda keltirilgan.
1.2.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 yetarli bo‘ladi. Bu holat tarmoqlanuvchi algoritmning xususiy holi sifatida qisqartirilgan strukturasi deb atash mumkin. Qisqartirilgan struktura blok-sxemasi quyidagi ko‘rinishga ega (1.2.9-rasm).
1.2.9-rasm. Qisqartirilgan strukturaning umumiy ko‘rinishi
4-misol. Berilgan x, y, z sonlari ichidan eng kattasini aniqlang. Ushbu masalaga mos matematik modelni quyidagicha tasvirlash mumkin:
.
Berilgan x, y, z sonlardan eng kattasi p deb belgilangan. So‘zlar orqali ifodalangan algoritm asosida masala yechimini quyidagicha tasvirlash mumkin:
1) kiritish (x, y, z);
2) agar ( x > y ) bo‘lsa, u holda p = x, aks holda p = y;
3) agar (p < z ) bo‘lsa, u holda p = z;
4) muhrlash (p).
Keltirilgan algoritmga mos blok-sxema 1.2.10-rasmda tasvirlangan. Bu algoritmda avval, x va y o‘zaro solishtiriladi, katta qiymat p ga yuklanadi. So‘ngra x va y larning kattasi deb aniqlangan p va z o‘zaro solishtiriladi. Agar sharti 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.2.10-rasm. Berilgan x, y, z sonlar ichidan eng kattasini topish blok-sxemasi
Ushbu masalani yechish algoritmining yana bir usulini ko‘rib chiqamiz.
1) kiritish (x, y, z);
2) p = x;
3) agar (p < y ) bo‘lsa, u holda p= y;
4) agar (p < z ) bo‘lsa, u holda p= z;
5) muhrlash (p).
Bu algoritmga mos blok-sxema 1.2.11-rasmda tasvirlangan
Bu usulda, asosan, sonlar ichida birinchisi eng kattasi deb faraz qilinadi, ya’ni p = x. So‘ngra har bir qadamda navbatdagi son – p 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.2.11-rasm. Hisoblash blok-sxemasi
|
| |