Algoritmni ifodalash usullari va asosiy turlari
Algoritmlarni tasvirlashning turli usullaru mavjud. Quyida algo-ritmlarni tasvirlashning keng tarqalgan usullarini ko‘rib chiqamiz.
1. Algoritmning so‘zlar yordamida ifodalanishi
Avval keltirilgan bir qator misollar inson og‘zaki nutqida qo‘llaniladigan so‘zlar orqali ifodalangan edi (masalan, ko‘chadan o‘tish algoritmi, g‘ishtlar sonini hisoblash algoritmi). Algoritmning bunday tasvirlash usulida ijrochi uchun ko‘rsatma jumlalar orqali ko‘rsatma shaklida beriladi. Qo‘llanmada, asosan, shu usuldan foydalanamiz.
2. Algoritmning formulalar yordamida ifodalanishi
Bu usul matematika, fizika, kimyo va biologiya kabi fanlarda ko‘plab qo‘llanilaniladi. Yodingizda bo‘lsa, so‘zlar yordamida ifodalangan g‘ishtlar sonini hisoblash algoritmini formula orqali ifodalagan edik. Formuladagi «+», «-», «Ч», «:» kabi arifmetik amallarning tartibiga rioya qilgan holda bajarilishi ham algoritmga misol bo‘ladi. Avval berilgan <<«ax2+bx+c = 0 (a≠0) ko‘rini-shidagi kvadrat tenglamani yechish» algoritmining quyidagi formula orqali ifodasi bilan tanishsiz:
-b ± sib2 - 4ac
Bilasiz, formuladagi amallar ma’lum bir tartib bilan bajarilishi shart.
3. Algoritmning jadval yordamida ifodalanishi
Algoritmning bu ko‘rinishda berilishi ham sizga tanish.
Masalan, matematikada qo‘llanib kelinayotgan Bradis jadvali deb nomlangan to‘rt honali matematik jadval, lotareya yutuqlar jadvali, Mendeleyev kimyoviy elementlar jadvali. Bunday jad-vallardan foydalanish ma’lum bir algoritm qo‘llashni talab etadi.
Biror funksiyaning grafigini chizish uchun ham funksiyaning argument qiymatlariga mos qiymatlar jadvalini hosil qilamiz. Bu ham algoritmning jadval ko‘rinishiga misol bo‘ladi.
4. Algoritmning grafik shaklda ifodalanishi
Algoritmning bu ko‘rinishda ifodalanishi matematikada
chizilgan grafik, kerakli uyni oson topish uchun dahalarda o‘rnatil-gan uylarning joylashish sxemasi, avtobuslarning yo‘nalish sxemasi orqali sizga tanish.
Algoritmlash asoslarini o‘rganishning yana bir qulay grafik shakli – blok-sxema usulidir. Blok-sxemalar bir yoki bir nechta buyruq yoki ko‘rsatmani aks ettiruvchi maxsus geometrik shakllar – bloklardan tashkil topadi. Bloklar yo‘nalish chiziqlari orqali tutash-tiriladi.
- oval (ellips) shakli – u algoritmning boshlanishi va
tugallanishini bildiradi.
- to`g`ri to`rtburchak – qiymat berish yoki tegishli
ko’rsatmalarni bajarish jarayonini belgilaydi.
-romb – shart tekshirishni belgilaydi, uning yo’naltiruvchilari
bo`lib tarmoq bo`yicha biri "Ha", ikkinchisi esa "Yo’q"
yo’nalishni beradi.
- Paralellogramm, ma'lumotlarni kiritishni belgilaydi.
- yordamchi algoritmlarga murojatni belgilaydi.
- takrorlovchi blok.
- yo’naltiruvchi chiziq, blok sxemadagi harakatni boshqaruvini
tasvirlaydi.
5. Algoritmning dastur shaklida ifodalanishi
Ma’lumki, kompyuter dasturlar asosida ishlaydi va boshqariladi. Siz hozirgacha MS Word, MS Paint va MS Excel kabi amaliy dasturlar bilan ishladingiz. Lekin har bir amaliy dastur ham juda katta va murakkab algoritmning bir ko‘rinishidir. Demak, bu kabi algoritmlar bajarilishi uchun ular algoritm ijrochisiga, ya’ni kompyuterga tushunarli bo‘lishi lozim.
Odatda, algoritmning kompyuter tushunadigan tilda yozilishi dastur deb ataladi. Kompyuter tushunadigan til esa dasturlash tili deb ataladi. Jahonda hozirgi kunda minglab dasturlash tillari mav-jud va yana rivojlanib bormoqda. Hozirgi kunda keng tarqalgan va o‘rganish uchun qulay bo‘lgan BASIC, Pascal, VBA, Delphi, C dasturlash tillari o‘rganiladi.
Algoritmning asos turlari
Qo‘llanmada, asosan, algoritmuk tafakkurning rivojlantirishini maqsad qilib qo‘ygan bo‘lsak-da, algoritm to‘g‘risida tasavvu-ringizni kengaytirish maqsadida yana ba’zi ma’lumotlarni berishni lozim topdik.
Har qanday algoritm mantiqiy tuzilishiga, ya’ni bajarilishiga qarab uch asosiy turga bo‘linadi: chiziqli (ketma-ketlik), tarmoq-lanuvchi va takrorlanuvchi. Algoritmikada bu algoritmlar asosida turli-tuman yangi algoritmlar hosil qilinadiki, ular ham o‘z navba-tida mustaqil ahamiyatga ega bo‘ladi.
Chiziqli algoritmlar. Bu turdagi algoritmlarda hech qanday shart tekshirilmaydi. Shu sababli barcha ko‘rsatmalar ketma-ket bajarib boriladi. «G‘ishtlar sonini hisoblash», «Doira yuzini hisob-lash» algoritmlari chiziqli algoritmlarga misol bo‘ladi. Lekin hayotimizdagi juda ko‘p jarayonlar shartlar asosida bosh-qariladi.
Tarmoqlanuvchi algoritmlar. Shartga muvofiq bajariladigan ko‘rsatmalar ishtirok etgan algoritmlar tarmoqlanuvchi algoritmlar deb ataladi. Algoritmlarning bu turi hayotimizda har kuni va har qadamda uchraydi. Eshikdan chiqishimiz eshik ochiq yoki yopiqligiga, ovqatlanishimiz qornimiz och yoki to‘qligiga yoki taomning turiga, ko‘chaga kiyinib chiqishimiz ob-havoga, biror joyga borish uchun transport vositasini tanlashimiz to‘lash imkoniyatimiz bo‘lgan pulga bog‘liqdir. Demak, tarmoqlanuvchi algoritmlar chiziqli algoritmlardan tanlash imkoniyati bilan farqlanar ekan.
Avval yoritilgan «Ko‘chadan o‘tish», «Kvadrat tenglamani yechish» algoritmlari ham tarmoqlanuvchi algoritmlarga misol bo‘ladi.
1.6-misol
Algoritmi formula yordamida berilgan
-1, agar x < 0
agar x = 0
agar x > 0
funksiyaning qiymatini hisoblashga doir tarmoqlanuvchi algoritmni blok-sxema yordamida tasvirlaymiz:
1.7-misol
Berilgan ikkita A va B sonlardan kattasini topish (IKT nomi bilan ataluvchi) algoritmini so‘zlar va blok-sxema yordamida tuzing.
Boshlanish;
A va B kiritilsin;
agar A > B bo‘lsa 4-bandga o‘tilsin;
aks holda 5-bandga o‘tilsin;
4) natija A deb
olinsin va 6-bandga o‘tilsin;
5) natija B deb
olinsin;
6) tugallansin.
Bu misoldan quyidagicha xulosa chiqarish mumkin: agar A > B shart bajarilsa 5-banddagi ko‘rsatma bajarilmaydi, aks holda, ya’ni A < B bo‘lsa, 4-banddagi ko‘rsatma bajarilmaydi. IKT algoritmi tarmoqlanishni yaqqol tasavvur qilish imkoniyatini beradi.
Takrorlanuvchi (siklik) algoritmlar. Masalalarni tahlil etish jarayonida algoritmdagi ba’zi ko‘rsatmalar takroran bajarilishini kuzatish mumkin. Hayotimizda ham juda ko‘p jarayonlar tak-rorlanadi. Masalan, darslarning har hafta takrorlanishi, har kuni nonushta qilish yoki maktabga borish va hokazo. Ko‘rsatmalari takroriy bajariladigan algoritmlar takrorlanuvchi algoritmlar deb ataladi.
Takrorlanuvchi algoritmlar «I := I + 1», «S := S + I» yoki «P : = P * I» ko‘rinishidagi ko‘rsatmalarning ishtiroki bilan ajralib 2 – Azamatov, A.R.
turadi (* – ko‘paytirish amali). Bunday ko‘rsatmalarning maz-munini tushunish uchun takrorlanishning bir nechta qadamini ko‘rib chiqamiz.
Odatda, yig‘indi uchun boshlang‘ich qiymat (inglizchadan SUMM, ya’ni yig‘indi ma’noli so‘zning bosh harfi) S:= 0 va ko‘paytma uchun (inglizchadan PRODUCT, ya’ni ko‘paytma ma’noli so‘zning bosh harfi) P: = 1 deb olinadi, chunki bu qiymatlar, ya’ni 0 va 1 lar, mos ravishda, yig‘indi va ko‘paytmaning natijasiga ta‘sir etmaydi:
1-qadamda I := 1 bo‘lsin:
S := S + I = 0 + 1 = 1, P := P * I = 1 * 1 = 1;
2-qadam: I := I + 1 = 1 + 1 = 2:
S := S + I = 1 + 2 = 3, P : = P * I = 1 * 2 = 2;
3-qadam: I := I + 1 = 2 + 1 = 3:
S := S + I = 3 + 3 = 6, P := P * I = 2 * 3 = 6;
4-qadam: I := I + 1 = 3 + 1 = 4:
S := S + I = 6 + 4 = 10, P := P * I = 6 * 4 = 24.
Algoritmikada, matematikada bunday bo‘lishi mumkin emas, I = I + 1 deb yozilishi mumkin. Bu yozuvda avval o‘ng tomondagi qiymat hisoblanib, so‘ng bu qiymat chap tomondagi nomning qiymati deb olinadi.
1.8-misol
1 dan 1000 gacha bo‘lgan sonlar yig‘indisini, ya’ni S = 1+2+3+...+1000 ni hisoblash algoritmini tuzing.
Boshlansin;
S = 0 deb olinsin
(ya’ni S:= 0);
3) I ning qiymati 1 deb olinsin
(ya’ni I:= 1);
4) S ga I qo‘shilib, S deb olinsin
(ya’ni S:= S+I);
5) I ga 1 qo‘shilib I deb olinsin
(ya’ni I:= I+1);
6) agar I ≤ 1000 bo‘lsa
4-bandga o‘tilsin;
javob deb S olinsin;
tugallansin.
So’zlar bilan ifodalangan algoritmda blok-sxema bilan mu-tanosiblikni bildirish uchun qavslar ichida izohlar berib bordik. Odatda, takrorlanuvchi algoritmlarda «I:= I+1» ifoda sanagich deb yuritiladi. Bu misol yechimini chiziqli algoritm shaklida tashkil etish ham mumkin. Buning uchun arifmetik progressiyaning 1000 ta hadi yi‘gindisini hisoblash formulasidan foydalanish kifoya (algoritmni mustaqil tuzing). Lekin keyingi misolda bunday qilish ancha mushkul.
1.9-misol
2 xonali sonlar ichidan raqamlari yig‘indisi 7 ga teng sonlar yig‘indisini hisoblash algoritmini tuzing ([a] - a sonining butun qismi, / - bo‘lish amali).
Ko‘rib o‘tilgan algoritmlarga nazar tashlasak, algoritmlar chi-ziqli, tarmoqlanuvchi yoki takrorlanuvchi qismlardan tashkil topganligini kuzatish mumkin. Demak, inson hayotida uchraydigan algoritmlar, asosan, shu uch turdagi algoritmlarning uzviy birligi sifatida namoyon bo‘ladi.
FOYDALANILGAN ADABIYOTLAR
Kulakov A.G., Lando S.K., Semyonov A.L., Shen A.X.. Algoritmika. V-V II sinflar. Moskva: Drofa, 1997.
Boltayev B . Abduqodirov A., Taylaqov N., Mahkamov M., Azamalov A., Xafizov S. Informatika va hisoblash texnikasi asoslari. 9-sinf. T.: Cho lpon, 2006.
Boltayev B., Mahkamov M., Azamatov A. Informaiikadan olimpiada masalalarini yechish. Metodik qo'llanma, T : 2004.
Boltayev B., Mahkamov M., Azamatov A. Informalikadan olimpiada masalalarini yechish-2. Melodik qo'llanma, Toshkent, 2004.
|