Algoritimning blok sxema shaklida berilish usulini tasvirlang va misol keltiring.
Algoritmning tasvirlash usullari bilan tanishishni biz misollar ko'rish bilan boshladik. Hozircha asosan algoritmning so'zlar orqali ifoda qilinishi bilan ko'proq tanishdik. Aslida algoritmning berilish usullari xilma-xildir, biz shularning eng ko'p uchraydiganlari bilan tanishamiz.
1.Algoritmning so'zlar orqali ifodalanishi. Biz bu usul bilan yuqoridagi qator misollar yordamida batafsil tanishdik. Ushbu holda ijrochi uchun beriladigan har bir ko'rsatma jumlalar orqali buyruq mazmunida (shaklida) beriladi.
2. Algoritmning formulalar yordamida berilishi. Biz bunday misol bilan ham yuqorida tanishib o'tdik. Algoritmning formulalar bilan berilish usulidan matematika, fizika, kimyo kabi aniq fanlarni o'rganishda ko'plab foydalanamiz. Bu usulni ba'zan analitik ifodalash ham deyiladi.
3. Algoritmning jadval ko'rinishida berilishi. Algoritmning bu tarzda tasvirlanishidan ham ko'p foydalanamiz. Masalan, maktabda qo'llanib kelinayotgan to'rt xonali matematik jadvallar yoki turli lolereya, zayomlarning yutuqlar jadvallari.
Funksiyalarning grafiklarini chizishda ham algoritmlarning qiymatlar jadvali ko'rinishlaridan foydalanamiz. Bu kabi jadvallardan foydalanish algoritmlari sodda bo'lgani tufayli ularni o'zlashtiirb olish oson.
4. Algoritmning dastur shaklida ifodalanishi. Algoritmning dastur shaklida ifodalanishi bilan kursimizning keyingi qismlarida batafsilroq tanishamiz. Bu yerda qisqa ma'lumot bilan cheklanamiz. Millionlab kompyuterlarning keng tarqalib ketishi algoritmlarning dastur tarzidagi tasvirining keng ommalashib ketishiga katta turtki berdi. Chunki avvalgi bo'limlarda takidlaganimizdek kompyuterlar doimo dasturlar yordamida boshqariladi.Dasturdagi buyruqlar kompyuter - ijrochiga tushunarli bo'lishi shart. Demak, beriladigan buyruqlar tizimi kompyuter uchun tushunarli tilda bo'lishi yoki shu tilga tarjima qilib berilishi lozim. Jahonda hozirgi kunda minglab dasturlash tillari mavjud va yangilari yaratilmoqda. Biz ham kursimiz davomida keng tarqalgan va maktabda o'rganish qulay bo'lgan Beysik, Paskal kabi dasturlash tillaridan biri bilan tanishishni hamda dasturlashning asoslarini o'rganishni rejalashtirganmiz.
5. Algoritmning algoritmik tilda tasvirlanishi.
Algoritmik til - algoritmni bir xil va aniq ifodalash, bajarish uchun qo'llaniladigan belgilash va qoidalar majmui.
Algoritmik tillar dasturlash tillariga nisbatan ancha kam ishlatilsa ham, ularning algoritmlash asoslarini o'rganish sohasidagi ahamiyatini tan olish zarur.
Hozirda algoritmik tillardan o'quv, o'rganish tili sifatida foydalanilmoqda, ularning ichida eng ko'p tarqalgani E-praktikum yoki E-tili deb ataluvchilaridir. Biz kursimiz davomida algoritm ijrochisining algoritmik tili bilan tanishamiz.
6. Algoritmlarning grafik shaklida tasvirlanishi. Algoritmning bu shakli sizga avvaldan tanish, chunki matematika kursida chizilgan grafiklarning ko'pchiligi algoritmning grafik usulda berilishiga misol bo'ladi. Bundan tashqari shahar yoki turar joy mavzelarida joylashgan boror uy hamda inshootlarni izlash va harakatlanish bo'yicha berilgan karta-sxemalar ham shunga misol bo'la oladi.
Endi algoritmning shu paytgacha tanish bo'lmagan yana bir grafik tasviri bilan tanishtirib o'tmoqchimiz. Bu maxsus vositaning nomi blok - sxema deb yuritiladi. Blok - sxemalar turli geometrik shakllardagi oddiy elementlardan tashkil topadi.
Quyida biz blok-sxemalarning asosiy elementlari bilan tanishamiz:
Blok-sxemalarning yuqorida sanab o'tilmagan elementlari va standartlari ham bor albatta, lekin biz bu yerda kursimizni o'rganishda zarur bo'lganlari bilan cheklandik, xolos.
Biz blok-sxemalar algoritmlarni ifodalashning qulay vositalaridan biri bo'lgani, ko'rgazmalik imkoniyati ancha katta ekanligini inobatga olgan holda, ulardan butun kursimiz davomida foydalanib boramiz. Shu sababli blok-sxemalar bilan ishlashni boshidanoq yaxshilab o'zlashtirib borishimiz zarur bo'ladi.
O'zgaruvchi va o'zgarmas miqdorlar bilan matematika, fizika fanlari orqali avvaldan tanishsiz. Ulardan informatikada ham foydalanamiz, faqat nomlashda imkoniyat ko'payadi, chunki ularni biror lotin harfining o'zi bilan emas, balki lotin harflari va zarur bo'lganda lotin harfi hamda raqamlar birikmasi bilan ifodalash mumkin. Bundan tashqari miqdorlarning sonli, ramziy belgilaridan iborat va boshqa turlari mavjudligini inobatga olishimiz lozim. O'zgaruvchi va o'zgarmaslarning nomlanishi, turlari, ularni ifodalash haqida batafsil ma'lumot bilan keyinroq, dasturlash asoslari bobida tanishamiz. Hozircha o'quvchilar ular uchun yangi bo'lgan belgili turdagi o'zgarmas qo'shtirnoqlar ichiga olib yozilgan istagan belgilar ketma-ketligidan iboratligini bilib olishlari lozim.
MISOLLAR
a, s, xl, max, alfa, R19 - o'zgaruvchilarning nomlari;
63, 12. 4, "Yechim", "1-bosqich", "x2", - 41.765 - o'zgarmaslarning yozilishiga misollardir. Ifodalar ham har xil ko'rinish va turdagi qiymatlarga ega bo'ladi. Hozircha biz algebraik va belgili ko'rinishlar bilan cheklanamiz.
Qiymat berish ko'rsatmasi bajarilishiga misollar ko'ramiz.
a) n:q1; n:qnQ1-nq2 bo'ladi, chunki n ning "eski" qiymatiga 1 qo'shilib 2 ga teng "yangi" qiymati hosil bo'ladi. Ya'ni qiymat berish ko'rsatmasining o'ng tomonida joylashgan o'zgaruvchi qiymati o'zgarib ketishi mumkin ekan, bu esa chap tomondagi ifodaga bog'liq.
b) r:q"y ning qiymati" - bu ko'rsatma yordamida r o'zgaruvchining qiymati berilgan belgi ko'rinishini oladi.
Shuni aytish lozimki, blok-sxemalardagi yozuvlar odatdagi yozuvlardan katta farq qilmaydi.
Algoritmning blok-sxema shakliga bir misol quyidagi rasmda keltirilgan.
Algoritmni tasvirlash shakllaridan asosiylarini aytib bering.
Algoritmlarning formula bilan ifodalanishiga fizika fanidan misollar keltiring.
Matematika fanida algoritmlarning jadval shaklidan foydalanishiga misollar keltiring.
Hayotda uchraydigan jadval bilan ifodalangan algoritmlarga misollar keltiring.
Dastur bilan ishlaydigan mikrokalkulyatorlar uchun beriladigan dasturlar algoritmning dasturli shakliga misol bo'la oladimi?
Blok-sxema nima? Blok-sxema asosiy elementlarining vazifalari bilan tanishtiring.
Tartibot (senariy) algoritmni ifodalash shakllaridan biri deyish mumkinmi ?
Adabiyot, matematika yoki informatikaga bag'ishlangan kecha o'tkazish uchun tartibot tuzishga urinib ko'ring.
"Bilmasvoy"ga yoki kichik yoshdagi uka va singillaringizga kompyuterda ishlash bo'yicha saboq bermoqchi bo'lsangiz, mashg'ulotlarni qanday tuzardingiz? Lug'atdan ma'lum so'zni topish algoritmini ifodalang. Berilgan musbat sonning kvadrat ildizini to'rt honali matematik jadvallar yordamida aniqlash algoritmini keltiring. Galstukni bog'lash sxemasi algoritmning grafik shaklida berilishiga misol bo'la oladimi? Ushbu yozuvlarning qaysilari o'zgaruvchiga misol bo'la oladi:
g4, ATR, in45, 3j, b, D2:H, pi, X2, a-c, v, betta?
Diktant tekshirish algoritimini taklif eting. Uchburchakning yuzini hisoblash algoritimlarini har xil shakllarda keltiring. Quyidagi qiymat berish ko'rsatmalari qanday natija beradi:
x:q2; x:qxQ7, xq?
a:q3.2; b:q2; b:qab, aq?, bq?
t:q"TINCHLIK"; zl:qt, tq?, zlq?
ml:12; m2:q13; ml:qmlQm2; m2:qm2-ml, mlq?,
m2q?
Jismni qiya tekislik bo'ylab ko'tarishdagi foydali ish koeffisientini aniqlash algoritmini tuzing. a va b o'zgaruvchilarning qiymatlari quyidagi ko'rsatmani berishdan avval qanday qiymatga ega bo'lgan:
a:qa - b dan so'ng, aq13 va bq4 bo'lgan;
a:qb dan so'ng, aq5 va bq5 bo'lgan?
Dastur va dasturlash tillari
Kompyuter texnikasining rivojlanishi bu texnikani boshqaradigan va uning yordamida turli masalalarni hal qilish imkoniyatini beradigan muloqot vositalarini yaratish masalasini dolzarb vazifa qilib qo'ydi - bunday muloqot vositasisiz istalgan hisoblash texnikasi "qimmatbaho o'yinchoq" bo'lib qolaveradi.
Bugungi kunda bunday muloqot vositalarining mingdan ziyod rusumlari yaratilgan bo'lib, ulardan kompyuterlarda turli hayotiy masalalarni hal qilishda foydalanilmoqda.
Iqtisodiy, boshqaruv masalalarni hal qilish, axborotlarni qayta ishlash, texnik vositalarni avtomatik boshqarish jarayonlarini amalga oshirish ana shu muloqot vositalari yordamida bajarilmoqda. EHM bilan mazkur muloqot vositalari dasturlash tillari deb ataladi. Dasturlash tillari yordamida kompyuterga buyruqlar ketma-ket berilib, pirovard natijaga erishish yo'nalishi belgilanadi. Shu sababli kompyuterdan foydalanuvchi qo'yilgan masalani hal qilish usullarini va qonun-qoidalarini bilishdan tashqari dasturlash tilini qo'llay olishi ham kerak bo'ladi.
Ta'kidlash joizki, dasturlash davomida yo'l qo'yilgan biror xato salbiy natijalarga olib kelishi ham mumkin.
1981 yil 10 - aprel. Amerika Qo'shma Shtatlarining Kanaravel kosmodromidan birinchi bor ko'p marta qo'llanilishga mo'ljallangan "Shatll" rusumidagi kosmik kemani uchishga tayyorlash vaqtida uni boshqarishga mo'ljallangan barcha kompyuterlar xatolik yuzaga kelganligi to'g'risida ma'lumot berdilar. Bu kabi xatolikni kema bortida o'rnatilgan kompyuter ishini sinxron ravishda takrorlovchi boshqaruv Markazidagi kompyuter ham ko'rsatdi. Bu holatda kosmik kemani fazoga uchirish xavfli, albatta. Kemadagi barcha jarayonlar kompyuter yordamida boshqarilishga mo'ljallangan bo'lib, ulardagi dastur 500 mingdan ziyod turli buyruqlarni o'z ichiga olgan edi. Mutaxassislar tomonidan parvozni boshqarish uchun mo'ljallangan o'ndan ortiq sinxron ravishda ishlovchi kompyuterlarning amal bajarishi o'rtasidagi vaqtning farqi 30 mks ekanligi aniqlandi hamda buning, umuman olganda, xavfli emasligini hisobga olib, ikki kunga kechiktirilgan holda kema parvozi amalga oshirildi. Tomonining uzunligi 10 birlikka teng bo'lgan besh qirrali yulduzchani chizish uchun quyidagi amallar bajariladi:
10 birlikka teng bo'lgan to'g'ri chiziq kesmasi chizish. Soat strelkasi yo'nalishida 144o burilish.
10 birlikka teng bo'lgan to'g'ri chiziq kesmasi chizish. Soat strelkasi yo'nalishida 144o burilish.
10 birlikka teng bo'lgan to'g'ri chiziq kesmasi chizish. Soat strelkasi yo'nalishida 144o burilish.
10 birlikka teng bo'lgan to'g'ri chiziq kesmasi chizish. Soat strelkasi yo'nalishida 144o burilish.
10 birlikka teng bo'lgan to'g'ri chiziq kesmasi chizish. Soat strelkasi yo'nalishida 144o burilish.
Ko'rinib turibdiki, 10 birlikka teng bo'lgan to'g'ri chiziq kesmasi chizish
Soat strelkasi yo'nalishida 144o burilish amallari 5 marta takrorlanmoqda. Agar biz yuqoridagi amallarni 5marta: 10 birlikka teng bo'lgan to'g'ri chiziq kesmasi chizish.
Soat strelkasi yo'nalishida 144o burilish. ko'rinishida tasvirlasak, amallar sonini kam yozishga erishamiz-u, ammo berilgan masalani hal qilish uchun kerak bo'lgan amallar soni o'zgarishsiz qolaveradi. Yuqoridagi misollardan ko'rinadiki, dasturlash tilini qo'llashda, undagi amallar sonini ixchamlash bilan birga, uning foydalanuvchiga tushunarlilik xususiyatiga e'tibor qaratish lozim. Mazkur matndagi harflar va so'zlar, tinish va maxsus belgilar ma'lum imlo qoidalari asosida yozilganligi sababli bizga tushunarli bo'lmoqda, ya'ni biz mazkur matnni o'qishimiz davomida uning mazmunini ham tushunib borayapmiz. Agar yuqorida keltirilgan amallar bizga tanish bo'lmagan biror belgilar, masalan, yapon iyerogliflari yordamida ifodalanganida edi, biz masalada qo'yilgan maqsadga erishish emas, balki ko'rsatilgan birorta ham amalni bajarish imkoniyatiga ega bo'lmas edik. Demak, masalaning pirovard maqsadiga erishish uchun amallarni ko'rsatuvchi so'zlar majmui yetarli bo'libgina qolmay, balki bu so'zlar va ular yordamida tuzilgan ko'rsatmalarni ham tushunadigan uskuna talab etiladi. Ana shunday uskuna elektron hisoblash mashinasining dasturli ta'minoti deb yuritiladi.
Avvalgi mavzularda masalani kompyuterda hal qilishda kerak bo'ladigan asosiy tushunchalar - axborot va uni kodlash, kompyuter va uni qo'llash, blok-sxema, algoritm va boshqalarni o'rgangan edik. Ammo kompyuter bilan muloqot qilish uchun, bulardan tashqari, uning "tilini" ham bilishimiz zarur. Ma'lumki, kompyuterda biror masalani hal qilish uchun uning algoritmini tuzishimiz, so'ng mazkur algoritmni kompyuter tushunadigan ko'rsatmalar va qonun-qoidalar asosida "kompyuter tiliga" tarjima qilishimiz zarur. Hosil bo'lgan matn kompyuter tilida yozilgan dastur deb ataladi.
Demak, dastur biror masalani echish uchun kompyuter bajarishi mumkin bo'lgan ko'rsatmalarning izchil tartibidan iborat ekan; kompyuter uchun dastur tuzish jarayoni dasturlash va dastur tuzadigan kishi dasturchi deb va kompyuter tushunadigan "til" dasturlash tili deb ataladi. Dunyo odamlari o'rtasidagi munosabatda yagona til bo'lmaganidek, turli rusumdagi kompyuterlarning yaratilishi va ularning turli sohalarda qo'llanilishi yagona dasturlash tilini yaratish mumkin emasligini ko'rsatdi. Darhaqiqat, dasturlash tillari, yaratilishi va qo'llanilishi bo'yicha uch guruhdan tashkil topgan: Quyi darajadagi dasturlash tillari kompyuter qurilmalari bilan bevosita bog'liq bo'lib, buyruqlar maxsus raqamlar (kodlar) yordamida yoziladi. Bu kabi buyruqlardan tashkil topgan dasturlar katta hajmli bo'lib, ularni tahrir qilish ancha mushkul ish hisoblanadi. Dastlab yaratilgan EHMlarda ("Eniak", "MESM" va boshqalar) masalalar ana shu tildagi buyruqlar yordamida hal qilinar edi.
Dasturlash tili tarixidan. Dasturlash tillari, asosan, ikkinchi jaxon urushidai keyin yaratila boshlandi. Ammo uning boshlanishi tarixi ancha olis yillarga borib taqaladi.
Arxeologik qazilmalarda topilgan sopol taxtachada bundan 3800 yil oldin (eramizdan avvalgi 1800-yillar) Bobilda foiz bilan bog'liq murakkab amallar algoritmi keltirilgan. Unda aniq masala ishlangan bo'lib, agar bug'doy yiliga 20% dan oshib borsa, uning miqdori ikki marta o'sishi uchun necha yil va oy kerak bo'lishi algoritmi yozilgan.
XIX asr fransuz kashfiyotchisi Jozef Mari Jakkard 1804 - yilda yupqa mato ishlab chiqish jarayonida stanoklari uchun perfokartani eslatuvchi tasma ishlatgan va shu bilan perfokartaga asos solgan edi. 1836 - yilda ingliz olimi Charlz Bebbij hozirgi kompyuterlarning bevosita ajdodi bo'lmish analitik mashina ishlab chiqishga kirishdi va bu masalani nazariy hal qildi. Bu mashinaning asosiy xususiyati uning dastur asosida ishlashi va hisob-kitob natijalarini "eslab" qolishida edi.
1843 yilda ingliz matematigi Ogasta Ada Bayron (Lavleys) - shoir lord Bayronning qizi analitik mashina buyruqlar asosida ishlashi kerakligini ta'kidladi. U berilgan shartlar bajarilmaguncha qadamlar ketma-ketligini ta'minlovchp buiruqlarni yozdi. Ana shu holat bilan u dasturlash tiliga asos soldi. Mazkur va boshqa kashfiyotlar kompyuter yaratilgach, ularga zarur bo'lgan til yaratishni talab etdi. Ko'rinib turibdiki, bu tilda dastur tuzish ancha mashaqqatli ekan. Buning asosiy qiyinchiligi - buyruqlarning raqamlar yordamida ifodalanishi, har bir amalni bajarishda jamlagichdagi sonli qiymatning qaysi o'zgaruvchiga tegishliligini va boshqa o'zgaruvchilarning qiymatlari qaysi adresda joylashganini dastur tuzuvchi hamma vaqt bilishi talab etiladi. Mazkur holatdan chiqish va dastur tuzishni osonlashtirish maqsadida inson tiliga yaqin bo'lgan buyruqlar tizimini yaratish, ularni qo'llash masalasi qo'yildi va hal qilindi. Bu kabi dasturlash tillari o'rta darajadagi dasturlash tillari (ba'zan assemblerlar) deb yuritila boshlandi. Mazkur tillarning ijobiy xususiyati shundaki, ular yordamida tuzilgan dastur boshqa tillarda tuzilganidan 10-15 marta tezroq ishlaydi. Unda boshqa darajadagi tillarda bo'lmagan amallar mavjud. Bunday tillarga AVTOKOD-BEMSH, MADLEN va boshqalar kiradi. Ular BESM-6, Minsk-22, Minsk-32, IBM-360 elektron hisoblash mashinalarida ishlatilar edi. Masalan,
ST 5, BSUM ifodada 5 raqami BSUM deb nomlangan yacheykaga joylashtirilsin (ST-store-joylashtirish), degan buyruq ko'rsatilgan.
Assembler tillarida buyruqlar qisqartirilgan so'zlar yoki so'zlar majmuidan iborat bo'lib, ular mnemokodlar deb ham yuritiladi.
Yuqori darajadagi dasturlash tillari ancha rivojlangan tuzilishga ega bo'lib, unda ishlatiladigan xizmatchi so'zlar inson nutqiga juda yaqinlashtirilgan. Mazkur tildan foydalanuvchi amallarni qadamma-qadam yozib boraveradi, kompyuter esa uni kerakli ko'rinishga, ya'ni o'zi tushunadigan raqamlar ketma-ketligiga o'tkazib oladi.
Yuqori darajali dasturlash tillaridagi ko'rsatmalar inson tiliga yaqin bo'lgan so'zlar majmuidan iborat. Ular yordamida amallarni bajarish quyi darajadagilaridan ko'ra engil bo'lib, dasturchi, biror maxsus ko'rsatma bo'lmasa, adreslar, qurilmalar bilan bevosita bog'liq axborotlarni bilmasligi ham mumkin.
Kompyutepda axborotlarni qayta ishlash jarayonida dasturlash tilining biror tugallangan amalni berish uchun mo'ljallangan buyrug'i operator deb yuritiladi.
Kompyuter ko'rsatilgan amallarni bajarishi uchun operatorlarni raqamli ko'rinishga keltirishi kerak. Bu vazifani translyatorlar deb nomlanadigan maxsus dasturlar bajaradi.
Keyingi yillarda juda ko'p yuqori darajadagi dasturlash tillari yaratilgan bo'lib, ular qatoriga Paskal, dBase, Ada, KARAT, CQQ, Delphi, Visual Basic va boshqa tillarni kiritish mumkin. Yaratilayotgan dasturlash tillari biror yo'nalishdagi masalalarni hal qilishga mo'ljallangandir. Bugungacha yaratilgan dasturlash tillaridan keng tarqalgani va ko'p foydalanilayotgani Beysik dasturlash tilidir. Beysik dasturlash tili 1964 - yili AQShning Dartmut kolleji ilmiy xodimlari Jon Kemeni va Tomas Kurts tomonidan turli hisoblashlarga doir masalalarni kompyuter bilan muloqotda hal qilishi uchun yaratildi. "BASIC" so'zi Beginners All-purpose Symbolic Instruction Code dan olingan bo'lib, o'zbek tilida "boshlovchilar uchun mo'ljallangan ko'p maqsadli, belgili ko'rsatmalar tili" ma'nosini bildiradi. Beysik dasturlash tili hozirgi kunda maktablarda mavjud bo'lgan Pravets-8, AGAT, YAMAXA, UKNS, IBM va boshqa turdagi kompyuterlarda keng qo'llanilmoqda. Beysik dasturlash tilining soddaligi va kompyuter xotirasiga qo'yiladigan talablarning juda kamligi sababli bu dasturlash tili boshqa yuqori darajadagi dasturlash tillari qatori butun dunyoda shaxsiy kompyuterlar uchun keng foydalaniladigan til bo'lib qoldi.
Shuni ham ta'kidlash kerakki, har bir kompyuter uchun Beysik tilining unga moslashtirilgan shakli bo'lib, u boshlang'ich shakldan farq qilishi mumkin
Do'stlaringiz bilan baham: |