1. Algoritm tushunchasi va uning xossalari 2. Hisoblash jarayonlarini grafik tasvirlash 3. Dasturlash tillari haqida umumiy ma’lumot
Algoritm tushunchasi va uning xossalari. Algoritm tushunchasi hozirgi zamon matematikasining eng keng qo‘llanilayotgan tushunchalaridan biri hisoblanadi. Algoritm so‘zi o‘rta asrda paydo bo‘lgan bo‘lib, Al-Xorazmiy nomi bilan bog‘liqdir. Hozirgi paytda o‘nlik sanoq sistemasida arifmetik amallarni bajarish usullarini hisoblash algoritmi soddagina bo‘lgan misol sifatida keltirsa bo‘ladi. Ma’lumki, inson kundalik turmushida turli-tuman ishlarni bajaradi. Har bir ishni bajarishda esa bir qancha elementlarni ketma-ket amalga oshirishga to‘g‘ri keladi. Mana shu ketma-ketlik yozilsa, u bajariladigan ishning algoritmi bo‘ladi.
Algoritm ma’lum bir buyruqlar to‘plami bo‘lib, bajaruvchi uchun aniq ko‘rsatmalarni o‘z ichiga mujassamlashtiradi. Ushbu buyruqlar bajaruvchiga ko‘rsatilgan maqsadga erishish uchun asos bo‘lishi kerak.
Demak, qo‘yilgan masalani bajarish ma’lum ketma-ketlikda elementlarni ijro etish orqali erishiladi. Bunda algoritmni bajaruvchi algoritm ijrochisi hisoblanadi. Umuman, uni 2 guruhga ajratish mumkin:
1-guruh algoritmlarining ijrochisi faqat inson bo‘lishi mumkin.
2-guruh algoritmlarining ijrochisi ham inson, ham kompyuter bo‘lishi mumkin.
Bu guruh algoritmlari ijrochisini kompyuter zimmasiga yuklash mumkin. Buning uchun algoritmni kompyuter tushunadigan biror dasturlash tilida yozib, keyin uning xotirasiga kiritish kifoya.
Umuman olganda ijrochi algoritmda mavjud maqsadni bilmaydi. U bevosita keltirilgan buyruqlarni bajaradi. Informatikada algoritmlarning ijrochisi kompyuter deb hisoblanadi. Shunday qilib, biz, algoritm deganda, berilgan masalani yechish uchun ma’lum tartib bilan bajarilishi lozim bo‘lgan chekli sondagi ko‘rsatmalar ketma-ketligini tushunamiz.
Algoritmlarni yozish uchun qo‘llaniladigan tillar algoritmik tillar deb ataladi. Algoritmik tilni kompyuter ham tushunsa, u holda bu til dasturlash tili deb ataladi. Demak, algoritmik yoki dasturlash tillari ham berilgan masalani yechish algoritmining yozish usullaridan biri hisoblanar ekan. Algoritmlarni o‘rganish davomida biz quyidagi asosiy tushunchalar bilan tanishamiz: algoritm, blok-sxema, chiziqli algoritmlar, tarmoqli algoritmlar, takrorlash jarayonlari, iteratsion jarayonlar.
Biror masalani kompyuterda yechishda eng muhim va ma’suliyatli ishlardan biri bu masalani yechish algoritmini yaratish bo‘lib, bu jarayonda bajarilishi lozim bo‘lgan barcha bo‘lajak buyruqlar ketma-ketligi aniqlanadi. Algoritmda yo‘l qo‘yilgan xatoliklar hisoblash jarayonining noto‘g‘ri bajarilishiga olib keladi, bu esa, o‘z navbatida, xato natijaga olib keladi.
Umuman, istalgan masalaning yechimi deyilganda, masalani yechish algoritmi mavjudligi va ushbu algoritm natijaga erishishini ta’minlashi zarurligi tushuniladi.
Masalalarni, ularning qo‘yilishi bo‘yicha, 4 ta sinfga ajratish mumkin.
1. Aniq ta’riflangan va yechimga erishadigan algoritmlari mavjud masalalar. Ushbu sinfga doir masalalar bevosita to‘g‘ridan - to‘g‘ri kompyuterda bajariluvchi dasturlarga aylantirilishi mumkin.
2. Masala qo‘yilishida yoki uning yechimida noaniqliklar mavjud bo‘lib, algoritmda ushbu noaniqliklarni e’tiborga olish zaruriyati paydo bo‘ladi. Bu yerda asosan tashqi muhitning o‘zgarishi bilan algoritmning shunga moslanishi nazarda tutiladi.
3. Bilimlarni qayta ishlash doirasida berilgan idrokiy masalalar. Bu yerda mantiqiy tushunchalar bilan ishlay oladigan algoritmik tillarning mavjudligi va ular asosida kompyuter uchun dasturlar yaratish mumkinligi nazarda tutiladi.
4. Inson faoliyatiga bog‘liq masalalarni modellashtirishga qaratilgan bo‘lib, aniq yechish algoritmlari mavjud bo‘lmagan masalalar. Ya’ni inson faoliyatini ma’lum bir model doirasida dasturlash mumkinligi nazarda tutilgan bo‘lib, algoritm ushbu faoliyatni to‘liq qamrab ololmaydi, masalan, shaxmat o‘yini.
Berilgan masala algoritmini yozishning turli usullari mavjud bo‘lib, ular qatoriga so‘z bilan, blok-sxema shaklida, formulalar, operatorlar yordamida, algoritmik yoki dasturlash tillarida yozish kabilarni kiritish mumkin. Endi biror usulda tuzilgan algoritmning ayrim xossalarini va ularga qo‘yilgan talablarni ko‘rib chiqaylik.
1) Algoritm har doim to‘liq bir qiymatlidir, ya’ni uni bir xil boshlang‘ich qiymatlar bilan ko‘p marotaba qo‘llash har doim bir xil natija beradi.
2) Algoritm birgina masalani yechish qoidasi bo‘lib qolmay, balki turli-tuman boshlang‘ich shartlar asosida ma’lum turdagi masalalar to‘plamini yechish yo‘lidir.
3) Algoritmni qo‘llash natijasida chekli qadamdan keyin natijaga erishamiz yoki natijaga erishish mumkin emasligi haqidagi ma’lumotga ega bo‘lamiz.
Yuqorida keltirilgan xossalarni umumlashtirib, algoritmlarning quyidagi asosiy xossalarini ta’kidlash zarur.
1. Algoritm boshlang‘ich qiymatli argumentlarga ega bo‘ladi.
Algoritmni bajarishdan maqsad bu natija olishdir, ya’ni algoritm boshlang‘ich qiymatlarni biror usul orqali natijaga aylantiruvchi avtomatdir. Demak, algoritmni qo‘yilgan masalaning har xil boshlang‘ich qiymatlari uchun qo‘llash mumkin. Lekin algoritmning ijrochisi inson bo‘lsa, boshlang‘ich qiymat ko‘rsatilmagan bo‘lishi ham mumkin, masalan, “qogozda kvadrat chizing”.
Har xil boshlang‘ich qiymatlar ishlatilishi mumkin bo‘lganligi sababli algoritmning ommaviylik xossasi yuzaga keladi. Lekin ba’zi-bir hollarda faqatgina individual boshlang‘ich qiymatga mo‘ljallangan algoritm ham mavjud bo‘ladi.
2. Algoritm ijrochiga tushunarli bo‘lishi lozim, ya’ni ijrochining bazasida mavjud bo‘lgan buyruqlar qo‘llanilishi zarur. Shu bois, algoritmni yaratish jarayonida ijrochining imkoniyatlari va nozik tomonlari e’tiborga olinishi darkor.
3. Algoritm cheklangan qadamlar ketma-ketligidan iborat bo‘ladi va har bir qadam to‘liq bajarilgandan so‘ng keyingi qadamga o‘tiladi. Ushbu xossa algoritmning diskretli xossasi deb ataladi.
4. Algoritm chekli qadamlar bajarilgandan so‘ng tugatiladi. Ya’ni chekli qadamlardan so‘ng algoritm natijaga erishishi kerak yoki natija olish mumkin emasligi aniqlanishi lozim. Ushbu xossa algoritmning natijaviylik xossasi deb ataladi.
5. Algoritmning har bir qadami aniq ta’riflangan bo‘lib, ko‘p ma’noli bo‘lishi mumkin emas. Ya’ni har bir qadamdan so‘ng keyingi qadam aniqlangan bo‘lishi yoki algoritm tugatilishi kerak.
Algoritmning ushbu xossasi aniqlik xossasi deb yuritiladi va algoritmni bevosita kompyuterda bajarish uchun imkon beradi.
Ushbu xossaga binoan, bir xil boshlang‘ich qiymatlar bilan bajariladigan algoritm doimo bir xil natijaviy qiymatlar bilan tugallanadi.
6. Algoritmning har bir qadami aniq va chekli vaqt davomida bajarilishi lozim. Ushbu xossa algoritmning effektivligi deb yuritiladi.
Algoritmning har bir qadamida bajariladigan ko‘rsatma buyruq deb aytiladi. Ushbu buyruqlar nafaqat chekli vaqt davomida, balki qisqa vaqt mobaynida tugatilishi lozim. Bunday shartlar barcha olimpiada masalalarida doimo keltiriladi.
Algoritm deganda, biror maqsadga erishishga qaratilgan ijrochi baja- ” rishi uchun mo'ljallangan ko‘rsatma (buyruq)laming aniq, tushunarli va chekli ketma-ketligi tushuniladi. Bu algoritm tushunchasining matematik ta'rifi boMmasa ham intuitiv ma'noda algoritmning mazmunini ochib beruvchi tavsifidir. Algoritmni intuitiv ma’noda bir necha misollarda izoh- laymiz. Biror-bir narsani taqiqlovchi qoidalar algoritm boMolmaydi, masalan: «Chekish mumkin emas», «Begonalarning kirishi taqiqlanadi», «Kirish», «Chekish uchun joy» kabi birorbir narsaga ruxsat etuvchi qoidalar ham algoritmga xos emas. Lekin «Svetoforni yashil rangida o‘ting» juda sodda bo'lsa ham algoritmdir. Demak, yuqorida keltirilgan misollardagi ko‘r- satmalar ketma-ketligi algoritm va bu algoritmlarni bajarayotgan inson — ijrochi boMar ekan. Algoritm ijrochisi faqat insonmi, degan savol berishingiz tabiiy. Bu savolga javob quyidagicha: Algoritm ijrochisi — algoritmda ko'rsatilgan buyruq yoki ko‘rsatmalarni bajara oladigan abstrakt yoki real (texnik yoki biologik) sistema. Ijrochi bajara olishi uchun algoritm unga tushunarli boMishi lozim. Algoritm ijrochi tushunadigan tilgagina emas, balki uning bilim va malakasiga ham mos boMishi kerak. Aks holda ijrochi birorta ham ko'rsatmani bajara olmasligi mumkin. Ijrochi bajara olishi mumkin boMgan ko‘rsatma yoki buyruq- lar to‘plami ijrochining ko‘rsatmalar sistemasi deyiladi. Masalan, «16 sonidan kvadrat ildiz chiqarilsin» ko'rsatmasi 2-sinf o'quvchisining ko'rsatmalar sistemasiga tegishli boMmaydi, lekin 8-sinf o'quvchisining ko‘rsatmalar sistemasiga tegishli boMadi. Algoritm ijrochiga tushunarli boMishi uchun ijrochining imkoniyatlarini bilish lozim. Agar ijrochi inson boMsa, u holda algoritm insonning imkoniyatlaridan kelib chiqib tuzilishi kerak. Bunda ko‘zlangan maqsad va algoritmdan kelib chiqib inson tushunadigan til, insonning bilimi, hayotiy tajribasi, kasbiy malakasi, yoshi, qolaversa, jismoniy imkoniyatlari hisobga olinishi zarur. Agar ijrochi texnik vosita (masalan, kompyuter, elektron soat, dastgohlar) boMsa, u holda algoritm shu texnik vositaning imkoniyatlaridan kelib chiqib tuzilishi kerak. Agar ijrochi koinpyuter hisoblanib, uning dasturiy ta‘mi- notida berilgan («Karra jadvalini hosil qilish») algoritmni bajara oladigan dastur (masalan, elektron jadvallardan birortasi ham) bo'lmasa, u holda hech qanday natijaga erishib bo'lmaydi. Demak, berilayotgan har qanday ko‘rsatma ijrochining ko‘r- satmalar sistemasidan olinishi, ya'ni ijrochi uni qanday baja- rishni bilishi kerak ekan. Bu algoritmning tushunarlilik xossasini ifodalaydi. Shuni ta‘kidlash joizki, informatikada algoritmning asosiy ijrochisi sifatida kompyuter xizmat qiladi
Algoritmlarni tasvirlashning turli usullari mavjud. Quyida algoritmlarni tasvirlashning keng tarqalgan usullarini ko'rib chiqamiz. 1. Algoritmning so‘zlar yordamida ifodalanishi Awal keltirilgan bir qator misollar inson og'zaki nutqida qo'llaniladigan so‘zlar orqali ifodalangan edi (masalan, ko‘chadan o'tish algoritmi, g'ishtlar sonini hisoblash algoritmi). Algoritmning bunday tasvirlash usulida ijrochi uchun ko'rsatma jumlalar orqali ko'rsatma shaklida beriladi. Qo'llanmada, asosan, shu usuldan foydalanamiz. 2. Algoritmning formulalar yordamida ifodalanishi Bu usul matematika, fizika, kimyo va biologiya kabi fanlarda ko‘plab qo'llanilaniladi. Yodingizda bo‘lsa, so'zlar yordamida ifodalangan g‘ishtlar sonini hisoblash algoritmini formula orqali ifodalagan edik. Formuladagi «+», «—», «x», «:» kabi arifmetik amallarning tartibiga rioya qilgan holda bajarilishi ham algoritmga misol boMadi. Awal berilgan ««ax2+ bx+c = 0 (a* 0) ko‘rinishidagi kvadrat tenglamani yechish» algoritmining quyidagi formula orqali ifodasi bilan tanishsiz: —b ± \jb2 -4ac ' 2a Bilasiz, formuladagi amallar ma'lum bir tartib bilan bajarilishi shart.
Algoritmning bu ko'rinishda berilishi ham sizga tanish. Ma- salan, matematikada qo'llanib kelinayotgan Bradis jadvali deb nomlangan to‘rt xonali matematik jadval, lotareya yutuqlar jad- vali, Mendeleyev kimyoviy elementlar jadvali. Bunday jad- vallardan foydalanish maMum bir algoritm qo'llashni talab etadi. Biror funksiyaning grafigini chizish uchun ham funksiyaning argument qiymatlariga mos qiymatlar jadvaiini hosil qilamiz. Bu ham algoritmning jadval ko‘rinishiga misol bo'ladi. 4. Algoritmning grafik shaklda ifodalanishi Algoritmning bu ko‘rinishda ifodalanishi matematikada chi- zilgan grafik, kerakli uyni oson topish uchun dahalarda o‘rnatil- gan uylarning joylashish sxemasi, avtobuslarning yo'nalish sxemasi orqali sizga tanish. Algoritmlash asoslarini o‘rganishning yana bir qutay grafik shakli — blok-sxema usulidir. Blok-sxemalar bir yoki bir nechta buyruq yoki ko'rsatmani aks ettiruvchi maxsus geometrik shakllar — bloklardan tashkil topadi. Bloklar yo'nalish chiziqlari orqali tutashtiriladi
Awal aytib o'tilganidek, algoritmda boshlang'ich qiymatlar o‘miga ularning nomlari ishtirok etishi mumkin va bu algoritm- ning ommaviylik xossasiga aloqadorligini bildiradi. Bu masalada ham radiuslar guruhi R nomi bilan berilmoqda va uning joiz boshlang'ich qiymati ixtiyoriy haqiqiy son bo'lishi mumkin. Eslatib o'tamiz, algoritmda turli nomlar ishtirok etishi va ular boshlang'ich qiymatlar va natijalar nomi bo‘lishi ham mumkin. Masalaning quyida keltirilgan yechimidagi S nomi masalani yechimi bo'ladigan natijalar guruhining nomidir. 5. Algoritmning dastur shaklida ifodalanishi Ma'lumki, kompyuter dasturlar asosida ishlaydi va boshqariladi. Siz hozirgacha MS Word, MS Paint va MS Excel kabi amaiiy dasturlar bilan ishladingiz. Lekin har bir amaliy dastur ham juda katta va murakkab algoritmning bir ko‘rinishidir. Demak, bu kabi algoritmlar bajarilishi uchun ular algoritm ijrochisiga, ya ’ni kompyuterga tushunarli bo‘lishi lozim. Odatda, algoritmning kompyuter tushunadigan tilda yozilishi dastur deb ataladi. Kompyuter tushunadigan til esa dasturlash tili deb ataladi. Jahonda hozirgi kunda minglab dasturlash tillari mavjud va yana rivojlanib bormoqda. Hozirgi kunda keng tarqalgan va o'rganish uchun qulay bo'lgan BASIC, Pascal, VBA, Delphi, C dasturlash tillari o‘rganiladi. Qo‘llanmada, asosan, algoritmuk tafakkurning rivojlan- tirishini maqsad qilib qo‘ygan bo‘lsak-da, algoritm to‘g‘risida tasawuringizni kengaytirish maqsadida yana ba’zi ma'lumotlarni berishni lozim topdik. Har qanday algoritm mantiqiy tuzilishiga, ya'ni bajarilishiga qarab uch asosiy turga bo‘linadi: chiziqli (ketma-ketlik), tarmoq- lanuvchi va takrorlanuvchi. Algoritmikada bu algoritmlar asosida turli-tuman yangi algoritmlar hosil qilinadiki, ular ham o‘z navbatida mustaqil ahamiyatga ega bo'ladi. Chiziqli algoritmlar. Bu turdagi algoritmlarda hech qanday shart tekshirilmaydi. Shu sababli barcha ko‘rsatmalar ketmaket bajarib boriladi. «G‘ishtlar sonini hisob!ash», «Doira yuzini hisoblash» algoritmlari chiziqli algoritmlarga misol bo'ladi. Le- kin hayotimizdagi juda ko‘p jarayonlar shartlar asosida bosh- qariladi. Tarmoqlanuvcbi algoritmlar. Shartga muvofiq bajariladigan ko‘rsatmalar ishtirok etgan algoritmlar tarmoqlanuvchi algoritm- lar deb ataladi. Algoritmlaming bu turi hayotimizda har kuni va har qadamda uchraydi. Eshikdan chiqishimiz eshik ochiq yoki yopiqligiga, ovqatlanishimiz, qornimiz och yoki to‘qligiga yoki taomning turiga, ko'chaga kiyinib chiqishimiz ob-havoga, biror joyga borish uchun transport vositasini tanlashimiz to‘lash imkoniyatimiz bo'lgan pulga bogMiqdir. Demak, tarmoqlanuvchi algoritmlar chiziqli algoritmlardan tanlash imkoniyati bilan farqlanar ekan. Awal yoritilgan «Ko‘chadan o‘tish», «Kvadrat tenglamani yechish» algoritmlari ham tarmoqlanuvchi algoritmlarga misol bo‘ladi.
Alifbo — aniq bir til uchun asosiy belgilar ro‘yxati, ya’ni shu tildagi matnlarni yozish uchun qoMlaniladigan «alifbo harflari» — boshqa belgini qoMlash mumkin emas. Sintaksis — bu jumlalarni hosil qilish qoidasi boMib, biror jumlani to‘g‘ri yoki xato yozilganligini aniqlash uchun xizmat qiladi. Aniqroq qilib aytadigan boMsak, til sintaksisi shu tilda belgilarni ma'noga ega boMadigan biriktirishni aniqlab beruvchi qoidalar ro'yxati. Semantika — jumla yoki gaplarning mazmunini aniqlaydi. Semantika hosil qilingan jumlalar yoki gaplarni qanday amallar ketma-ketligini aniqlab berishini ta'minlaydi. Qulay belgilashlarni o'ylab topish san'ati inson madaniyatida juda muhim ahamiyatga ega. Masalan, sonlarni belgilashni olaylik. Awalgi bobda aytib o‘tilganidek, hammangiz sonlarni ustun ko‘rinishda qo‘shish va ko‘paytirishni bilasiz. Al-Xorazmiy tomonidan yoritib berilgan o‘nlik belgilash sistemasi bunga imkon beradi. Rim raqamlari orqali yozilgan sonlarni qo‘shib ko‘ring-chi, qo'shish masalasini hal etishda belgilashlar sizga hech qanday yordam bermayotganini ko‘rasiz. Yana, masalan, musiqani olaylik. Musiqa tovushlarini belgilash uchun notani o'ylab topib, musiqachilar ancha murakkab va qiziqarli musiqalarni yozish hamda tarqatish imkoniyatiga ega boMdilar. Shu kabi juda ko‘p misollarni keltirish mumkin. Algoritmikada qulay belgilashlar ham, albatta, yanada muhim ahamiyatga ega. Bunda uning o‘ziga xos tomonlari ham bor. Biz ham o‘z belgilash usulimizni kiritishdan awal ba’zi tomonlarga e'tibor berishimiz lozim bo'ladi. Yozish uchun lotin harflari va o‘nlik sanoq sistemasidagi raqamlardan foydalanamiz. Ko‘rsatmalar so‘zlar bo‘lib, ularni yozish uchun jumlalarga buyruq mazmunini beramiz. Bunda ularni qisqa va ma'noli bo'lishiga e'tibor beramiz. Misoi uchun bir xil ma’noli quyidagi ko'rinishdagi jumlalami qarab chiqaylik: o‘ng tomonga yuring o‘ngga yuring o‘ngga yur Bularning barchasini ko'rsatma sifatida qabul qilish mumkin. Lekin biz faqat o‘ngga yur jumlasini tanlaymiz, ham qisqa, ham ma'noga ega, ham aniq amalni ifodalaydi. Qisqa yozish chog'ida juda ham berilib ketish kerak emas. Juda qisqa belgilashlar tushunarsiz bo'lishi mumkin. Masalan, o‘ty yoki o‘y qanday ma’no anglatishini bilish qiyin. Doimo aql bilan murosali ish yuritish kerak. Kompyuter uchun tushunarlilik talabi ba‘zan o‘ta g'alati natijalarga olib keladi. Ba’zi kompyuter sistemalari probeliar orasidagi har bir so‘zni alohida tahlil qiladi. Ular uchun ko‘r- satma ikkita so'zdan iborat boMishi mumkin emas, buni kom- pyuter ikkita alohida ko'rsatma deb hisoblashi mumkin. Bu kabi sistemalarda o‘nggayur yoki 0 ‘nggaYur yoki o‘ngga_yur ko‘rinishidagi belgilashlarni uchratish mumkin. E'tibor qiling — biz barcha hollarda ham ko'rsatma ichiga probel qo'ymaslikka harakat qildik! Ya'ni, agar siz biror joyda shunday belgilashlarni uchratsangiz, hayron boMmang. Bilingki, bularning hammasi texnik sabablarga asosandir. Kompyuter uchun shunisi qulay ekan. Ijrochiga berilayotgan ko'rsatmalar mutlaqo ravshan boMishi kerak. Ular ikki xil ma'noli boMmasligi kerak. Oddiy inson tili juda ma'nodor, lekin ko'pincha bir ma'noli emas. Ba’zan bir so'zni o‘zi ikki xil mazmunga ega bo'lishi mumkin, ba‘zan esa ikki ma'nolilik jumlaning o‘zida yashiringan boMadi. Masalan, quyidagi masala-hazilni ko‘raylik. Shoxda 7 ta qush o‘tirgan edi. Ovchi 3 ta qushni otib tushirdi. Shoxda nechta qush qoldi? Undagi «qoldi» so'ziga ikki xil mazmun berish mumkin. Birinchisi — tabiiyki, «tirik qoldi». Ikkinchisi — hazil — «joyida qoldi» (qolganlari uchib ketdi). Birinchi holda javob 4, ikkinchi holda javob 3. Masalani hazil ekanligini hisobga olsak, ikkinch javob to‘g‘ri bo'iadi. Lekin kompyuter hazilni tushunmaydi-ku! Bu kabi masalalarni yechishga kompyuterning kuchi yetmaydi. Mana sizga go‘zal qadimiy afsona. Uni tuzgan inson qalban dasturchi bo‘lgan bo‘lsa kerak. B irkun i Dionis xudosi shoh Midasga uning har qanday istagini bajarishni taklif etdi. Midas nimaga tegsa o ‘sha narsa oitinga aylanib qolishi istagini bildirdi. Bir necha soniyadan keyin u dunyodagi eng boy odamga ayiandi. Lekin tezda kutilmagan qiyinchilik yuzaga keldi: shoh Midasning ovqati va ichimligi ham oltinga ayianib qolaverdi. Shoh ochdan o ‘lishi mumkin! Yaxshiki, Dionisning unga rahmi kelib o ‘zining bu sovg‘asidan xolos etdi. Ko'rib turibsizki, aniq ifodalash nafaqat kompyuter bilan ishlagandagina kerak. Albatta, Midas o'zining istagini aytayot- ganda ovqati va ichimligini ham oltinga aylanishini nazarda tutmagan. 0 ‘ylab ko'rib, balki yana bir qancha istisnolar qilishni xohlagan bo‘lar edi. Hamma balo shundaki, Midas fikrini aniq va ravshan ifoda etmagan. U bularni o‘z-o‘zidan tushunarli deb hisoblab, faqat nazarda tutgan. Dastur tuzayotgan kishilar ko'pincha mana shunday holga tushib qolishadi. Inson faoliyatining juda ko'p sohalarida aniqlik va ravshanlik muhimdir, Masalan, qonunlarni tuzishda, atom elektrostansiya- sini yoki yadroli raketa qurilmasini boshqarish yo‘riqnomasida hech qanday noaniqliklar, mujmal qismlar va ko‘p ma'nolilik bo'lmasligi lozim. Bular butun sayyoramizning xavfsizligi bilan bogMiq! Qonun va yo'riqnomalar bilan bo‘g‘liq har bir ishda yetuk Algoritmik Tafakkur zarur. Biroq boshqacha nuqtayi nazar ham mavjud. Qilishi kerak bo‘lgan ish — yo'riqnomani aniq bajarish boMgani uchun atom bomba tugmasi yonida nima uchun inson o'tirishi kerak? Uni kompyuter bilan almashtirish mumkindek ko‘rinadi. Baribir bu ishni insonga topshiramiz. Inson Ijrochi emas — u faqatgina buyruqlarni bajaribgina qolmay, balki mustaqil qaror qabul qiladi, javobgarlikni o‘z zimmasiga oladi. Chamasi, dilimizda yo‘riqnoma tugmani bosib atom urushini boshlashni talab qilganda Inson javobgarlikni o‘zq o ‘liga oladi va yo‘riqnoma buzadi, deb umid qilsak kerak.