Tajribali dasturchilar, odatda, juda katta hajmdagi dasturni biror vazifani bajaruvchi kichikroq hajmdagi dasturlar yig‘ilmasi ko‘rinishida tashkil etishadi
Tajribali dasturchilar, odatda, juda katta hajmdagi dasturni biror vazifani bajaruvchi kichikroq hajmdagi dasturlar yig‘ilmasi ko‘rinishida tashkil etishadi. Chunki, bu holda ular har bir kichik dastur ishini alohida tekshirish, kamchiliklarni aniqlash va kerakli o‘zgartirishlar kiritish imkoniyatiga ega bo‘ladilar. Shu bilan birga, asosiy dastur bergan natijani tahlil etib kichik dasturlarning qaysi biri xatolikka olib kelayotganini aniqlashi oson kechadi. Kichik dasturlar ham o‘z navbatida yanada kichikroq dasturlardan iborat bo‘lishi mumkin. Kichikroq dasturlarga ajratish jarayoni eng sodda (ya’ni, eng sodda vazifalarni bajaruvchi) dasturlarga ajratilgach to‘xtaydi. Shuning uchun biz ham algoritmning asos tuzilmalarini izohlashdan boshlaymiz.
Yodingizda bo‘lsin, har qanday algoritm asosiy tuzilmalardan tashkil etiladi. Umuman, dastur ham algoritmni tasvirlash usullaridan biri bo‘lgani uchun, avval algoritmni ba’zi tasvirlash tasvirlash usullari: algoritmni so‘zlar orqali va blok-sxema yordamida ifodalash usullari bilan tanishamiz. Keyingi bo‘limlarda, imkon qadar algoritmni tasvirlash usullarini bir-biriga mosligini ko‘rsatuvchi misollar tanlashga harakat qilamiz.
Algoritmlarni ifodalashning ilk usullaridan biri soz’lar orqali tasvirlash qulay bo‘lgan “Daryodan o‘tish” nomli quyidagi masalani qaraylik.
۩. Daryoning chap qirg‘og‘iga polvon keldi. U daryoning o‘ng qirg‘og‘iga o‘tishi kerak. Chap qirg‘oqda ikkita bola qayiqda baliq ovlab o‘tirishibdi. Qayiq shunchalik kichkinaki yoki faqat ikkita bolani yoki faqat bitta polvonni ko‘tarishi mumkin. Polvon daryodan o‘tib olishiga va qayiqni bolalarga qaytarib berishga imkon beruvchi algoritm tuzing.
Masalani yechimini yozish uchun barcha ko‘rsatmalarni yozib chiqamiz, buning uchun qayiqda kim suzib o‘tayotganini ko‘rsatish kifoya. Demak, bizda faqat uchta ko‘rsatma bor: {polvon; bola; ikkita bola}. Polvonni daryoning narigi qirg‘og‘iga o‘tkazib qayiqni bolalarga qaytarib berish masalasi yechimi quyidagicha.
Qadam
Ko‘rsatma
Chap qirg‘oq
O‘ng qirg‘oq
0
–
polvon, ikkita bola (qayiq)
–
1
ikkita bola
polvon
ikkita bola (qayiq)
2
bola
polvon, bola (qayiq)
bola
3
polvon
bola
polvon, bola (qayiq)
4
bola
ikkita bola (qayiq)
polvon
Daryo bilan bog‘liq yana bir “Bo‘ri, echki va karam” nomli quyidagi qadimiy masalani qaraylik.
۩. Dehqon daryoning chap qirg‘og‘ida bo‘ri, echki va karam bilan turibdi. U bularni hammasini o‘ng qirg‘oqqa o‘tkazishi kerak. Uning qayig‘i juda kichik bo‘lgani uchun faqat bitta yo‘lovchini olishi mumkin – yoki bo‘rini yoki echkini yoki karamni. Dehqon biladiki, agar bo‘ri va echki bir qirg‘oqda qoldirilsa bo‘ri echkini yeb qo‘yadi, agar echki va karam bir qirg‘oqda qoldirilsa echki karamni yeb qo‘yadi. Hayvonlar faqat dehqon borligidagina tinch turishadi. Dehqon qanday yo‘l tutishi kerak?
Ijrochi Dehqonning ko‘rsatmalar sistemasini, qo‘yilgan masala shartlaridan kelib chiqib, quyidagicha yoza olamiz: