Avtomatika va elektrotexnologiya
Download 5.01 Kb. Pdf ko'rish
|
- Bu sahifa navigatsiya:
- Algoritmlarning ifodalanishi
- Algoritmning matn shaklida ifodalanishi
- Chiziqli, tarmoqlanuvchi va takrorlanuvchi tarkibga ega bo„lgan algoritmlar tuzish
- Sonli to„plamlarning eng katta va eng kichik elementlarini aniqlash algoritmlari
- Dasturlash tillari haqida tushuncha
- Algoritmik tillarga qiyosiy tavsifnoma
- Dasturlashtirishga zamonaviy yondashish.
3-misоl. ―Svеtоfоr‖ dаn fоydаlаnish аlgоritmi. 1) svеtоfоr chirоg‘igа qаrаlsin; 2) qizil chirоq yongаn bo‘lsа, to‘хtаlsin; 3) sаriq chirоq yongаn bo‘lsа, yurishgа yoki to‘хtаshgа tаyyorlаnsin; 4) yashil chirоq yongаn bo‘lsа, yurilsin. 4-misоl. I bоbdа ko‘rib o‘tilgаn birinchi misоlniyechish аlgоritmini quyidаgichа bаyon qilsа bo‘lаdi: 1) EHM хоtirаsigа V о vа g o‘zgаruvchilаrning sоnli qiymаtlаri kiritilsin; 2) t ning qiymаti t=V o /g fоrmulа bilаn хisоblаnsin; 3) h ning qiymаti h=V o t-gt 2 /2 fоrmulа bilаn хisоblаnsin; 4) t vа h o‘zgаruvchilаrning sоnli qiymаtlаri ekrаngа yoki qоg‘оzgа chiqаrilsin; 5) хisоblаsh to‘хtаtilsin. Mаsаlаning qo‘yilishidа kоptоk 29,5 m/sеk bilаn tеpilsа, dеgаn shаrt bоr edi. YAni, V о =29,5 vа g =9,81 bo‘lsа, t vа h qаnchа bo‘lаdi? Аlgоritmni ishlаb chiqish uchun аvvаlо mаsаlаningyechish yo‘lini yaхshi tаsаvvur qilib оlish, kеyin esа uni fоrmаllаshtirish, yani аniq qоidаlаr kеtmа-kеtligi ko‘rinishidа yozish kеrаk. Bu misоllаrdаn bittа umumiy tоmоnini kuzаtish mumkin. Bu аlgоritmdаn qаndаy mаqsаd ko‘zlаngаnligini bilmаsdаn turib хаm uni muvаffаqiyat bilаn bаjаrish mumkin. Dеmаk, хаyotdа uchrаydigаn murаkkаb jаrаyonlаrni bоshqаrishni yoki аmаlgа оshirishni rоbоtlаr, kоmpyutеrlаr vа bоshqа mаshinаlаr zimmаsigа yuklаshimiz mumkin ekаn. Bu esа аlgоritmning judа muхim аfzаlligidir. SHungа ko‘rа, хаr bir insоn o‘z оldigа qo‘yilgаn mаsаlаningyechish аlgоritmini to‘g‘ri tuzib bеrа оlsа, u o‘z аqliy vа jismоniy mехnаtiniyengillаshtiribginа qоlmаy, bu ishlаrni аvtоmаtik tаrzdа bаjаrishni mаshinаlаrgа tоpshirishi хаm mumkin. Аlgоritmni ishlаb chiqishdа mаsаlаniyechish jаrаyonini shundаy fоrmаllаshtirish kеrаkki, bu jаrаyonyetаrli dаrаjаdаgi оddiy qоidаlаrning chеkli kеtmа-kеtligini ko‘rinishigа kеltirilsin. Mаsаlаn, biz ko‘pinchа ko‘p хоnаli sоnlаr ustidа аsоsiy аrifmеtik аmаllаrni bаjаrishdа vаtаndоshimiz Аl-Хоrаzmiyning IX аsrdа yarаtgаn qоidаlаrini ishlаtаmiz. "Аlgоritm" аtаmаsi хаm аnа shu buyuk mаtеmаtik nоmidаn kеlib chiqаdi. SHuning uchun аlgоritm dеb, mаsаlаyechimini tаsvirlаshning iхtiyoriy tаsviri оlinmаsdаn, bаlki fаqаtginа mа‘lum хоssаlаrni bаjаrа оlаdigаnlаri qаbul qilinаdi. Ko‘rsаtmаlаrning mаzmuni, kеlish tаrtibi, qo‘llаnish dоirаsi vа оlinаdigаn nаtijаdаn kеlib chiqib, аlgоritmning eng аsоsiy хоssаlаri bilаn tаnishаmiz. Algoritmning xossalari Algoritmga qo‗yiladigan qo‗shimcha talablar mavjud bo‗lib, bu talablar algoritmning xossalari deb yuritiladi. Ular quyidagilardan iborat: Uzluksizlik xossasi. Bu xossaga ko‗ra algoritm aniq va tugallangan qadamlarga bo‗lingan bo‗lishi kerak. (Keltirilgan misolda shunday qadamlar soni beshta). Aniqlilik xossasi. Algoritm shunday tuzilgan bo‗lishi kerakki, har bir buyrug‗i bajarilgandan keyin qaysi buyrug‗i bajarilishi aniq ko‗rsatilgan bo‗lishi lozim. Tushunarlilik xossasi. Har bir algoritm yoshi yoki qobiliyatiga qarab ma'lum ijrochiga mo‗ljallangan bo‗ladi. Masalan, kvadrat tenglamani yechish algoritmi to‗g‗ri tuzilgan bo‗lsa ham, boshlang‗ich sinf o‗quvchilariga tushunarli bo‗lmaganligi tufayli ular bu algoritmni ijro eta olmaydilar. Chunki ular diskriminant, kvadrat ildiz, kvadratga ko‗tarish kabi tushunchalar bilan tanish emas. Bundan tashqari, ushbu xossaga binoan algoritmning har bir buyrug‗i aniq ifodalangan bo‗lib, ikki xil ma‘noni anglatmasligi lozim, ya‘ni algoritmning har bir buyrug‗i barcha ijrochilar tomonidan bir xil tushunilishi kerak. Natijaviylik xossasi. Ijrochi algoritmning chekli sondagi buyruqlarini bajargandan so‗ng, natijaga erishishi kerak. Keltirilgan misolda beshinchi buyruq ijro etilgach, natijaga erishiladi. Ommaviylik xossasi. Bu xossaga ko‗ra tuzilgan bitta algoritm vositalariga faqat bitta emas, balki bir xil turli barcha masalalar hal qila bilish mumkin bo‗lishi kerak. Masalan, kvadrat tenglamani yechish algoritmi yordamida ixtiyoriy kvadrat tenglamani yechish, yoki u=a*x+b (a=0) to‗g‗ri chiziqning grafigini chizish algoritmi yordamida ixtiyoriy to‗g‗ri chiziqning grafigini chizish mumkin bo‗lishi kerak. Umuman olganda, har bir algoritm ma‘lum soha bo‗yicha tushunarli, aniq va tugallangan qadamlarga bo‗lingan bo‗lishi, har bir buyrug‗i bajarilgandan keyin qaysi buyruq bajarilishi aniq ko‗rsatilishi lozim. Algoritmning chekli sondagi buyruqlarini ijro etgach, natijaga erishishi hamda tuzilgan bitta algoritm vositasida faqat bitta emas, balki bir xil turdagi barcha masalalarni hal qila bilish mumkin bo‗lishi kerak. Algoritmlarning ifodalanishi Algoritm ijrochisi EHM yoki avtomatik qurilmalar ham bo‗lishi mumkin. EHM o‗ziga tushunarli bo‗lgan tilda tuzilgan algoritm (ya‘ni dastur) asosidagina ishlay oladi. Demak, EHM uchun tuzilgan dasturni ham to‗liq ma‘noda algoritm deb atash mumkin. Algoritmlarni tuzish jarayonida ularning qaysi ijrochiga mo‗ljallab tuzilayotganligiga alohida e‘tibor beriladi va sun‘iy yoki tabiiy tillardan birida tuziladi. Ma‘lumki, EHM tabiiy tillarni tushunmaydi va inson bilan ular o‗rtasida bu tillarda muloqat o‗rnatib bo‗lmaydi. Shuning uchun inson bilan EHM o‗rtasida muloqot o‗rnatishga mo‗ljallangan bir necha o‗nlab tillar yaratilgan. Bu tillar sun‘iy tillar jumlasiga kiradi va dasturlash tillari deb ataladi. Agar algoritm EHM uchun mo‗ljallab tuzilayotgan bo‗lsa, mazkur EHM tushunadigan sun‘iy tillardan birida tuziladi va to‗liq formallashtiriladi. Algoritm qaysi ijrochiga mo‗ljallab tuzilayotganligiga qarab quyidagi shakllardan birida ifodalanishi mumkin: 1. Matn shakli; 2. Blok-sxema shakli; 3. Dastur shakli. Algoritmlarni ifodalashning dastlabki ikkita shakli tabiiy tillar: matematik formulalar va simvollar vositasida ifodalanadi, uchinchi shakli esa sun‘iy tillardan birida ifodalanadi. Algoritmning matn shaklida ifodalanishi Algoritmni ifodalashning eng ko‗p tarqalgan shakli bu matn shakli, ya‘ni uni oddiy tilda so‗zlar bilan bayon qilish hisoblanadi. So‗zlar yordamida tuzilgan algortmning ijrochisi inson hisoblanadi. Algoritmning matn shaklida har bir ko‗rsatma, jumlalar orqali buyruq mazmunida beriladi. Algoritmning bunday shaklidan odatda, kundalik hayotda uchraydigan masalalarni hal qilish algoritmlarini tuzishda foydalaniladi. Masalan, inson hayotida har kuni bajaradigan yumushlari, ya‘ni har xil taomlar tayyorlash, choy damlash va hokazo algoritmlar so‗zlar yordamida ifodalanadi. Umuman olganda, ixtiyoriy turdagi masalalarning algoritmlarini so‗zlar yordamida tuzish mumkin. Masalan, aralash sonni noto‗g‗ri kasrga aylantirish algoritmi quyidagicha oddiy tilda tuziladi: 1) Sonning butun qismini mahrajiga ko‗paytiramiz va uni R1 bilan belgilaymiz. 2) R1 ga kasrning suratida turgan son qo‗shiladi va natija suratga yoziladi. 3) Kasrning mahraji o‗zgarishsiz qoladi. Algoritmning blok-sxema shaklida ifodalanishi Matematika masalalarini hisoblashda algoritmni blok-sxema ko‗rinishida tasvirlash uni tushunish uchun qulaylik tug‗diradi. Blok-sxema ko‗rsatkichlar bilan bog‗lanuvchi har xil bloklar ketma-ketligidan tashkil topadi. Algoritmning bajarilish tartibi ko‗rsatkich bilan ko‗rsatiladi. Blok-sxemalarda algoritmning alohida bosqichlarini belgilash uchun quyidagi belgilardan foydalaniladi: - algoritmning boshlanishini bildiruvchi blok; - kerakli ma‘lumotlarni kiritish va chiqarish bloki; - hisoblash va ta‘minlash bloki; ha - shartni tekshiruvchi blok; yo‗q - algoritm tugaganligini bildiruvchi blok; Har qanday algoritm blok-sxema shaklida ifodalanganda, har doim uning boshlanishini bildiruvchi blok bilan boshlanib, algoritmning tugaganligani bildiruvchi blok bilan yakunlanadi. Kerakli ma‘lumotlarni kiritish va chiqarish blokida dastlabki berilganlar kiritiladi va olingan natijalar chiqariladi. Shartni tekshirish bloki ichiga shart yoziladi, qo‗yilgan shartning bajarilish- bajarmasligiga qarab strelka ikki tomonga yo‗naladi. Strelkalarning biriga "ha" so‗zi, ikkinchisiga "yo‗q" so‗zi yoziladi. "ha" so‗zi shartning bajarilganligini, "yo‗q" so‗zi esa shartning bajarilmaganlishni bildiradi. Shartning bajarilgan yoki bajarilmaganligiga qarab, algoritmning bajarilish tartibi aniqlanadi. Hisoblash va ta‘minlash blokida hisoblanishi kerak bo‗lgan ifoda yoziladi. Ifodaning qiymati hisoblanib, tenglik belgisining chap tomonidagi o‗zgaruvchiga ta‘minlanadi. Chiziqli, tarmoqlanuvchi va takrorlanuvchi tarkibga ega bo„lgan algoritmlar tuzish Algoritmlar uch turga bo‗linadi: chiziqli, tarmoqlanuvchi, siklik (takrorlanuvchi). Chiziqli tarkibli algoritmlarda algoritmlarning har bir punkti tabiiy ravishda ketma-ket bir martadan bajariladi. Masalan: y=sin+ln|x+1| funksiyaning qiymatini hisoblash algoritmi tuzilsin, bu yerda x=3,9. Tarmoqlanuvchi tarkibli algoritmlarda ham har bir band bir martadan bajariladi. Lekin shartning bajarilishi yoki bajarilmasligiga qarab qaysi bandlar ketma-ket bajarilishi aniqlanadi. Masalan: Argument x ning ixtiyoriy qiymatida quyidagi funksiyaning qiymatini hisoblash algoritmi tuzilsin: , ` 1 |, 5 | ln , ` 1 , 2 sin , ` 1 , 1 lsa bo x agar x x lsa bo x agar a x lsa bo x agar x y bu yerda: a = 4,5; x = 4,8. Takrorlanuvchi (siklik) algoritmlarda algoritmning bir bo‗lak bandlari parametrlarning qabul qilish qiymatiga qarab ketma-ket bir necha marta bajariladi. Sonli to„plamlarning eng katta va eng kichik elementlarini aniqlash algoritmlari Sonli to‗plamlarning eng katta (eng kichik) elementlarini topish uchun ularning boshlang‗ich elementi boshqa hamma elementlari bilan navbatma-navbat taqqoslanadi. Agar boshlang‗ich elementi taqqoslanayotgan elementdan kichik (katta) bo‗lsa, u holda boshlang‗ich element tashlab yuboriladi va katta (kichik) element sifatida taqqoslanayotgan element olinadi. Agar boshlang‗ich element taqqoslanayotgan elementdan katta (kichik) bo‗lsa, u holda katta (kichik) element sifatida to‗plamning boshlang‗ich elementining o‗zi saqlanadi. Sonli to‗plamning eng katta elementini topish jarayoni matematik formula orqali quyidagicha ifodalanadi: ; , ; , max max max max y yi agar y y y agar y y i i Xuddi shunday eng kichik elementni topish quyidagicha ifodalanadi: Boshlanis hi x y=sinx+l n|x+1| y tamom ha ha ; , ; , min min min min y yi agar y y y agar y y i i Misol: (x1, x2, ..., xn) massivning eng kichik elementini va uning tartib nomerini topish algoritmini tuzing. Yigindi va ko„paytmaning hisoblash algoritmi Agar argumentning turli qiymatlarida y=f(x) funksiyaning yig‗indisini hisoblash talab qilinsa, dastlab boshlang‗ich qiymati hisoblanadi va unga keyingi hisoblangan qiymatlari navbatma-navbat qo‗shiladi. Yig‗indining hisoblash formulasi quyidagicha: Z =Z +Y. Siklning birinchi qadamida Z =Z + Y yig‗indi hisoblanadi va uning qiymati Y ga teng bo‗lishi shart. Shuning uchun yig‗indining dastlabki qiymati sifatida Z=0 olinadi. Ko‗paytmani hisoblash ham xuddi shunday tashkil qilinadi, faqat farqi ko‗paytmaning dastlabki qiymati sifatida Z=1 olinadi. Ko‗paytmaning hisoblash formulasi quyidagicha: Z=Z∙Y. Dasturlash tillari haqida tushuncha Foydalanuvchidan kompyuter bilan muloqot qilish uchun kompyuter "tili" ni bilishi ham talab qilinadi. Kompyuter tushunadigan "til" dasturlash tili deb ataladi. Biror masalani kompyuterda yechish uchun, avvalo, uning algoritmi tuzilishi va bu algoritmni kompyuter tushunadigan ko‗rsatmalar va qonun-qoidalar asosida yozilishi kerak bo‗ladi. Bu yozuv dastur bajarishi mumkin bo‗lgan ko‗rsatmalarning izchil tartibidan iborat ekan. Kompyuter uchun dastur tuzish jarayoni dasturlash va dasturni tuzadigan kishi dasturchi deb ataladi. Hozirgi kunda hisoblash, muhandis-texnik, iqtisodiy, matnli va sonli axborotlarni tahlil qilish va boshqa masalalarni yechish uchun yuqori darajadagi dasturlash tillari mavjud. Bular jumlasiga Beysik, Fortran, Delphi, Kobol, Delphi, Visual Basic, Assembler, Foxpro va boshqa tillarni kiritish mumkin. Beysik dasturlash tili 1964 yili AQShning Dortmunt kolleji ilmiy xodimlari Jon Kemeni va Tomes Kurts tomonidan turli hisoblashlarga doir masalalarni kompyuter bilan muloqot holda hal qilishi uchun yaratildi. "Basic" so‗zi Beginners Allpyrpose sumbolic Instruction Code dan olingan bo‗lib, o‗zbek tilida "boshlovchilar uchun mo‗ljallangan ko‗p maqsadli, belgili ko‗rsatmalar tili" degan ma‘noni bildiradi. Beysik dasturlash tili soddaligi va kompyuter xotirasiga qo‗yiladigan talablarning juda kamligi sababli bu dasturlash tili boshqa dasturlash tillari qatori butun dunyoda shaxsiy kompyuterlar uchun keng foydalanadigan til bo‗lib qoldi. boshlanishi Xi X min =X1, i min =1 I=2,50 X 1 min X min =X1, i min =1 Xi tamomlash yo`q yo`q Fortran tili 1954 yilda ishlab chiqilgan. Fortran so‗zi inglizcha Formula translator so‗zidan olingan bo‗lib, formula tarjimonchisi degan ma‘noni bildiradi. Fortran tili muhandislik va ilmiy texnik masalalarini yechishga mo‗ljallangan dasturlash tili hisoblanadi. Delphi dasturlash tili Shveytsariyalik professor Virt Niklaus tomonidan 1971 yilda yaratilgan bo‗lib, 1981 yilda Delphi tilining xalqaro standarti qabul qilingan. Delphi tili jamlovchi mashinani yaratgan fransuz fizigi Blez Delphi xotirasiga qo‗yilgan. Delphi tilidan ilmiy texnik, muhandislik masalalarini yechishda keng ko‗lamda foydalaniladi. Kobol tili 1959 yilda yaratilgan bo‗lib, iqtisodiy xarakterga ega bo‗lgan masalalarni yechishga mo‗ljallangan. Algoritmik tillarga qiyosiy tavsifnoma Hozirda insoniyat faoliyatining barcha jabhalariga shaxsiy elektron hisoblashmashinalari (ShEHM) shaxdam qadamlar bilan kirib bormoqda. Asosan ShEHMlarga mo‘ljallangan, hamda murakkab jarayonlarning hisob ishlarini bajarish va juda katta ma‘lumotlar tizimi bilan ishlashni tashkil etuvchi yangi algoritmik tillar sinfi brogan sari kengayib bormoqda. Bu tillar jumlasiga quyidagi ko‘proq ishlatilayotgan tillarni kiritish mumkin: 1. Beysik tili; 2. Delphi tili; 3. C tili va hakozo. Programma tuzishni o‘rganishni boshlovchilarga mo‘ljallangan, savol-javob sistemasida ishlaydigan, turli-tuman jarayonlar algoritmini yozishga qulay bo‘lgan tillardan biri BEYSIK (BASIC) tilidir. Beysik tilining nomi ingliz so‘zi (Beginner's All-purpose Symbolic Instruction Code) ning o‘qilishiga mos kelib, boshlovchilar uchun belgili ko‘rsatmalar kodi(tili) degan ma‘noni anglatadi. Beysik tilini yaratish ustidagi ishlar 1963 yilning yozidan boshlangan. Tilning ijodkorlari taniqli olimlar T.Kurst va J.Kemeni hisoblanadi. Hozirga kelib Beysik tilining turli xil yangi ko‘rinishlari ishlab chiqilmoqda va ulardan foydalanib millionlab dasturchilar ajoyib programmalar yaratishmoqda. Endi nisbatan mukammalroq bo‘lgan Delphi va Si algoritmik tillari haqida qisqacha fikr yuritsak. Delphi tili 1969 yili N.Virt tomonidan yaratilib mashhur olim Blez Delphi nomi bilan ataldi. Bu til N.Virtning o‘ylashi bo‘yicha programmalashning zamonaviy texnologiyasiga va uslubiga, strukturali programmalash nazariyasiga asoslangan va boshqa programmalash tillaridan muayyan yutuqqa ega til bo‘lishi lozim edi. Mazkur til: Programmalashtirish konstepstiyasini va strukturasini sistemali va aniq ifodalaydi; Programma tuzishni sistemali olib borish imkonini beradi; Programma tuzish uchun boy termin va struktura sxemalariga ega; Yo‘l qo‘yilgan xatoliklarni tahlil qilishning yuqori darajadagi sistemasiga ega. 1981 yili Delphi tilining halqaro standarti taklif etildi va IBM PC tipidagi shaxsiy kompyuterlarda Delphi tilining Borland firmasi tomonidan ishlab chiqilgan Turbo-Delphi oiladosh tili keng qo‘llanila boshlandi. Hozirda Turbo-Delphining bir qancha versiyalari yaratilib, yuqori darajadagi programmalar yaratish imkoniyatlari borgan sari kengaytirilib borilmoqda: 4.0 versiyasidan boshlab programma yozishni, taxrirlashni va natijalar olishni osonlashtirish uchun yangi integrallashgan muhit hosil qilindi; 5.5 versiyasining paydo bo‘lishi bilan Turbo-Delphida ob‘ektli programmalash imkoniyati paydo bo‘ldi; 6.0 versiyasidan boshlab esa Delphi programmasi ichiga quyi programmalash tili bo‘lmish Assembler tilida yozilgan programmalarni qo‘shish holati hosil qilindi. Shu bilan bir qatorda tilning integrallashgan muhiti ham bir qator o‘zgarishlarga ega bo‘ldi. C tili 1972 yili D.Richi tomonidan turli xil EHMlar uchun universal til sifatida ishlab chiqilgan va dasturchi programma tuzish jarayonida hisoblash mashinasining imkoniyatlaridan keng foydalanishi mumkin. Shuning uchun, bu til barcha narsani qilishga qodir degan tushuncha hosil bo‘lgan. Hozirda amalda foydalanilayotgan ko‘pgina operastion sistemalar C tilida yaratilgan. Nazorat savollari 1. Algoritm nima? 2. Algoritmning asosiy xossalarini ayting? 3. Algoritm qanday shakllarda ifodalanadi? 4. Blok-sxema nima va unda qanday bloklar ishlatiladi? 5. Algoritmlar necha turga bo‗linadi? 6. Mashina kodi nimani ifodalaydi? 7. Algoritmik tillarning «Mashina til»laridan asosiy farqlarini sanab bering. 8. Algoritmik tillar «Mashina tili»ga bog‘liqmi? 9. Translyator qanday vazifani bajaradi? 10. Algoritmning uchta o‘zagini sanab bering va ularning ma‘nosini 11. tushuntiring. 12. Til alfaviti nima? 13. Tilning sintaksis qoidalari nimani ifodalaydi? 14. Til semantikasining vazifasi nimadan iborat? 15. Qanday algoritmik tillarni bilasiz? 20-Mavzu. Delphi - ob`ektga yo„naltirilgan dasturlash. (2 soat) 1. Operatorlar, protseduralar, funktsiyalar. 2. Interaktiv dasturlar. 3. Strukturalashgan ma‘lumotlarni qayta ishlash. 4. Protsedura va funktsiyali dasturlar. 5. Dasturni kompilyatsiyalash. Dasturni bajarish. 6. Kompilyatorlar va interpretatorlar. Dasturlashtirishga zamonaviy yondashish. XX asrning 80 - yillaridan oldin ishlab chiqilgan komp‘yuterlar uchun katta dasturiy sistemalarni ishlab chiqish juda ham mushkul vazifa edi. Buning eng katta sababi shu davrga xos bo‘lgan komp‘yuterlarning imoniyatlarining chegaralanganidadir. Dasturiy komplekslarni ishlab chiqishda asosiy cheklanishlar komp‘yuter tezkor xotirasining sig‘imi, ma‘lumotlarni ikkilamchi xotira qurilmalaridan (magnit lentalar, barabanlar va x.k.) o‘qish tezligi, protsessorning ishlash tezligi (ularning takt chastotalari bir necha yuz mikrosekund bo‘lgan) bilan bog‘liq. Bu davrdagi komp‘yuterlar halq ho‘jaligining hisob-kitob bilan bog‘liq bo‘lgan masalalarini yechish uchun mo‘ljallangan edi. Komp‘yuterlarda boshqa xarakterdagi masalalarning yechishning iloji yo‘q edi. Dasturchilar uchun shu komp‘yuterlarda yechilayotgan masala uchun berilgan ma‘lumotlarni hisobga olgan holda masalaning yechish algoritmini ishlab chiqish birinchi o‘rindagi vazifa hisoblangan. Bu borada N. Virtning mashhur ma’lumotlar+algoritm=dastur formulasini yodga olish yetarli. 80-yillardan keyin ishlab chiqilgan komp‘yuterlarning imkoniyatlari kengayib, ishlab chiqarish narxi keskin pasaygani tufayli ulardan foydalanish samarasi ortib bordi. Natijada, dastlab matn va grafiklar uchun muharrirlari ishlab chiqildi, keyinchalik mul‘timedia qurilmasi yordamida tovushli ma‘lumotlarni qayta ishlash imkoniyatlari ham paydo bo‘ldi. Komp‘yuter tasviriy imkoniyatlarining kengayishi foydalanuvchilar uchun qulay bo‘lgan grafik muloqot interfeysini yaratilishiga sabab bo‘ldi. Natijada yuqori murakkablikdagi katta amaliy dasturlarni yaratish foydali hamda zarur bo‘lib qoldi. Dasturiy vositalarni ishlab chiqish uchun qurol sifatida yuqori bosqichli algoritmik tillardan foydalanildi. Bu dasturiy vositalar dasturchi va dasturchilar guruhi imkoniyatlarini kengaytirib, dasturiy mahsulotlarning murakkablik darajasining ortishiga ham sabab bo‘ldi. 70-80 yillarda dasturiy mahsulotlarning murakkablik darajasini hal qilish uchun ko‘plab metodlar ishlab chiqildi. Ularning ichida yuqoridan pastga usulidagi strukturali dasturlash keng tarqaldi. Bu usul yuqori bosqichli FORTRAN va COBOL tillarining topologiyasiga asoslangan edi. Bu tillarda asosiy bazaviy birlik bo‘lib qism dastur xizmat qiladi. Dastur shakli jihatidan daraxtni eslatib, bitta qism dastur boshqasiga murojaat qilar edi. Strukturali dasturlashda aynan shunday yondoshuvdan foydalaniladi: algoritmik dekompozitsiya katta masalalarni kichik masalachalarga bo‘lish uchun qo‘llanadi. XX asrning 60-70 yillarida halq xo‘jaligining ko‘plab masalalarini komp‘yuter yordamida yechish uchun BASIC, DELPHI, FORTRAN kabi dasturlash tillari, DBASE. CLIPPER, FOXBASE, KARAT kabi ma‘lumotlar bazasini boshqaruv tizimlari yetarli bo‘lgan. Bu til va tizimlar asosan IBM*86 tipidagi komp‘yuterlarga mo‘ljallangan bo‘lib, ularning asosiy kamchiliklari shu davrga hos bo‘lgan komp‘yuterlarning imkoniyatlari bilan bog‘liq edi: Foydalanuvchi uchun qulay bo‘lgan grafik interfeys yaratish imkoniyatining yo‘qligi yoki juda ham katta mehnat talab qilishi; Bitta dasturda foydalanish mumkin bo‘lgan o‘zgaruvchilar sonining chegaralanganligi; Dasturda foydalnish mumkin bo‘lgan sonli ma‘lumotlar dipazonining chegaralanganligi; Kiritilayotgan va chiqarilayotgan ma‘lumotlarni nazorat qilish; Buyruqlar tizimining «kambag‘alligi»; Grafiklar bilan ishlash imkoniyatining chegaralanganligi; Tovushli ma‘lumotlarni qayta ishlashdagi kamchiliklari; Ma‘lumotlar bazasi va fayllar bilan ishlashdagi imkoniyatlarning chegaralanganligi; Yangi tipdagi ma‘lumotlar faqat shartli ravishda yaratish mumkin mumkinligi va h.k. Keyingi yillarda strukturali dasturlashning o‘ndan ortiq usullari ishlab chiqildi. Bu usullarning ko‘pchiligi bitta mavzuning turli ko‘rinishlaridan iborat bo‘ldi. Ammo, Sommervil‘ 1 ularni uchta guruhga bo‘lishni taklif qildi: Yuqoridan quyiga qarab strukturali loyihalash usuli; Ma‘lumotlar oqimini tashkil qilish usuli; Obyektga yo‘naltirilgan loyihalash. Strukturali loyihalash usuliga namunalar Yordan va Konstantin 2 asarlarida keltirilgan. Asosiy g‘oyalar esa Virtning 3 ko‘plab ilmiy ishlarida ochib berilgan. Bu asarlarda strukturali dasturlashga nisbatan bo‘lgan har bir yondoshuvda algoritmik dekompozitsiya ishtirok etadi. Yozilgan dasturlarning kattagina qismining asosini strukturali dasturlash printsipi tashkil qiladi. Strukturali dasturlash abstraktsiyalarni ajratishga imkon bermaydi, ma‘lumotlarni samarali himoya qilishni ta‘minlamaydi, parallelizmni tashkil qilish uchun yetarlicha vositalarni taklif qila olmaydi. Strukturali dasturlash murakkab sistemalarni ishlab chiqishga imkon bermaydi, obyektga yo‘naltirilgan dasturlashda samara bermaydi. Ma‘lumotlar oqimini tashkil qilish usuli Djekson 4 hamda Orrlarning 5 ishlarida keng yoritilgan. Bu usulda dasturiy sistemaning strukturasi xuddi kiruvchi ma‘lumotlarni chiquvchi ma‘lumotlar qimiga almashtirish tashkil qilish kabi quriladi. Ma‘lumotlar oqimini tashkil qilish usuli ham strukturali dasturlash usuli kabi bir qator murakkab masalalarda, hususan axborot ta‘minot sistemalarida qo‘llanilgan. Bu masalalarda kiritilyotgan va chiqarilayotgan ma‘lumotlar o‘rtasida bevosita bog‘liqlik mavjud hamda dasturlarning bajarish tezligiga katta e‘tibor berilmaydi. 80-yillarga kelib, imkoniyatlari yanada katta bo‘lgan komp‘yuterlar ishlab chiqildi. Strukturali dasturlashning ahamiyati esa o‘zgarmadi. Ammo Stayn shuni ta‘kidlaydiki «dasturning hajmi 100 000 satrdan o‘tganidan keyin strukturali dasturlash mexanizmi ishlamay qolar ekan». Demak, katta dasturiy sistemalarni ishlab chiqishda strukturali dasturlash mexanizmi ham o‘z ahamiyatini yo‘qotadi. SHu munosabat bilan dasturiy ta‘minotda obyektga yo‘naltirilgan dasturlash texnologiyalariga o‘tish taklif qilindi. 1 Sommerville.1. 1985. Sovtware Engineering. 2nd ed. Wotkhingam England: Addison Wesley , p.68. 2 Yordon E and Konstantine L. 1979. Structured Design. Englewood Cliffs. Nj:Prentice-Hall. 3 Virth N1986. A1gorithm and Data Structures. Englewood Cliffs. Nj:Prentice-Hall. 4 Jakson M. 1983. System Development. Englewood Cliffs. Nj:Prentice-Hall. 5 Orr K. 1971. Structured System development. New York. NY: Yordon Press. Obyektga yo‘naltirilgan dasturlash atamasi dastlab 60-yillarning o‘rtalarida, Simula-67 dasturlash tilida paydo bo‘lgan. Ammo, bu til FORTRAN, ALGOL, PL 1 kabi tillarga nisbatan o‘zining imkoniyatlari past bo‘lganligi hamda shu davrda yechish talab qilingan masalalar uchun yetarli vositalarni taklif qila olmagani uchun dasturchilar orasida keng ommalasha olmadi. Keyinchalik obyektga yo‘naltirilgan dasturlash Smalltalk, Object Pascal, C , Ada, hozirda esa C# kabi yuqori darajali dasturlash tillarining topologiyasi asosida rivojlandi va ommalashmoqda. Obyektga yo‘naltirilgan dasturlash – bu dasturlashning shunday yangi yo‘nalishiki, dasturiy sistema o‘zaro aloqada bo‘lgan obyektlar majmuasi sifatida qaraladi va xar bir obyektni ma‘lum bir klassga mansub hamda xar bir klass qandaydir shajarani hosil qiladi deb hisoblanadi. Alohida olingan klass ma‘lumotlar to‘plami va ular ustida bajariladigan amallarning to‘plami sifatida qaraladi. Bu klassning elementlariga faqat shu klassda aniqlangan amallar orqali murojaat qilish mumkin. Dasturdagi ma‘lumotlar va ular ustida bajariladigan amallar o‘rtasidagi o‘zaro bog‘liqlik an‘anaviy dasturlash tillariga nisbatan dasturiy sistemalarning ishonchliligini ta‘minlaydi. Download 5.01 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling