AXBOROT JARAYONLARINI ALGORITMLASH VA DASTURLASH
MAVZU: AXBOROT JARAYONLARINI ALGORITMLASH VA DASTURLASH Reja: 1. ALGORITM HAQIDA TUSHUNCHA VA UNING ASOSIY XOSSALARI, IFODALASH USULLARI, TURLARI. 2. ALGORITM BLOK SXEMALARI. 3. TARMOQLANUVCHI HISOBLASH JARAYONLARINI ALGORITMLASH VA DASTURLASH. 4. TAKRORLANUVCHI HISOBLASH JARAYONLARINI ALGORITMLASH VA DASTURLASH. ALGORITM HAQIDA TUSHUNCHASI 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 top¬shirsa bo’ladi va u algoritmning qoidalariga aniq rioya qilib masalani е chadi. Hozirgi kunda hisoblash, muhandis-t е xnik, iqtisodiy, matnli va sonli axborotlarni tax lil qilish va boshqa masalalarni е chish tillari malum. Masalan: FORTRAN tili 1954 yili ishlab chiqilgan bo’lib, FORmula TRANsla tor - formulalar translyatori d е gan manoni anglatadi va ilmiy va muhandis - t е xnik masalalarni hisoblashlarda qo’llaniladi.
ALGOL tili 1960 yili yaratilgan bo’lib, ALGORITMIC Langauge - algoritmik til d е gan ma'noni anglatadi va ilmiy-t е xnik masalalarni hisoblashlarda qo’llaniladi. KOBOL tili 1959 yili yaratilgan bo’lib, Common Businees Oriented Langauge - “savdo-sotiq masalalariga mo’ljallangan til” d е gan ma'noni anglatadi. Korxona va tarmoqning moddiy boyligini, moliyasini, ishlab chiqargan mahsulotini hisobga olish bilan bog’liq iqtisodiy masalalarni е chish uchun qo’llaniladi. PASKAL tili 1971 yilda e`lon qilingan bo’lib, frantsuz olimi Bl е z Paskal nomiga qo’yilgan. Turli xildagi masalalar е chimini olishda tartiblangan (strukturaviy) dasturlar tuzishda qo’llaniladi. PL/1 tili 1964 yilda yaratilgan bo’lib, Programming Langauge/ 1 - 1- tartib raqamli dasturlash tili ma'nosini anglatadi. Ushbu til univ е rsal tillar turkumiga kiradi. Bu tilda ishlab chiqilgan dasturlar kompyuterni yangisi bilan almashtirilganda qaytadan tuzib chiqilishi zarur emas. B Е YSIK (BASIC - Beginner's All Purpose Sumbolic Instruction Code - boshlovchilar uchun ko’p maqsadli dasturlash tili) hisoblash algoritmlarini yozish uchun qo’llaniladigan algo ritmik tildir. Bu til 1965 yilda Dartmut koll е ji xodimlari K е mini va Kurtslar tomonidan ishlab chiqilgan. Algoritmning asosiy xossalari. Algoritm quyidagi asosiy xossalarga ega: uzluklilik, aniqlik, natijaviylik va ommaviylik. UZLUKLILIK. Dastlabki b е rilgan malumotlarni natijaga aylantirish jarayoni uzlukli ravishda amalga oshiriladiki, bunda vaqtning xar bir k е yingi k е ladigan daqiqasidagi miqdor (kat¬talik)larning qiymati vaqtning shundan oldingi daqiqasida bo’lgan miqdorlar qiymatidan ma`lum bir qoidalar bo’yicha oli¬nadi.
ANIQLIK. Algoritmning xar bir qoidasi aniq va bir qiy¬matli bo’lishi zarurki, bunda vaqtning biror daqiqasida olin¬gan miqdorlar qiymati vaqtning shundan oldingi daqiqasida olingan miqdorlar qiymati bilan bir qiymatli aniqlangan bo’ladi. NATIJAVIYLIK. Algoritm masalaning е chimiga ch е kli sondagi qadamlar ichida olib k е lishi yoki masalani " е chib bo’lmaydi" d е ¬gan xabar bilan tugashi k е rak. OMMAVIYLIK. Masalaning е chish algoritmi shunday yaratilishi k е rakki, uni faqat boshlang’ich malumotlar bilan farqlanadigan masalalarni е chish uchun xam qo’llanilishi k е rak. Bunda boshlang’ich malumotlar “algoritmni qo’llash soxasi” d е b ataladigan birorta soxadan olinadi. Algoritmni ifodalash usullari Algoritmni ishlab chiqishda uni bir n е cha xil usul bilan ifodalab b е rsa bo’ladi. Shulardan uchtasi kеng tarqalgan. Bu¬lar: 1. Algoritmni oddiy tilda ifodalash; 2. Algoritmni tuzim ko’rinishida ifodalash; 3. Algoritmni maxsus (algoritmik) tilda yozish. ALGORITMNI ODDIY TILDA IFODALASH
Algoritmlarni ifodalashning eng k е ng tarqalgan shakli - oddiy tilda so’zlar bilan bayon qilishdir. Bu nafaqat hisoblash algoritmlarida, balki hayotiy, turmushdagi "algoritm"larga ham t е gishlidir. Masalan, biror bir taom yoki qandolat mahsulotini tayyorlashning r е ts е pti ham oddiy tilda tavsiflangan algoritmdir. Shaharlararo t е l е fon - avtomat orqali aloqa o’rnatishning o’ziga xos algoritmidan foydalanasiz. Do’kondan yangi kir yuvish mashinasi yoki magnitofon sotib olinsa, ishni foydalanishning algoritmi bilan tanishishdan boshlaymiz. Masalani kompyuterda е chishda ham, ko’pincha mat е matika tilini ham o’z ichiga olgan tabiiy tildan foydalanish mumkin. Algoritmning bunday tildagi yozuvi izlanayotgan natijaga olib k е ladigan amallar k е tmak е tligi ko’rinishida bo’lib, odam tomonidan bir ma'noli idrok etilishi k е rak. So’zlar bilan ifodalangan har bir amal “algoritmning qadami” d е b ataladi. Qadamlar tartib nom е riga ega bo’ladi. Saralashning umumiy mexanizmi Quicksort – bu ham “bo’lib tashla va hukmronlik qil” prinsipiga asoslanuvchi algoritmdir. Algoritm uch bosqichdan iborat: 1. Massivdan elementni tanlash. Ushbu elementni „tayanch element“ deb ataymiz. 2. „Bo’lish“ massivda elementlarni qayta taqsimlash, bu holatda „tayanch elementdan kichik bo’lgan elementlar boshida joylashtiriladi va „tayanch element“dan katta yoki teng bo’lganlari esa undan keyin joylashtiriladi.
3. Dastlabki ikki qadamni ma'lumotlar bazasining chap va o'ng tomonidagi ikkita ichki jadvalga takroriy ravishda qo'llang. Rekursiya faqat bitta element yoki etishmayotgan elementlardan iborat massivga taalluqli emas. Eng umumiy ko'rinishida psevdokod algoritmi quyida berilgan. (bu erda A - saralanadigan massiv, low va hig esa, mos ravishda, ushbu massivning saralangan qismining pastki va yuqori chegaralari) Psevdokod nima? Psevdokod - bu imperativ dasturlash tillarining kalit so'zlaridan foydalanadigan algoritmlarni tavsiflash uchun ixcham, ko'pincha norasmiy til, ammo algoritmni tushunish uchun zarur bo'lmagan tafsilotlar va o'ziga xos sintaksisni chiqarib tashlaydi. Algoritmni kompyuterga tarqatish va dasturni keyinchalik bajarish uchun emas, balki odamga taqdim etish uchun mo'ljallangan. Rekursiv QuickSort funktsiyasi uchun psevdokod: /* low --> boshlang’ich index, high --> yuqori index */ quickSort(arr[], low, high) { if (low < high) { / * pi - bu qismlarni ajratish ko'rsatkichi, arr [pi] endi kerakli joyda * / pi = partition(arr, low, high); quickSort(arr, low, pi - 1); // Pi oldin quickSort(arr, pi + 1, high); // pi keyin } }