Yuqorida qayd etganimizdek, qo‘yilgan biror masalani kompyuterda yechish uchun, avval uning matematik modelini, keyin esa yechish algoritmi va dasturini tuzish kerak bo‘ladi. Ushbu uchlikda algoritm bloki muhim ahamiyatga ega. Endi algoritm tushunchasining ta’rifi va xossalarini bayon qilamiz. Masala echimini cheklangan qadamlar natijasida hosil qiladigan, oldindan tayinlangan va aniq belgilangan qoidalar yoki buyruqlar ketma-ketligi algoritm deyiladi. Soddaroq qilib aytganda, algoritm bu - oldimizga qo‘yilgan masalani yechish uchun zarur bo‘lgan amallar ketma-ketligidir. Algoritm tuzish - bu dasturlashdir, algoritmni tuzuvchilar esa dasturchilardir. Masalan, ax2+bx+c=0 kvadrat tenglamani yechish uchun quyidagi amallar ketma-ketligi zarur bo‘ladi:1. a, b, c koeffitsiyentlar berilgan bo‘lsin. 2. Berilgan a, b, c koeffitsiyentlar yordamida discriminant. D= b2-4ac hisoblanadi. 3. D>0 bo‘lsa X 21 = (- b ± D) ( *2/ a)- hisoblanadi. 4. D<0 bo‘lsa, haqiqiy echimi yo‘q.Misol sifatida berilgan a, b, s tomonlari bo‘yicha uchburchakning yuzasini Gerron formulasi bo‘yicha hisoblash masalasini ko‘rib chiqaylik. 1. a, b, c uchburchak tomonlari uzunliklari. 2. r = (a+b+c)/2 - perimetrning yarmi hisoblansin. 3. T= p(r-a) (r-b) (r-c) – hisoblansin.4. S= T hisoblansin.Yuqoridagi misollardan ko‘rinib turibdiki, algoritmning har bir qadamida bajariladigan amallar tushunarli va aniq tarzda ifodalangan hamda chekli sondage amallar bajarilgandan keyin aniq natija olish mumkin.Zikr etilgan, tushinarlilik, aniqlilik, cheklilik va natijaviylik tushunchalari algoritmning asosiy xossalarini tashkil etadi. Bu tushunchalar keyingiparagraflarda alohida ko‘rib o‘tiladi. “Algoritm” so‘zi va tushunchasi IX asrda yashab ijod etgan buyuk alloma Muhammad al-Xorazmiy nomi bilan uzviy bog‘liq. Algoritm so‘zi Al-Xorazmiy nomini Evropa olimlari tomonidan buzib talaffuz qilinishidan yuzaga kelgan. AlXorazmiy birinchi bo‘lib o‘nlik canoq sistemasining tamoyillarini va undagi to‘rttabamalni bajarish qoidalarini asoslab bergan.Algoritmning 5 ta asosiy xossasi bor.
1. Diskretlilik (Cheklilik).Bu xossaning mazmuni algoritmlarni doimo
chekli qadamlardan iborat qilib bo‘laklash imkoniyati mavjudligida. Ya’ni uni
chekli sondagi oddiy ko‘rsatmalar ketma-ketligi shaklida ifodalash mumkin. Agar
kuzatilayotgan jarayonni chekli qadamlardan iborat qilib qo‘llay olmasak, uni
algoritm deb bo‘lmaydi.
2. Tushunarlilik.Biz kundalik hayotimizda berilgan algoritmlar bilan ishlayotgan elektron soatlar, mashinalar, dastgohlar, kompyuterlar, turli avtomatik va mexanik qurilmalarni kuzatamiz.Ijrochiga tavsiya etilayotgan ko‘rsatmalar uning uchun tushinarli mazmunda bo‘lishi shart, aks holda, ijrochi oddiygina amalni ham bajara olmaydi. Bundan tashqari, ijrochi har qanday amalni bajara olmasligi ham mumkin. Har bir ijrochining bajarishi mumkin bo‘lgan ko‘rsatmalar yoki buyruqlar
majmuasi mavjud, u ijrochining ko‘rsatmalar tizimi (sistemasi) deyiladi. Demak,
ijrochi uchun berilayotgan har bir ko‘rsatma ijrochining ko‘rsatmalar tizimiga
mansub bo‘lishi lozim.Ko‘rsatmalarni ijrochining ko‘rsatmalar tizimiga tegishli bo‘ladigan qilib ifodalay olishimiz muhim ahamiyatga ega. Masalan, quyi sinfning a’lochi o‘quvchisi "son kvadratga oshirilsin" degan ko‘rsatmani tushunmasligi natijasida b ajara olmaydi, lekin "son o‘zini o‘ziga ko‘paytirilsin" shaklidagi ko‘rsatmani bemalol bajaradi, chunki u ko‘rsatma mazmunidan ko‘paytirish amalini bajarish kerakligini anglaydi.
3. Aniqlik. Ijrochiga berilayotgan ko‘rsatmalar aniq va mazmunli bo‘lishi zarur. Chunki ko‘rsatmadagi noaniqliklar mo‘ljaldagi maqsadga erishishga olib kelmaydi. Inson uchun tushunarli bo‘lgan "3-4 marta silkitilsin", "5-10 daqiqa qizdirilsin", "1-2 qoshiq solinsin", "tenglamalardan biri echilsin" kabi noaniq ko‘rsatmalar kompyuterni qiyin ahvolga solib qo‘yadi. Bundan tashqari, ko‘rsatmalarning qaysi ketma-ketlikda bajarilishi ham muhim ahamiyatga ega.
4. Ommaviylik. Har bir algoritm mazmuniga ko‘ra bir turdagi masalalarning
barchasi uchun ham o‘rinli bo‘lishi kerak. Ya’ni masaladagi boshlang‘ich
ma’lumotlar qanday bo‘lishidan qat’i nazar algoritm shu xildagi har qanday
masalani yechishga yaroqli bo‘lishi kerak. Masalan, ikki oddiy kasrning umumiy
maxrajini topish algoritmi, kasrlarni turlicha o‘zgartirib bersangiz ham ularning
umumiy maxrajlarini aniqlab beraveradi. Yoki uchburchakning yuzini topish
algoritmi, uchburchakning qanday bo‘lishidan qat’i nazar, uning yuzasini hisoblab
beraveradi.
5. Natijaviylik. Har bir algoritm chekli sondagi qadamlardan so‘ng, albatta,
natija berishi shart. Bajariladigan amallar ko‘p bo‘lsa ham baribir natijaga olib
kelishi kerak. Chekli qadamdan so‘ng qo‘yilgan masalae chimga ega emasligini
aniqlash ham natija hisoblanadi. Agar ko‘rilayotgan jarayon cheksiz davom etib
natija bermasa, uni algoritm deb atay olmaymiz
Yuqorida ko‘rilgan misollarda, odatda, biz masalani yechish algoritmini so‘zlar
va matematik formulalar orqali ifodaladik. Lekin algoritm boshqa ko‘rinishlarda
ham berilishi mumkin. Biz endi algoritmlarning eng ko‘p uchraydigan turlari bilan
tanishamiz.
1. Algoritmning so‘zlar orqali ifodalanishi. Bu usulda ijrochi uchun
beriladigan har bir ko‘rsatma jumlalar, so‘zlar orqali buyruq shaklida beriladi.
2. Algoritmning formulalar bilan ifodalanish usulidan matematika, fizika,
kimyo kabi aniq fanlardagi formulalarni o‘rganishda foydalaniladi. Bu usul ba’zan
analitik ifodalash deyiladi.
3. Algoritmlarning maxsus geometrik shakllar yordamida ifodalanishida masala yechish jarayoni aniq va ravon tasvirlanadi va bu ko‘rinish blok-sxema deyiladi.
4. Algoritmning jadval ko‘rinishda berilishi. Algoritmning bunday ifodasidan ham ko‘p foydalanamiz. Masalan, maktabda qo‘llanib kelinayotgan to‘rt xonali matematik jadvallar yoki turli xil lotereyalar jadvali. Funksiyalarning grafiklarini chizishda ham algoritmlarning qiymatlari jadvali ko‘rinishlaridan foydalanamiz. Bu kabi jadvallardan foydalanish algoritmlari sodda bo‘lgani tufayli ularni o‘zlashtirib olish oson. Yuqorida ko‘rilgan algoritmlarni tasvirlash usullarining asosiy maqsadi, qo‘yilgan masalani yechish uchun zarur bo‘lgan amallar ketma-ketligining eng qulay holatini aniqlash va shu bilan inson tomonidan dastur yozishni yanada osonlashtirishdan iborat. Aslida, dastur ham algoritmning boshqa bir ko‘rinishi bo‘lib, u insonning kompyuter bilan muloqotini qulayroq amalga oshirish uchun mo‘ljallangan. Blok-sxemalarni tuzishda foydalaniladigan asosiy sodda geometrik figuralar quyidagilardan iborat:
Blok-sxemalar bilan ishlashni yaxshi o‘zlashtirib olish zarur, chunki bu usul
algoritmlarni ifodalashning eng qulay usullaridan biri bo‘lib, dastur tuzishni
osonlashtiradi, dasturlash qobiliyatini mustahkamlaydi. Algoritmik tillarda blok -
sxemaning asosiy strukturalariga maxsus operatorlar mos keladi.
Shuni aytish kerakni, blok-sxemalardagi yozuvlar odatdagi yozuvlardan
katta farq qilmaydi. Masalan, misol sifatida 1.2 punktda keltirilgan ax2+bx+c=0 kvadrat tenglamaning haqiqiy echimlarini hisoblash uchun quyidagi amallar ketma-ketligi zarur bo‘ladi:1) berilganlarni kiritish (a, b, c);
2) D=b2-4ac diskriminantni hisoblash; 3) agar D>0 bo‘lsa X 21 = (- b ± D) ( *2/ a); 4) aks holda, D<0 bo‘lsa haqiqiy echimi yo‘q.
Bu amallar ketma-ketligiga mos algoritm 1.3-rasmda blok-sxema ko‘rinishida
keltirilgan