5-ma’ruza. ALGORITM VA UNING ASOSIY XOSSALARI. REJA: Algoritm va algoritlash tushunchalari. Algoritmning xossalari. Algoritmlarni yaratish usullari va turlari.
Algoritmlarni tasvirlash usullari. Blok-sxemalar. Oddiy va tarkibli algoritmlar.
Yordamchi algoritmlar. Masalalarni kompyuterda yechish bosqichlari.
KIRISh Kasbiy sohasida uchraydigan turli hil masalalarga algoritmlar tuza olishi, algoritmning turlarni farqlay olish, tasvirlash usullariga oid misollar keltira olish, rekursiya va iteratsiya, algoritmning murakkabligi tushunchalarni ajrata olishi, samarali algoritmlar ishlab chiqishning asosiy usullari(balansirovka, dinamik dasturlash va boshqalar)ni amaliy qo‘llay olishi, biror bir dasturlash tillari va ularning turlarini farqlay olish, dasturlash tillalari yordamida amaliy masalalarga dasturlar tuza olish, massivlar, grafik operatorlar, funksiyalar va protseduralar, yozuvlar, ro‘yxatlar, fayllar, modulli dasturlar haqidagi bilimlarni amalda qullay olish, ob’ektga yo‘naltirilgan dasturlash tillaridan foydalana olish, boshqarish elementlari, oynalar, dialoglar; voqealar va habarlar, ob’ektga yo‘naltirilgan muhitlarda habarlarni uzatish va ularga ishlov berish, ob’ektlar ierarxiyasi asosida dasturlarni loyihalash malakalariga ega bo‘lishlari kerak. Algoritm va algoritlash tushunchalari. Algoritmning xossalari. Algoritmlarni yaratish usullari va turlari.
Algoritm, uning kibernetik ta’rifi, algoritmning asosiy xossalari, algoritm ijrochilari, algoritmlarni tasvirlash usullari, algoritm turlari, chiziqli, tarmoqlanuvchi va takrorlanuvchi algoritmlar haqida tushunchalar berish.
Algoritm va dastur tushunchasi Algoritm so‘zi buyuk matematik Al-Xorazmiyning nomi bilan bog‘liq bo‘lib, u birinchi bo‘lib arab raqamlaridan foydalangan holda arifmetik amallarni bajarish qoidasini bayon etdi.
Elektron hisoblash mashinalarining vujudga kelishiga qadar algoritmga har xil ta’rif berilib kelindi. Lekin ularning bari ma’no jihatdan bir-biriga juda yaqin edi.
Algoritm - bu qo‘yilgan masalaning yechimiga olib keladigan, ma’lum qoidaga binoan bajariladigan amallarning chekli qadamlar ketma-ketligidir. Boshqacha qilib aytganda algoritm boshlang‘ich ma’lumotlardan natijagacha olib keluvchi jarayonning aniq yozilishidir.
Har qanday algoritm ma’lum ko‘rsatmalarga binoan bajariladi va bu ko‘rsatmalarga buyruq deyiladi.
Algoritm quyidagi xossalarga ega: aniqlik, tushunarlilik, ommaviylik, natijaviylik va diskretlik.
Aniqlik va tushunarlilik - deganda algoritmda ijrochiga berilayotgan ko‘rsatmalar aniq mazmunda bo‘lishi tushuniladi. Chunki ko‘rsatmalardagi noaniqliklar mo‘ljallangan maqsadga erishishga olib kelmaydi. Ijrochiga tavsiya etiladigan ko‘rsatmalar tushunarli mazmunda bo‘lishi shart, aks holda ijrochi uni bajara olmaydi.
Ommaviylik -deganda har bir algoritm mazmuniga ko‘ra bir turdagi masalalarning barchasi uchun ham o‘rinli bo‘lishi, ya’ni umumiy bo‘lishi tushuniladi.
Natijaviylik -deganda algoritmda chekli qadamlardan so‘ng albatta natija bo‘lishi tushuniladi.
Diskretlik -deganda algoritmlarni chekli qadamlardan tashkil qilib bo‘laklash imkoniyati tushuniladi.
Algoritmning uchta turi mavjud: chiziqli, tarmoqlanuvchi va takrorlanuvchi(siklik).
Chiziqli algoritmlar - hech qanday shartsiz faqat ketma-ket bajariladigan jarayonlardir.
Tarmoqlanuvchi algoritmlar - ma’lum shartlarga muvofiq bajariladigan jarayonlardir.
Takrorlanuvchi algoritmlar - biron bir shart tekshirilishi yoki biron parametrning har xil qiymatlari asasida chekli ravishda takrorlanish yuz beradigan jarayonlardir.
Algoritmlarni turli usullarda tasvirlash mumkin.
so‘z bilan ifodalash;
formulalarda berish;
blok-cxemalarda tasvirlash;
dastur shaklida ifodalash va boshqalar.
Algoritmlarni blok-sxema ko‘rinishda tasvirlash qulay va tushunarli bo‘lgani uchun eng ko‘p ishlatiladi. Bunda algoritmdagi har bir ko‘rsatma o‘z shakliga ega. Masalan: parallelogramm ko‘rinishdagi belgi ma’lumotlarni kiritish va chiqarish; to‘g‘ri to‘rtburchak belgisi hisoblash jarayonini; romb belgisi shartlarning tekshirilishini bildiradi.
Misollar:
Chiziqli algoritmga doir:
y=x2+1 funksiyani x ning istalgan qiymatida hisoblash algoritmini tuzing.
So‘zda berilishi: Blok-sxemada:
1.Boshlash.
2.x-qiymatini kiritish.
3.y=x2+1 ni hisoblash.
4.y-qiymatini chiqarish.
5.Tamom.
Tarmoqlanuvchi algoritmga doir:
Ikkita a va b sonlardan kattasini aniqlash algoritmini tuzing.
So‘zda berilishi: Blok-sxemada:
1.Boshlash.
2.a va b-qiymatini kiritish.
3.agar a>b bo‘lsa, natija a deb
olinib 5ga o‘tilsin.
4.natija b deb olinsin.
5.Tamom.
Takrorlanuvchi algoritmga doir:
1dan 100 gacha toq sonlar yig‘indisini hisoblash algoritmini tuzing.
So‘zda berilishi:
Blok-sxemada:
1.Boshlash.
2.S ning qiymati nol deb olinsin.
3.i ning qiymati bir deb olinsin.
4.S ga i qo‘shilib, natija S deb olinsin.
5.i ga 2 qo‘shilib, uni i bilan belgilansin.
6.agar i<=100 bo‘lsa, u holda 4ga o‘tilsin.
7.S qiymati chiqarilsin.
8.Tamom.
Masalani yechish algoritmi ishlab chiqilgandan so‘ng dastur tuzishga o‘tiladi.
Dastur - bu berilgan algoritmga asoslangan biror bir algoritmik tilda yozilgan ko‘rsatmalar (buyruqlar, operatorlar) to‘plamidir.
Dasturlash - esa bu dastur tuzish jarayonidir. U quyidagi qadamlardan iborat:
dasturga bo‘lgan talablar;
qo‘yilgan masala algoritmini tanlash yoki ishlab chiqish;
dastur kodlarini (matnlari, buyruqlarni) yozish;
dasturni to‘g‘rilash;
test o‘tkazish.
Hozirgi kunda juda ko‘p algoritmik tillar mavjud bo‘lib, ularni dasturlash tillari deb ataymiz. Algoritmik til - algoritmlarni bir xil va aniq yozish uchun ishlatiladigan belgilashlar va qoidalar tizimidir. Algoritmik til oddiy tilga yaqin bo‘lib u matematik belgilarni o‘z ichiga oladi. Qo‘yilgan masalalarni yechishga tuzilgan algoritmlarni to‘g‘ridan-to‘g‘ri mashinaga berib, yechib bo‘lmaydi, shu sababli yozilgan algoritmni biror bir algoritmik tilga o‘tkazish zarur. Har qanday algoritmik til o‘z qo‘llanilish sohasiga ega. Masalan, muxandislik hisob ishlarini bajarishda Paskal, Beysik va boshqalar. Ro‘yxatlarni ishlash uchun PL/1 va boshqalar. Iqtisod masalalarini yechishda Paskal, Kobol va boshqalar. Mantiqiy dasturlash uchun Prolog va boshqalar. O‘quv jarayonlari uchun Beysik, Paskal va boshqalar.
Paskal, Fortran va Kobol tillari universal tillardan hisoblanadi. Si va Assembler tillari mashina tiliga ancha yaqin tillar bo‘lib o‘rta darajadagi tillardir. Algoritmik til inson tillariga qancha yaqin bo‘lsa, u tilga yuqori darajali til deyiladi. Mashina tili esa eng pastki darajali tildir.