2.1 Algoritmning asosiy xossalari.
Algoritmning 5 ta asosiy xossasi bor:
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.
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. Undan 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 bilishimiz muhim ahamiyatga ega. Masalan, quyi sinfning a’lochi o‘quvchisi "son kvadratga oshirilsin" degan ko‘rsatmani tushinmasligi natijasida bajara 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. Aniqlik. Ijrochiga berilayotgan ko‘rsatmalar aniq mazmunda bo‘lishi zarur. Chunki ko‘rsatmadagi noaniqliklar mo‘ljaldagi maqsadga erishishga olib kelmaydi. Odam uchun tushinarli bo‘lgan "3-4 marta silkitilsin", "5-10 daqiqa qizdirilsin", "1-2 qoshiq solinsin", "tenglamalardan biri yechilsin" kabi noaniq ko‘rsatmalar robot yoki kompyuterni qiyin ahvolga solib qo‘yadi. Bundan tashqari, ko‘rsatmalarning qaysi ketma-ketlikda bajarilishi ham muhim ahamiyatga ega. Demak, ko‘rsatmalar aniq berilishi va faqat algoritmda ko‘rsatilgan tartibda bajarilishi shart ekan.
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’iy nazar algorim shu xildagi har qanday masalani yechishga yaroqli bo‘lishi kerak. Masalan, ikki oddiy kasrning umumiy mahrajini topish algoritmi, kasrlarni turlicha o‘zgartirib bersangiz ham ularning umumiy mahrajlarini aniqlab beraveradi. Yoki uchburchakning yuzini topish algoritmi, uchburchakning qanday bo‘lishidan qat’iy nazar, uning yuzini hisoblab beraveradi.
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 masala yechimga 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.
Algoritmning so‘zlar orqali ifodalanishi. Bu usulda ijrochi uchun beriladigan har bir ko‘rsatma jumlalar, so‘zlar orqali buyruq shaklida beriladi. Algoritmning formulalar bilan berilish usulidan matematika, fizika, kimyo kabi aniq fanlardagi formulalarni o‘rganishda foydalaniladi. Bu usulni ba’zan analitik ifodalash deyiladi.
Algoritmlarning grafik shaklida tasvirlanishida algoritmlar maxsus geometrik figuralar yordamida tasvirlanadi va bu grafik ko‘rinishi blok-sxema deyiladi.
Algoritmning jadval ko‘rinishda berilishi. Algoritmning bu tarzda tasvirlanishdan ham ko‘p foydalanamiz. Masalan, maktabda qo‘llanib kelinayotgan to‘rt xonali matematik jadvallar yoki turli xil lotereyalar jadvallari. Funksiyalarning grafiklarini chizishda ham algoritmlarning qiymatlari jadvali ko‘rinishlaridan foydalanamiz. Bu kabi jadvallardan foydalanish algoritmlari sodda bo‘lgan tufayli ularni o‘zlashtirib olish oson.
Blok-sxemalarni tuzishda foydalaniladigan asosiy sodda geometrik figuralar quyidagilardan iborat:
|
|
|
|
|
1-jadval.
|
|
|
|
|
|
|
|
Nоmi
|
|
Bеlgilаnishi
|
|
Bаjаrаdigаn vаzifаsi
|
|
|
|
|
|
|
|
|
Jаrаyon
|
|
|
|
|
Bir yoki bir nеchtа аmаllаrni bаjаrilishi
|
|
|
|
|
|
|
|
|
|
|
|
nаtijаsidа mа’lumоtlаrning uzgаrishi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Qаrоr
Birоr shаrtgа bоglik rаvishdа аlgоritmning bаjаrilish yunаlishini
tаnlаsh
8
SHаkl
|
Dаsturni uzgаrtiruvchi buyruk yoki
|
O'zgаrtirish
|
buyruklаr turkumini uzgаrtirish
|
|
|
|
аmаlini bаjаrish
|
|
Аvvаl
|
Оldindаn
|
|
ishlаb chikilgаn
|
dаstur yoki
|
Аniqlаngаn
|
аlgоritmdаn fоydаlаnish
|
jarayon
|
|
|
|
|
|
Kiritish
|
Ахbоrоtlаrni kаytа ishlаsh mumkin
|
chiqarish
|
bulgаn shаklgа utkаzish yoki оlingаn
|
|
|
|
nаtijаni tаsvirlаsh
|
|
Xujjat
|
Ахbоrоtlаrni kоgоzgа chikаrish yoki
|
|
|
|
kоgоzdаn kiritish
|
|
Axborot oqimi
|
Blоklаr
|
оrаsidаgi
|
bоglаnishlаrni
|
chizig’i
|
|
|
Tаsvirlаsh
|
|
Bog’lagich
|
Uzilib kоlgаn ахbоrоt оkimlаrini ulаsh
|
|
|
|
bеlgisi
|
|
|
Boshlash
|
Ахbоrоtni
|
kаytа ishlаshni
|
bоshlаsh,
|
tugatish
|
vаktinchа yoki butunlаy tuхtаtish
|
Izoh
|
Blоklаrgа
|
|
tеgishli turli хildаgi
|
|
|
|
Tushuntirishlаr
|
|
Blok-sxemalar bilan ishlashni yaxshilab o‘zlashtirib olish zarur, chunki bu usul algoritmlarni ifodalashning qulay vositalaridan biri bo‘lib programma tuzishni osonlashtiradi, programmalash qobiliyatini mustahkamlaydi. Algoritmik tillarda blok - sxemaning asosiy strukturalariga maxsus operatorlar mos keladi.
Shuni aytish keraki, blok-sxemalardagi yozuvlar odatdagi yozuvlardan katta farq qilmaydi.
9
Misol:
Boshlash
Kiritiladigan
qiymatlar
Amal
Amal Shart Amal
Chiqarish Chiqarish
Tamom
Chiziqli algoritmlar. Har qanday murakkab algoritmni ham uchta asosiy struktura yordamida tasvirlash mumkin. Bular ketma-ketlik, ayri va takrorlash strukturalaridir. Bu strukturalar asosida chiziqli, tarmoqlanuvchi va takrorlanuvchi hisoblash jarayonlarining algoritmlarini tuzish mumkin. Umuman olganda, algoritmlarni shartli ravishda quyidagi turlarga ajratish mumkin:
chiziqli algoritmlar; tarmoqlanuvchi algoritmlar; takrorlanuvchi yoki siklik algoritmlar; ichma-ich joylashgan siklik algoritmlar; rekurrent algoritmlar; takrorlanishlar soni oldindan no’malum algoritmlar; ketma-ket yaqinlashuvchi algoritmlar.
Faqat ketma-ket bajariladigan amallardan tashkil topgan algoritmlarga-chiziqli algoritmlar deyiladi. Bunday algoritmni ifodalash uchun ketma-ketlik strukturasi ishlatiladi. Strukturada bajariladigan amal mos keluvchi shakl bilan ko‘rsatiladi. Chiziqli algoritmlar blok-sxemasining umumiy strukturasini quyidagi ko‘rinishda ifodalash mumkin:
Boshlash
Qiymat
kiritish
1-amal
2-amal
n -amal
Qiymat
chiqarish
Tamom
Shu blok sxema orqali har qanday masalani yechish mumkin.
|