Ishdan maqsad: Talabalarga algoritm va algoritmlash asoslari haqida ma'lumotlar berish. Algoritmning turli tarkibli ko’rinishlarini tushuntirish va shu ko’rinishlarda algoritmlar tuzishni o’rgatish. Talabalar olgan nazariy bilimlarini amaliyotda qo’llashi uchun bilim, ko’nikma va malaka hosil qilishdan iborat .
Informatikada masala yechish tushunchasi deganda axborotlarni qayta ishlab, natijani oldindan belgilangan ma’lum bir ko’rinishga olib kelish tushuniladi. Kompyuterdan foydalanib masalani echish - yaratilgan algoritmga asoslangan holda dastlabki ma’lumotlar ustida avtomatik tarzda amallar bajarilib, izlangan natija(natijalar) ko’rinishiga keltirish demakdir.
Maqsad - bosqichlarning qaysi birlarini mutaxassis kompyutеrdan foydalanmasdan va qaysi bosqichlarini kompyutеrdan foydalanib bajarishini aniqlash hamda bosqichlarni to’la o’rganib chiqishdan iborat Masalalarni Kompyuterda echish boskichlari. Kompyuterdan foydalanib, "ilmiy-texnik masalani echish" tushunchasi keng ma’nodagi so’z bo’lib, quyidagi boskichlarga bulinadi: 1. Masalaning qo’yilishi va maqsadning aniqlanishi; 2. Masalani matеmatik ifodalash; 3. Masalani еchish uslubini ishlab chiqish, sonli usullarni tanlash; 4. Masalani еchish algoritmini ishlab chiqish; 5. Ma'lumotlarni tayyorlash va tarkibini aniqlash (tanlash); 6. Dasturlash; 7. Dastur matnini va ma'lumotlarni axborot tashuvchiga o’tkazish; 8. Dastur xatolarini tuzatish; 9. Dasturning avtomatik tarzda kompyutеrda bajarilishi; 10. Olingan natijalarni izohlash, tahlil qilish va dasturdan foydalanish uchun ko’rsatma yozish; Bu bosqichlar tom ma'noda to’laligicha mutaxassislikni egallash davomida maxsus kurslar vositasida o’rgatiladi. 8- va 9-bosqichlarni bajarishda mutaxassis kompyutеrdan foydalanadi. 7-bosqichda kompyutеrdan foydalanish ham, foydalanmaslik ham mumkin. A l g o r i t m n i m a ? Algoritm – biz o’rganayotgan kursda asos etib olingan tushunchalardan biri hisoblanadi, chunki uning ilmiy ta’rifi yo’q. Biroq biz algoritmning mohiyatini aniq va qat’iyroq tushuntirishga xarakat qilamiz. Оlimlаrning izchil fаоliyatlаrigа qаrаmаy, Аlgоritm tushunchаsigа bittа kоnkrеt tа’rif bеrishning imkоni bo’lmаdi. Аlgоritmlаr nаzаriyasidааlgоritmning turli fоrmаl tа’riflаri kiritilаg bo’lib, ulаrning ekvivаlеntligi isbоtlаngаn. • Algoritm dеb, masalani еchish uchun bajarilishi lozim bo’lgan amallar kеtma-kеtligini aniq tavsiflaydigan qoidalar tizimiga aytiladi. • Boshqacha aytganda, algoritm –boshlang’ich va oraliq ma`lumotlarni masalani еchish natijasiga aylantiradigan jarayonni bir qiymatli qilib, aniqlab bеradigan qoidalarning biror bir chеkli kеtma-kеtligidir. • Buning moxiyati shundan iboratki, agar algoritm ishlab chiqilgan bo’lsa, uni еchilayotgan masala bilan tanish bo’lmagan biron bir ijrochiga, shu jumladan kompyutеrga xam bajarish uchun topshirsa bo’ladi va u algoritmning qoidalariga aniq rioya qilib masalani еchadi. EHMda yechish uchun, avval uning matematik modelini, keyin algoritmini va programmasini tuzish kerak bo‘ladi. Bu uchlikda algoritm bloki muhim ahamiyatga ega. Endi algoritm tushunchasining ta’rifi va xossalarini bayon qilamiz. Algoritm bu oldimizga qo‘yilgan masalani yechish zarur bo‘lgan amallar ketma-ketligidir. Algoritm so‘zi va tushunchasi IX asrda yashab ijod etgan buyur alloma Muhammad al-Xorazmiy nomi bilan uzviy bog‘liq. Algoritm so‘zi Al-Xorazmiy nomini Yevropa olimlari tomonidan buzib talaffuz qilinishidan yuzaga kelgan. Al-Xorazmiy birinchi bo‘lib o‘nlik sanoq sistemasining tamoyillarini va undagi to‘rtta amallarni bajarish qoidalarini asoslab bergan.Algoritmni ijrochi uchun tushunarli, aniq va ko’rgazmali etib tasvirlash uchun uning bеrilish usullarini to’g’ri tanlashimiz lozim bo’ladi. Algoritmni bеrilish usullari xilma – xil bo’lib ular: algoritmning so’zlar orqali,matematik formulalar, grafik shaklida, dasturlash tillari va boshqalar yordamida tasvirlanadi. Biz ularning eng ko’p uchraydigan usullari bilan tanishamiz. Algoritmni tasvirlash usullari quidagilar:
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 berilish usulidan matematika, fizika, kimyo kabi aniq fanlardagi formulalarni o‘rganishda foydalaniladi. Bu usulni ba’zan analitik ifodalash deyiladi. 3. Algoritmlarning grafik shaklida tasvirlanishida algoritmlar maxsus geometrik figuralar yordamida tasvirlanadi va bu grafik ko‘rinishi blok-sxema deyiladi. 4. 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. Yuqorida ko‘rilgan algoritmlarning tasvirlash usullarining asosiy maqsadi, qo‘yilgan masalani yechish uchun zarur bo‘lgan amallar ketma-ketligining eng qulay holatinni aniqlash va shu bilan odam tomonidan programma yozishni yanada osonlashtirishdan iborat. Aslida programma ham algoritmning boshqa bir ko‘rinishi bo‘lib, u insonning kompyuter bilan muloqotini qulayroq amalga oshirish uchun mo‘ljallangan Bu quyidagi ketma- ketlikda bajariladi: • Liftga kiring; • Kerakli qavat tartib soniga mos tugmachani bosing; • Liftni harakatga keltiring; • Lift to’xtashini kuting • Lift eshigi ochilgandan keyin undan chiqing Algoritmni oddiy tilda yozishda to’rt xil amaldan: • hisoblash, • N- qadamga o’tish, • shartni tеkshirish, • hisoblashning oxiri, shuningdеk kiritish va chiqarish amallaridan foydalanilgan maqul Algoritmning formulalar yordamida bеrilishi. Algoritmni formulalar bilan bеrilish usulidan matеmatika, fizika, kimyo kabi aniq fanlarni o’rganishda ko’plab foydalanamiz. Bu usulni ba’zan analitik ifodalash deb ham yuritishimiz mumkin. Misol uchun : Uzunligi L bo’lgan aylana Bilan chegaralangan doira yuzini toping. Doiraning yuzini topish uchun S =πR2 formuladan foydalanish mumkin. Lekin uni qo’llash uchun bizga R ning qiymati etishmayapti. Uni biz aylana uzunligi formulasi L = 2πR dan topamiz: R = L / 2π. Demak, masala algoritmi uchun kerakli hamma ma’lumotlar tayyor bo’lgani uchun, uni qurish mumkin: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.
Har qanday murakkab algoritmni ham uchta asosiy struktura yordamida tasvirlash mumkin. Bular chiziqli, tarmoqlanuvchi va takrorlanuvchi strukturalaridir. Umuman olganda, algoritmlarni shartli ravishda quyidagi turlarga ajratish mumkin:
• chiziqli algoritmlar; • tarmoqlanuvchi algoritmlar; • takrorlanuvchi yoki siklik algoritmlar.Takrorlanuvchi algoritmlar. Agar biror masalani yechish uchun tuzilgan zarur bo‘lgan amallar ketma-ketligining ma’lum bir qismi biror parametrga bog‘liq ko‘p marta qayta bajarilsa, bunday algoritm takrorlanuvchi algoritm yoki siklik algoritmlar deyiladi. Takrorlanuvchi algoritmlarga tipik misol sifatida odatda qatorlarning yig‘indisi yoki ko‘patmasini hisoblash jarayonlarini qarash mumkin. Quyidagi yig‘indini hisoblash algoritmini tuzaylik. = = + + + + = N i S N i 1
1 2 3 .......... . Bu yig‘indini hisoblash uchun i=0 da S=0 deb olamiz va i=i+1 da S=S+i 2 ni hisoblaymiz. Bu yerda birinchi va ikkinchi qadamlar uchun yig‘indi hisoblandi va keyingi qadamda i parametr yana bittaga orttiriladi va navbatdagi raqam avvalgi yig‘indi S ning ustiga qo‘shiladi va bu jarayon shu tartibda to iN sharti bajarilmaguncha davom ettiriladi va natijada izlangan yig‘indiga ega bo‘lamiz. Bu fikrlarni quyidagi algoritm sifatida ifodalash mumkin: N –berilgan bo‘lsin, i=0 berilsin, S=0 berilsin, i=i+1 hisoblansin, S=S+I hisoblansin, iN tekshirilsin va bu shart bajarilsa, 4-satrga qaytilsin, aks holda keyingi qatorga o‘tilsin, S ning qiymati chop etilsin.Quyidagi topshiriqlarni algoritmini tuzing.
1-misol. • Doskaga chiqib javob berish algoritmini tuzing. • Dasgohda ishlash algoritmini tuzing. • Hujjatni printerda chop etish algoritmini tuzing. • TALABA uchun kerakli bo’lgan anjomlarni maktab sumkangizga solish algotirmini tuzing 2-misol. y=a(b+cx)-dx formula bo`yicha y ning qiymatini hisoblash algoritmini tuzing. 3-misol. “Svetofor” dan foydalanish algoritmini tuzing. 4-misol. Koptok v0 = 29,5 m/c tezlik bilan tepaga tik tepilgan. U qancha balandlik (h) ga ko`tariladi. Harakat qonuni h=v0t-gt2/2 formula bilan ifodalaniladi, bu yerda t-ko`tarilish vaqti: t=, g=9,8m/c-erkin tushish tezlanishi.(Algoritmi tuzilsin) 5-misol.Qishloqqa mavjud uchta suv manbaidan suv keltirish kerak. Manbalarning tekislikdagi koordinatalari: (x1,y1), (x2,y2), (x3,u3). Qaysi manba eng yaqin ekanini topish algoritmini tuzing.