Informatika va at” fani o`qituvchisi Dadamirzayeva Odinaning “informatika va axborot texnologiyalari”


Download 0.63 Mb.
bet2/3
Sana27.04.2020
Hajmi0.63 Mb.
#101766
1   2   3
Bog'liq
mustaqil ish

Kirish
Ob’ektga yo‘naltirilgan dasturlash texnologiyalari – dasturiy ta’minotning inqiroziga javob sifatida yuzaga kelgan dasturlash texnologiyalari hisoblanadi. Bu inqirozning sababi shunda ediki, strukturali dasturlash metodlari murakkablik darajasi borgan sari ortib borayotgan masalalar uchun dasturiy ta’minot yaratish imkonini bera olmay qoldi. Buning natijasida turli loyihalarni bajarish rejalari buzildi, qilinayotgan harajatlar belgilangan byudjetdan ortib ketdi, dasturiy ta’minotning funksionalligi buzildi, hatoliklari ortdi.

Dasturiy ta’minotning eng muhim tomonlaridan biri – uning murakkablik darajasidir. Biror dasturchi sistemaning barcha hususiyatlarini to‘liq hisobga ola olmaydi. Shuning uchun uni ishlab chiqishda dasturchi va boshqa mutaxassislarning yirik jamoasi qatnashadi. Demak, qo‘yilgan masalaga to‘g‘ridan-to‘g‘ri bog‘liq bo‘lgan murakkabliklarga ana shu jamoaning ishini bir maqsadga qaratilgan boshqarish ham qo‘shiladi. An’naviy dasturlash tillarida bunday murakkabliklarni hal qilishda “ajrat va boshqar” prinsipidan foydalanilgan. Ya’ni, masala kichik-kichik masalalarga ajratib, keyin har bir masala uchun alohida dastur ishlab chiqilgan va birlashtirilgan. Ob’ektga yo‘naltirilgan dasturlash texnologiyalari esa masalaga boshqacha usulda yondoshadi. Unda masalalarning yechish uchun kerak bo‘ladigan elementlarni muammoli sohaning turli abstraksiyalariga taaluqli ekanligi asosiy o‘rinda turadi. Bu abstraksiyalar dasturchilar ishlab chiqishgan. Dasturchilar tomonidan ma’lum bir soha o‘rganilib, uning alohida ob’ektlari ajratib olingan. Bu ob’ektlar uchun masalalarni yechishda qo‘llash mumkin bo‘lgan hususiyatlar aniqlangan. Ehtiyojga qarab har bir hususiyat ustida bajarish mumkin bo‘lgan amallar aniqlangan. So‘ngra o‘rganilayotgan sohaning har bir real ob’ektiga mos dasturiy ob’ekt ishlab chiqilgan.

Ma’lumki, kompyuter yordamida hal qilinadigan har bir masala uchun maxsus dastur ishlab chiqish yozish talab qilinadi. Bunday masalalar sinfining kengayib borishi albatta yangi-yangi dasturlar yaratishga olib keladi. Yangi dasturlarni yaratish uchun «eski» dasturlash tillarining imkoniyati yetmay qolganda yoki dastur yaratish jarayonini mukammallashtirish uchun yangi dasturlash tiliga ehtiyoj paydo bo‘ladi. Bu masalani albatta malakali va tajribali dadsturchilar yoki dasturchi guruhlar tomonidan hal qilinadi. Ana shu dasturchilarni yetishtirish bugungi kunda Respublikamiz Oliy O‘quv Yurtlarida talabalarga informatika va informatsion texnologiyalar kabi fan o‘qituvchilarining eng asosiy masalasi hisoblandi.

Ushbu uslubiy qo‘llanma muallifning Namangan davlat universitetida “amaliy matematika va informatika” mutaxassisligi talablari uchun bir necha yil mobaynida tashkil qilgan nazariy va amaliy mashg‘ulotlari asosida shakllangan. Unda oliy o‘quv yurtlarining talabalariga eng yangi ob’ektga yo‘naltirilgan dasturlash texnologiyalaridan biri bo‘lgan DELPHI dasturlash tilini o‘qitishdagi ayrim muammolar va ularni hal qilish yo‘l-yo‘riqlari keltirilgan.



§-1. Dasturlashning yangi texnologiyalari sifatida ob’ektga yo‘naltirilgan dasturlash texnologiyalaridan foydalanish

XX asrning 80 - yillaridan oldin ishlab chiqilgan kompyuterlar uchun katta dasturiy sistemalarni ishlab chiqish juda ham mushkul vazifa edi. Buning eng katta sababi shu davrga xos bo‘lgan kompyuterlarning imoniyatlarining chegaralanganidadir. Dasturiy komplekslarni ishlab chiqishda asosiy cheklanishlar kompyuter 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 kompyuterlar halq ho‘jaligining hisob-kitob bilan bog‘liq bo‘lgan masalalarini yechish uchun mo‘ljallangan edi. Kompyuterlarda boshqa xarakterdagi masalalarning yechishning iloji yo‘q edi. Dasturchilar uchun shu kompyuterlarda 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=dastur1 formulasini yodga olish yetarli.

80-yillardan keyin ishlab chiqilgan kompyuterlarning imkoniyatlari kengayib, ishlab chiqarish narxi keskin pasaygani tufayli ulardan foydalanish samarasi ortib bordi. Natijada, dastlab matn va grafiklar uchun muharrirlari ishlab chiqildi, keyinchalik multimedia qurilmasi yordamida tovushli ma’lumotlarni qayta ishlash imkoniyatlari ham paydo bo‘ldi. Kompyuter 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 kompyuter yordamida yechish uchun BASIC, PASKAL, 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 kompyuterlarga mo‘ljallangan bo‘lib, ularning asosiy kamchiliklari shu davrga hos bo‘lgan kompyuterlarning 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, Sommervil2 ularni uchta guruhga bo‘lishni taklif qildi:

  • Yuqoridan quyiga qarab strukturali loyihalash usuli;

  • Ma’lumotlar oqimini tashkil qilish usuli;

  • Ob’ektga yo‘naltirilgan loyihalash.

Strukturali loyihalash usuliga namunalar Yordan va Konstantin3 asarlarida keltirilgan. Asosiy g‘oyalar esa Virtning4 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 prinsipi tashkil qiladi. Strukturali dasturlash abstraksiyalarni 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, ob’ektga yo‘naltirilgan dasturlashda samara bermaydi.

Ma’lumotlar oqimini tashkil qilish usuli Djekson5 hamda Orrlarning6 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 kompyuterlar ishlab chiqildi. Strukturali dasturlashning ahamiyati esa o‘zgarmadi. Ammo Stayn7 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 ob’ektga yo‘naltirilgan dasturlash texnologiyalariga o‘tish taklif qilindi.

Ob’ektga 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 ob’ektga yo‘naltirilgan dasturlash Smalltalk, Object Pascal, C, Ada, hozirda esa S# kabi yuqori darajali dasturlash tillarining topologiyasi asosida rivojlandi va ommalashmoqda.



Ob’ektga yo‘naltirilgan dasturlash – bu dasturlashning shunday yangi yo‘nalishiki, dasturiy sistema o‘zaro aloqada bo‘lgan ob’ektlar majmuasi sifatida qaraladi va xar bir ob’ektni 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. Ob’ektga yo‘naltirilgan dasturlashning eng asosiy tushunchasi ob’ekt va klass hisoblanadi.

Ob’ekt. Oldimizda turgan olma mevasini dasturlash terminologiyasi orqali ko‘raylik. An’anaviy dasturlashda biz uni qismlarga bo‘lib o‘rganganmiz: S-olma po‘stining yuzi, J – olma mevasidagi sharbat hajmi, F – po‘st orasidagi meva og‘irligi, D-urug‘lar soni va x.k. Endi ana shu olmaga rassom ko‘zi bilan qaraylik. Olmaning rasmi bu meva emas, balki olma mevasining yassi tekisliklikdagi tasviridir. Uni har biri alohida va bir-biriga bog‘liq bo‘lmagan biror ma’lumotlar segmentida turgan bir nechta ma’lumotlardan iborat bo‘lgan ko‘rinishda abstraksiyalash mumkin emas. Olmaning komponentalari doimo birgalikda va bu komponentalar orasidagi o‘zaro aloqalarni saqlagan holda qaraladi. Ob’ekt - biz yashayotgan olamdagi biror elementga hos bo‘lgan barcha ma’lumot va hulqlarni, ya’ni shu element ustida bajarish mumkin bo‘lgan xarakatlarni ifodalaydi hamda ma’lumotlarning tugal abstraksiyasidan iborat bo‘ladi. Bu ma’lumot va hulqlar ob’ektga yo‘naltirilgan dasturlash atamashunosligida mos ravishda hususiyat va metod deb ataladi. Hususiyatni ob’ektning maydoni deb ham yuritiladi. Masalan, shashka ob’ekti rang, vertikal maydondagi o‘rni, gorizontal maydondagi o‘rni kabi maydonlarga, surish, urish, «damka» ga chiqish, shashka taxtasidan chetga olish kabi metodlarga ega bo‘ladi. Maydon va metodlar birgalikda ob’ektning a’zolari8 deyiladi. Ob’ektlarning strukturasi ularning o‘zaro aloqasini ifodalaydi.

Eslatma: Ob’ektlar o‘zlarining barcha xarakteristika va hulqlarining o‘ziga hos tomonlarini birgalikda saqlaydi.

Klass. Har bir ob’ekt qandaydir bitta klassga taaluqli bo‘ladi. Klass – bu murakkab struktura bo‘lib, o‘z ichiga ma’lumotlarni, protsedura va funksiyalarni ifodalashdan tashqari, klasslarning vakili bo‘lmish ob’ektlar ustida bajarilishi mumkin bo‘lgan amallarni ham oladi. Klassdagi ma’lumotlar maydonlar, protsedura va funksiyalar esa metodlar deb ataladi. Klassning strukturasi tushunchasi ham muhim hisoblanadi. U sistema ichidagi vositalar boyligini namoyon qiladi. Ma’lumki, biror yaproqdagi fotosintez jarayonini o‘rganish uchun shu yaproqdagi bitta xujayrani ko‘rish yetarli, chunki, qolgan xujayralar ham o‘zini ana shgu o‘rganilgan xujayra kabi tutadi. Biz xam biror klass, tip yoki bo‘limga mansub bo‘lgan ob’ektni ko‘rar ekanmiz, faraz qilishimiz mumkinki, uning hulqi ham shu tipdagi boshqa ob’ektlarniki kabi bo‘ladi.

Ob’ektga yo‘naltirilgan dasturlash bizning hulqimizga o‘xshab ketadigan dasturlash usulini ifodalaydi. U dasturlash tillarini ishlab chiqishdagi yangiliklarning tabiiy evolyusiyasi hisoblanadi. U barcha avvalgi dasturlash tillariga qaraganda strukturaliroq, ma’lumotlarni abstraktlashga urinishda abstraktliroq va modulliroqdir.

Ob’ektga yo‘naltirilgan dasturlash o‘zining uchta asosiy hususiyatlari bilan xarakterlanadi:


  1. Inkapsulyatsiya – yozuvlarni shu yozuvlarning maydonlari ustida amallar bajarish uchun mo‘ljallangan funksiyalar va protseduralar bilan birgalikda olib boradi. Inkapsulyatsiya yashirish prinsipiga ham ega bo‘ladi. Buning ma’nosi shuki, ob’ekt ustida bajarish mumkin bo‘lgan xarakatlarni amalga oshirish vositalari shu ob’ektdan foydalanayotgan dasturchilar ko‘zidan yashirib qo‘yiladi. Dasturchi faqat shu ob’ektning ayrim metod va maydonlari bilangina ishlay oladi. Boshqacha aytganda, barcha maydon va metodlar ichki va tashqi guruhlarga bo‘linadi. Ob’ektning ichki a’zolari dasturchiga «ko‘rinmaydi» va ob’ektning hulqi va imkoniyatlarini aniqlaydi, tashqi a’zolari esa dasturchiga «ko‘rinib turadi» hamda ob’ektni boshqarish imkonini beradi. Ob’ektning dasturchiga ko‘rinib, ob’ektni boshqarishga yordam beradigan metod va maydonlari (hususiyatlari) ob’ektning interfeysi deb ataladi. Dasturchi ob’ekt bilan ishlash uchun uning interfeysini bilishi kifoya. Masalan, yengil avtomobilni boshqarishni o‘rganish uchun uning matorining ishlash prinsipi, g‘ildiraklarning burilishini, tormoz mexanizmini o‘rganishning hojati yo‘q, rulni burash, pedal yoki uzatmalar qutisi richagini bosishni bilish yetarli.

  2. Vorislik – yangi ob’ektni aniqlashga ehtiyoj paydo bo‘lganda oldindan ma’lum bo‘lgan ob’ektlardan foydalanish. Ob’ektlar o‘zlarini yaratishda ishtirok etgan ota ob’ektlarning xarakteristika va hulqlarini meros qilib olishlari mumkin. OYD konsepsiyasi yangi klasslarni mavjud klasslarga yangi maydonlar, hususiyatlar va metodlarni qo‘shish orqali yaratish imkonini ham beradi. Yangi klasslarni tashkil qilishning bunday usuli yuzaga keltirish deb ataladi. Bu holda yuzaga kelgan yangi klass o‘zining bazaviy ota klassiga hos bo‘lgan hususiyat va metodlarini meros oladi. Hayotdan misol qilib, hasharotlar klassini olish mumkin. U ikki guruhga bo‘linadi: qanotlilar va qanotsizlar. Qanotli hasharotlarga kapalaklar, pashshalari, parvonalar va x.k. lar kiradi. Shuning uchun, pashshalarni qaytadan qanotli deb ta’riflashning hojati yo‘q, u bu hususiyatni ota klassi bo‘lgan qanotli hasharotlar klassidan meros qilib oladi.

3. Polimorfizm – xarakatga biror nom berish hamda undan birgalikda ob’ektlar shajarasining quyi va yuqori qismlarida foydalanish. Bunda shajaraning har bir ob’ekti bu xarakatni o‘zi uchun hos bo‘lgan usul bilan bajaradi. Polimorfizm — bu turli klasslarga kirgan metodlar uchun bir hil nomlardan foydalanish imkoniyatidir. Polimorfizm konsepsiyasida ob’ektga nisbatan metod qo‘llanganida aynan ob’ektning klassiga mos keluvchi metoddan foydalanishni ta’minlaydi.

Object Pascal dasturlash tili ob’ektga yo‘naltirilgan dasturlashga hos bo‘lgan barcha vositalarni bera oladi: strukturalilik, modullik, katta abstraktlilik. Bu xarakteristikalarning hammasi xizmat ko‘rsatish uchun juda ham sodda, osongina boshqa vaziyatlarga moslashtirila oladigan, kuchliroq strukturaga ega bo‘lgan kodlarda o‘z aksini topadi.

Ob’ektga yo‘naltirilgan dasturlash uzoq yillar davomida an’anaviy, ya’ni standart hisoblangan dasturlashga nisbatan hos bo‘lgan tasavvurlarni bir chetga qo‘yishni talab qiladi. Natijada ob’ektga yo‘naltirilgan dasturlash juda ham sodda, ko‘rgazmaliligi yuqori bo‘lib, dasturiy ta’minot yaratishdagi ko‘plab muammolarni hal qilishning juda ajoyib vositasiga aylanadi.

Yuqorida aytilgan fikrlarni hisobga olsak, ob’ektga yo‘naltirilgan dasturlash texnologiyalari quyidagicha masalalarni hal qilishi mumkin:



  • an’anaviy dasturlash tillarida mavjud bo‘lgan kamchiliklarni bartaraf qilish;

  • an’anaviy dasturlash tillari yordamida yechib bo‘lmaydigan yoki juda katta qiyinchiliklar bilan yechilishi mumkin bo‘lgan masalalarni hal qilish;

  • qayta ishlash mumkin bo‘lgan ma’lumotlar va ularning tiplari doirasi an’anaviy dasturlash tillariga nisbatan ancha keng;

  • foydalanuvchilar uchun qulay bo‘lgan muloqot interfeysini yaratish;

  • kiritilayotgan va chiqarilayotgan turli tipdagi ma’lumotlarni nazorat qilish;

  • yangi tipdagi ma’lumotlar, klasslar va modullarni osongina tashkil etish va ma’lumotlarni nazorat qilish;

  • multimedia va animatsion vositalaridan foydalanib, turli darajadagi tovushli va xarakatli effektlarni hosil qilish va qayta ishlash;

  • ma’lumotlar bazasi va undagi ma’lumotlar ustida amallarni bajarish, SQL so‘rovnomalari yordamida ma’lumotlarni qidirib topish kabi masalalar juda osonlik bilan hal qilish;

  • OLE konteyneri yordamida WINDOWS muhiti uchun mo‘ljallangan ilovalardagi ob’eklar bilan ishlash;

  • foydalanuvchilar uchun yaratilgan dasturiy ta’minotdan foydalanish uchun yordamchi ma’lumotnomalar tizimini yaratish;

  • dasturiy ta’minotni boshqa kompyuterlarga ko‘chirish uchun o‘rnatuvchi disklarni yaratish;

  • dastur matnini tashkil qilishda yuzaga kelishi mumkin bo‘lgan xatoliklar bilan ishlash masalasini hal qilish va x.k.

Ko‘rinib turibdiki, yechilayotgan masalalarni an’anaviy dasturlash tillari yordamida yechishda yuzaga kelishi mumkin bo‘lgan kattakon bo‘shliqni ob’ektga yo‘naltirilgan dasturlash texnologiyalari to‘ldiradi hamda zamonaviy dasturlashning ko‘plab talablariga javob beradi. Shunday ekan, Oliy o‘quv yurtlarida an’anaviy dasturlash tillaridan voz kechib, ob’ektga yo‘naltirilgan dasturlash texnologiyalarini o‘qitishga o‘tish tavsiya qilinadi.

§-2. OB’EKTLI ALGORITM

Biz yaxshi bilamizki, algoritm tushunchasi buyuk o‘zbek matematigi Al-Xorazmiy nomidan kelib chiqib, uning mashhur «Al-jabr va al-Muqobala» asarining tarixiy ahamiyati bilan bog‘liq.

XX asrning oxiri va XXI asrning boshlarida dasturchilar ixtiyoriga o‘z imkoniyatlariga ko‘ra an’anaviy dasturlash tillariga qaraganda bir necha marta boy va qulay bo‘lgan ob’ektga yo‘naltirilgan dasturlash texnologiyalari taklif qilindi. Bu texnologiyalarning keyingi versiyalari avvalgilariga qaraganda mukammalroq hamda borgan sari o‘z ichiga ko‘plab INTERNET tizimi, tarmoqlar, animatsiyalar va ma’lumotlar bazalari bilan ishlash kabi yangi imkoniyatlar uchun zarur bo‘lgan komponentalarni olish hisobiga kengayib bormoqda.

Bugungi kunga kelib, dasturlash tillarini o‘rganuvchilar uchun bir qaraganda, algoritm tushunchasini kerak emas, uning dasturlash bilan aloqasi yo‘q qabilidagi tasavvurlar paydo bo‘lib qoldi. Ular masalalarni yechish bosqichlari, algoritm qurishning yo‘l-yo‘riqlari bilan tanishmasdan turib, dasturlash sohasiga kirishga xarakat qilishadi. Natijada, ular dasturlash tillarida ko‘zda tutilgan qonun-qoidalar, buyruqlar tizimini yetarli darajada o‘rganishlari (shunchaki yodlashlari) mumkin, ammo, aniq qo‘yilgan masala uchun dastur yozishda juda katta qiyinchiliklarga duch kelishadi. Ana shunday vaziyatlarga tushib qolmaslik uchun, biz bu dasturchilarga dasturlashni algoritm qurishdan boshlashni tavsiya qilamiz.

Bir qaraganda, an’anaviy dasturlash tillariga hos bo‘lgan algoritm tushunchasi o‘z ahamiyatini yo‘qotgandek bo‘lmoqda. Aslida ham shundaymi? Bizning nazarimizda bu savolga «yo‘q» deb javob berish mumkin. Chunki, hozirgi kunda bu tushuncha boshqacha ko‘rinishda, ya’ni zamonaviy dasturlash tillarining eng muhim tushunchasi bo‘lgan ob’ektlarga nisbatan qo‘llanmoqda. Shuning uchun bu tushunchani yangicha talqin qilishga to‘g‘ri keladi.

Ma’lumki, ixtiyoriy masalani hal qilish uchun maxsus algoritm ishlab chiqish talab qilinadi. Shunday algoritmning mavjud emasligi masala yechimining mavjud emasligini anglatadi.

Zamonaaviy ob’ektga yo‘naltirilgan dasturlash tillari uchun N. Virtning «algoritm+berilganlar=dastur» ta’rifi boshqacharoq talqin qilinadi. Asosiy e’tiborni algoritm tuzishga emas, balki ma’lumotlarning berilganlar strukturasiga qaratiladi.

Algoritmlarni ishlab chiqishda ob’ekt, klass va metodlardan keng foydalaniladi. Klass – bu murakkab struktura bo‘lib, o‘z ichiga ma’lumotlarni, protsedura va funksiyalarni ifodalashdan tashqari, klasslarning vakili bo‘lmish ob’ektlar ustida bajarilishi mumkin bo‘lgan amallarni ham oladi. Klassdagi ma’lumotlar maydonlar, protsedura va funksiyalar esa metodlar deb ataladi.

Ta’rif. Ob’ektli algoritm deb qo‘yilgan masalani to‘la hal qilish uchun zarur bo‘lgan ob’ektlarning hususiyatlarini o‘zgartirish uchun ijrochining bajarishi talab qilingan amallar va metodlar ketma-ketligining qat’iy tartibiga aytiladi.

Ob’ekli algoritm qurish uchun uning qanday hususiyatlarga ega ekanligi hamda ana shu hususiyatlar ustida bajarish mumkin bo‘lgan amallarni bilish lozim. Hususiyatlar va ularning qiymatlari bir-biridan “.” (nuqta) belgisi yordamida ajratib ko‘rsatiladi.

1-misol. Uyni isitgich yordamida isitish talab qilingan bo‘lsin. Bu masalani yechishda ijrochi, ya’ni uy egasi isitgich ob’ektidan foydalanadi. Isitgich ob’ekti rozetka, o‘chirgich hamda o‘zining maxsus ish rejimlari kabi hususiyatlarga ega. Ijrochining tarmoqda elektr kuchlanishining mavjudligi qiziqtirmaydi. Chunki, kuchlanishni muhit ta’minlab beradi. Ma’lumki, rozetka hususiyati umumiy elektr tarmog‘iga «ulangan» yoki «ulanmagan», o‘chirgich hususiyati «yoqilgan» yoki «o‘chirilgan», ish rejimi hususiyati esa «kuchli», «o‘rta» va «kuchsiz» qiymatlarni olishi mumkin. Demak, ijrochi bu hususiyatlarni o‘zgartirib, oldiga qo‘yilgan masalani hal qilishi mumkin.

Bu misoldagi щususiyatlarni quyidagi tartibda belgilab qo‘yish mumkin:

1) o‘chirgich.ulangan (yoki o‘chirgich.rost);

2) Ish rejimi.kuchli;

3) Rozetka. o‘chirilgan (yoki Rozetka.yolg‘on).

2-misol. Shashka donasi rang, gorizontal va vertikaldagi o‘rni kabi hususiyatlarga hamda yurish, urish va taxtadan chetga olish kabi amallarga (metodlarga) ega. O‘yinchi berilgan hususiyatlarni o‘zgartirib, mumkin bo‘lgan amallarni bajarib, o‘yin taqdirini hal qilishi mumkin.

Klassning strukturasi tushunchasi ham muhim hisoblanadi. U sistema ichidagi vositalar boyligini namoyon qiladi. Ma’lumki, biror yaproqdagi fotosintez jarayonini o‘rganish uchun shu yaproqdagi bitta xujayrani ko‘rish yetarli, chunki, qolgan xujayralar ham o‘zini ana shgu o‘rganilgan xujayra kabi tutadi. Biz xam algoritm qurish jarayonida biror klass, tip yoki bo‘limga mansub bo‘lgan ob’ektni ko‘rar ekanmiz, faraz qilishimiz mumkinki, uning hulqi ham shu tipdagi boshqa ob’ektlarniki kabi bo‘ladi.

Ob’ektli algoritm quyidagi talablarga javob berishi lozim, aks holda u ob’ektli algoritm bo‘la olmaydi.



  1. Algoritmda foydalanilayotgan har bir ob’ekt qandaydir bitta klassga taaluqli bo‘lishi lozim.

  2. Algoritm foydalanuvchilar uchun mo‘ljallangan, ya’ni masala shartida berilgan ma’lumotlarni kiritish hamda talab qilingan ma’lumotlarni chiqarish uchun interfeys, ya’ni muloqot oynasiga ega bo‘lishi shart;

  3. Algoritmning har bir qadami buyruq tarzida rasmiylashtiriladi.

  4. Algoritm chekli sondagi qadam va buyruqlardan iborat bo‘lishi kerak.

  5. Amal yoki metodlarda foydalanilayotgan o‘zgaruvchilarning qiymatlari oldindan aniqlanishi lozim;

  6. Har bir amal yoki metodning natijasi bir qiymatli bo‘ladi;

  7. Interfeysga ishni boshlash uchun bir yoki bir nechta tugmali oynalar kiritilishi hamda bu tugmalarning birini tanlanishiga qarab algoritm reaksiyasini aniqlash kerak.

8. Algoritm ommaviy bo‘lishi lozim.

Bu talablarning ayrimlarini izohlaymiz.

1-talabga ko‘ra, har bir ob’ekt biror klassga taaluqli bo‘ladi, ya’ni shu klassga hos bo‘lgan barcha hususiyatlarni olgan bo‘ladi. Ehtiyoj paydo bo‘lganda bu hususiyatlarni algoritm qadamlari yordamida o‘zgartirilishi mumkin. Masalan, 1-misoldagi shashka donasi rangi, taxtaning gorizontal va vertikal qatoridagi turgan o‘rni kabi hususiyatlarga ega. O‘yin jarayonida shashka donasining u yoki bu hususiyatlari ijrochi, ya’ni o‘yinchi tomonidan o‘zgartiriladi.

2-talabga foydalanuvchi bilan algoritm ijrochisi o‘rtasidagi muloqot oynasi bo‘lgan interfeys yaratilishi kerak. Bu interfeysdagi barcha ob’ektlarning hususiyatlarini o‘zgartirish ehtiyojga qarab yoki oldindan, yoki algoritm ko‘rsatmalarining bajarilishi davomida o‘zgartiriladi.

4-talabda algoritmning qadamlari soni chekli bo‘lish ta’kidlangan. Demak, ijrochi chekli sondagi elementar amallarni bajarganidan so‘ng, masalaning yechimiga erishishi lozim. Ayrim hollarda bu talabni buzilishi natijasida «cheksiz sikl» effekti sodir bo‘ladi va bu sikl hech qachon tugamaydi. Masalan, quyidagi buyruqlarga e’tibor bering:


  1. Hisoblansin x:=1;

  2. Hisoblansin x:=x+1:

  3. 1-qadamga o‘tilsin.

Demak, algoritm qurilayotganda bunday vaziyatlarni albatta nazarda tutish lozim.

5-talab bo‘yicha shuni aytish mumkinki, amal yoki metodlarda qatnashayotgan o‘zgaruvchilarning qiymatlarini oldindan aniqlash masalaning to‘g‘ri hal qilinishiga olib boradi. Bunday o‘zgaruvchilarning boshlang‘ich qiymatlarini ko‘rsatmaslik ularni xar hil talqin qilinishiga olib keladi. Masalan, ijrochi qiymati oldindan aniqlanmagan x o‘zgaruvchi uchun



y:=2*x-1;

buyrug‘ini qay tarzda bajarishi lozim?

6-hossaga ko‘ra, algoritmning qadamlarini tashkil qilishda «biror sonni o‘ylang» yoki x1,2:=±… qabilidagi ko‘rinishidagi buyruqlardan foydalanish mumkin emas.

8-talabda algoritmning ommaviy bo‘lishi ta’kidlangan. Bu shuni anglatadiki, birinchidan, ob’ektli algoritm mumkin bo‘lgan barcha boshlang‘ich qiymatlarni qayta ishlashga mo‘ljallangan bo‘ladi, ikkinchidan, algoritm qo‘yilgan masalaning umumiy holi uchun quriladi hamda uni shu masalaning ihtiyoriy hususiy holi uchun qo‘llash mumkin bo‘ladi, uchinchidan, shu masala bilan bitta sinfga kirgan masalalar uchun ham qo‘llash mumkin bo‘ladi.

Ob’ektlarning hususiyatlari ikki hil usulda ko‘rsatilishi mumkin.

1. Algoritmning hususiyatlarini ko‘rsatmalarini bajarishdan oldindan belgilab qo‘yish. (1-misolga qarang.) Ko‘rinib turibdiki, uyni isitish uchun isitgichning hususiyatlarini belgilab qo‘yish talab qilinadi.

2) Algoritmning hususiyatlarini bajarish vaqtida o‘zgartirish. Zarur bo‘lganda ob’ektning u yoki bu hususiyatini «eski» qiymatini «yangi» si bilan almashtirib qo‘yishga ehtiyoj paydo bo‘lishi mumkin. Masalan, isitgich ishlab turgan vaqtda uy haddan tashqari isib ketgan bo‘lsa, uning ish rejimi qiymatini

Ish Rejimi:=o‘rta ( yoki Ish Rejimi:=kuchsiz) ; (*)

tarzida o‘zgartirib qo‘yish mumkin.

Ko‘pincha, berilgan masalalarni hal qilish uchun ularning hususiyatlarini to‘g‘ridan-to‘g‘ri o‘zgartirishning iloji bo‘lmaydi. Ularning qiymati qandaydir amallarning natijasiga bog‘liq bo‘lib qoladi. Demak, ob’ektli algoritmlarda qo‘shimcha ravishda qandaydir o‘zgaruvchilarning qiymatlarini kiritilishi, ijrochi tomonidan tanlanishi yoki ko‘rsatiladigan amallar yordamida hisoblab topilishi mumkin. Bundan tashqari, zarur bo‘lgan ayrim ma’lumotlarning ko‘rsatilishini talab qilish mumkin. Bu maqsadlar uchun ob’ektli algoritmlarning maxsus kiritish va chiqarish oynalaridan ehtiyojga qarab foydalanish mumkin. Bu oynalardagi ma’lumotlar matn shaklida bo‘ladi. (*) buyruqni kiritish oynasidan foydalanib,

Kiritilsin(a);___2._Ish_Rejimi:=a;'>1. Kiritilsin(a);

2. Ish Rejimi:=a;

ko‘rinishida ham yozish mumkin.



Zarur bo‘lganda, kiritilgan matn shaklidagi ma’lumotlarni maxsus funksiyalar yordamida sonli yoki boshqa tipdagi ma’lumotlarga aylantirish mumkin. Bunda mos ravishda son(x) yoki matn(x) funksiyalaridan foydalaniladi.

3-misol. ax2+bx-c=0 kvadrat tenglamani yeching.

Yechish. Bu masalani hal qilish uchun a, b va c o‘zgaruvchilarning qiymatlarini kiritilishi lozim. Ularni kiritish uchun matnli ma’lumotlarga mo‘ljallangan Kiritilsin oynasidan foydalaniladi.

1. Kiritilsin a.matn;

2. Kiritilsin b. matn;

3. Kiritilsin c. matn;

4. a1:=son(a.matn);

5. b1:=son(b.matn);

6. s1:=son(s.matn);

7. D:=b2-4ac;

8. agar D<=0 bo‘lsa chiqarilsin(“yechim yo‘q”) ; 13 ga o‘t;

9.




10.
11. Chiqarilsin matn(x1);

12. Chiqarilsin matn(x2);

13. Tamom.

Ayrim hollarda berilgan masalani yechish uchun bajarilishi talab qilingan amallarning soni juda katta bыlishi mumkin. Turgan gapki, bu holda algoritm qurish jaraeni murakkablashib ketadi. Yuzaga kelgan noqulaylikning oldini olish uchun, algoritmlarni blokli usulda qurish tavsiya qilinadi. Blokli usulda berilgan masalani bir nechta kichik-kichik masalalarga (bloklarga) ajratiladi va bu bloklarni bir-biriga masalaning xarakteridan kelib chiqqan holda bitta mantiqiy ketma-ketlikka birlashtirish mexanizmi ishlab chiqiladi. Har bir blok uchun algoritm yoziladi va shunday keyin bu bloklarni ishlab chiqilgan ketma-ketlik asosida birlashtiriladi.



4-misol. Uchburchak uchlarining koordinatalari berilgan bo‘lsin. Koordinatalar boshi shu uchburchak ichida yotadimi?

Berilgan masala uchun mantiqiy ketma-ketlik quyidagicha quriladi:

1. Berilgan uchburchakning yuzi S bo‘lsin;

2. Koordinatalar boshi bo‘lgan (0, 0) nuqta uchburchakning uchlari bilan birlashtirilsin;

3. Hosil bo‘lgan uchburchaklarning yuzalari hisoblanib, mos ravishda S1, S2 va S3 bilan belgilansin;

4. Agar S=S1+S2+S3 bo‘lsa chiqarilsin(“ha”) aks holda chiqarilsin(“yo‘q”);

5. Tamom.

Tashkil qilingan bloklarning algoritmlarini qurish juda ham sodda bo‘lgani uchun, ularni keltirmaymiz.

Ob’ektli algoritmlardan eng zamonaviy dasturlash tillari bo‘lgan ob’ektga yo‘naltirilgan dasturlash tillarini o‘qitishda keng foydalanish mumkin.
§-3. Talabalarni DELPHI dasturlash tilini

o‘rganishga tayyorlash bosqichlari hususida


Biz yaxshi bilamizki, kompyuterlarning yangi avlodlari juda ham tez paydo bo‘lmoqda. 60-65 yillik davr mobaynida kompyuterlarning to‘rtta avlodi yaratildi, hozirgi kunda kelib ham bu an’ana davom etib, yangi kompyuter avlodlari ustida ishlar olib borilmoqda. Har bir avlod avvalgisidan o‘zining strukturasi bilan, ishlash prinsipi, imkoniyatlarining boyligi, amallarning bajarish tezligi va boshqa ko‘plab texnik jihatlari bilan farq qiladi. Hattoki, bir avlod doirasida ishlab chiqilgan yangi kompyuterlar ham avvalgilaridan imkoniyatlarining kengligi, puxtaligi hamda qulayligi bilan ajralib turadi. Kompyuterlarning imkoniyatlari kengayib borgani sari, ular yordamida hal qilish mumkin bo‘lgan masalalar sinfi ham kattalashib boradi.

Bundan 15-20 yil avval halq xo‘jaligining ko‘plab masalalarini kompyuter yordamida yechish uchun BASIC, PASCAL, FORTRAN kabi dasturlash tillari, DBASE. CLIPPER, FOXBASE, KARAT kabi ma’lumotlar bazasini boshqaruv tizimlari yetarli bo‘lgan. Bu til va tizimlar asosan IBM286, IBM396 va IBM486 tipidagi kompyuterlarga mo‘ljallangan edi. Bu tillarning asosiy kamchiliklari shu davrga hos bo‘lgan kompyuterlarning imkoniyatlari bilan bog‘liq bo‘lib, quyidagilardan iborat edi:



  • Foydalanuvchi uchun qulay bo‘lgan grafik interfeys yaratish imkoniyatining yo‘qligi yoki juda ham katta mehnat talab qilishi;

  • Yangi tipdagi ma’lumotlar faqat shartli ravishda aniqlanishi, masalan to‘plamlar, elementlari sanaladigan va chegaralangan tipdagi ma’lumotlarni erkin kiritish va chiqarishning iloji yo‘qligi;

  • 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 ishlashda imkoniyatlarning chegaralanganligi va h.k.

PENTIUM tipidagi kompyuterlarning dastlabki avlodlari paydo bo‘lishi bilan, ularning imkoniyatlarini hisobga olgan holda yuqorida aytib o‘tilgan kamchiliklarni bartaraf qilishga qaratilgan yangi dasturlash tillari yaratila boshlandi, eski dasturlash tillarining vizual variantlari ishlab chiqildi. Masalan, DELPHI, CI, VIZUAL BASIC, VIZUAL CI kabi tillar ana shular jumlasidan hisoblanadi.

Hozirgi kundagi hal qilinishi talab qilingan ko‘plab masalalar uchun DELPHI dasturlash tilining imkoniyatlari yetarli bo‘lib, uni universal dasturlash tili deb atash ham mumkin. Ma’lumki, DELPHI dasturlash tili yordamida Windows operatsion tizimida qo‘llash uchun hamda kompyuterning imkoniyatlaridan yanada to‘laroq foydalanish uchun eng sodda ilovadan tortib, to murakkab ma’lumotlar bazasi bilan ishlash uchun ilovalar, tarmoqlar, shu jumladan internet tarmog‘i bilan ishlash uchun ham dasturiy ta’minot yaratish mumkin. Bu o‘rinda shuni esga olish yetarliki, DELPHI dasturlash tili DELPHI dasturlash tilida yaratilgan. Shuning uchun, Oliy O‘quv Yurtlarida, nafaqat kompyuter bilan bog‘liq mutaxassisliklar uchun, balki boshqa yo‘nalish talablari uchun ham DELPHI dasturlash tilini o‘rganish maqsadga muvofiq hisoblanadi.

Ob’ektga yo‘naltirilgan dasturlash tillari, shu jumladan DELPHI dasturlash tili imkoniyatlari jihatidan, ayniqsa grafika va animatsion tizimlari juda keng va boy tillar hisoblangani uchun, uni birdaniga talabalarga o‘rgatish ancha murakkab vazifa. Shuning uchun bu vazifani qadam-baqadam, ma’lum bir bosqichlar asosida, «coddadan murakkabga» qarab olib borish tavsiya qilinadi. Biz bu jarayonni quyidagi bosqichlardan iborat bo‘lishini taklif qilamiz:


  • talabalarni EHM qurilmalari va ularning ishlash prinsiplari bilan tanishtirish;

  • masalalarning kompyuterda yechish bosqichlari;

  • algoritm tushunchasi va algoritmlarning yozish usulari;

  • Object Pascal dasturlash tili;

  • ob’ektga yo‘naltirilgan dasturlash texnologiyalari (DELPHI dasturlash tili misolida).

Biz yuqorida taklif qilgan bosqichlarning nazariy qismi Oliy va O‘rta Maxsus Ta’lim Vazirligi tomonidan Oliy O‘quv Yurtlarining amaliy matematika va AT mutaxassisliklariga «dasturlash asoslari» fani bo‘yicha 2006-2007 o‘quv yillari uchun taklif qilingan namunaviy o‘quv rejasidan mustahkam o‘rin olgan. Amaliy qismi esa shu mutaxassislik uchun «Kompyuter amaliyoti» fanining namunaviy dasturida o‘z aksini topgan.

I-bosqichda belgilangan vazifani biz «Tatbiqiy matematika va informatsion texnologiyalar faniga kirish» fani yordamida hal qilishimiz mumkin. Bu fan shartli ikki qismdan iborat bo‘lgani uchun, uning ishchi rejasini tuzishda avval informatsion texnologiyalar, so‘ngra tatbiqiy matematikaga oid materiallarni o‘qitish ko‘zda tutilishi kerak. Aks holda, talabalarga informatsion texnologiyalarning kompyuter, uning asosiy qurilmalari, ishlash prinsipi, sanoq sistemalari va axborotlarni kodlashga oid bo‘lgan ma’lumotlarini «dasturlash asoslari» faning ishchi rejasiga kiritishga to‘g‘ri kelib qoladi. Boshqacha aytganda, bir hil ma’lumotlarni ikki fan doirasida talabalarga o‘rgatishga to‘g‘ri kelib qoladi. Bir hil ma’lumotni ikki marta takrorlash talabalarning zerikishiga sabab bo‘lishi mumkin. Agar ehtiyoj paydo bo‘lsa, bunday materiallar bilan ishlash uchun «dasturlash asoslari» fanining o‘qituvchisi faqat mustaqil mashg‘ulotlardan foydalanishini tavsiya qilamiz.

II-IV- bosqichlar yuqorida ta’kidlaganimizdek, «dasturlash asoslari» va «kompyuter amaliyoti» fanlarining asosini tashkil etadi.

Ma’lumki, Oliy O‘quv Yurtlarining «Amaliy matematika va AT» mutaxassisligining talabalariga dastlabki to‘rtta semestr davomida «Dasturlash asoslari» hamda «kompyuter amaliyoti» fanlari o‘qitiladi. I-semestrda asosiy e’tiborni masalalarni EHM da yechishning bosqichlari, masalalarni yechish uchun algoritmlar qurishga qaratish tavsiya qilinadi. Bunda talabalar algoritmlarning barcha ko‘rinishlari bilan, ya’ni chiziqli, tarmoqlanuvchi, takrorlanuvchi hamda yordamchi algoritm tushunchalari bilan chuqur tanishtiriladi. Amaliy mashg‘ulotlarda esa shu mavzularga doir masalalar yechish bo‘yicha mustahkam bilim va ko‘nikmalar hosil qilinadi. Bu mavzularni talabalarga yetkazish uchun nazariy mashg‘ulotlarga 8 soat, amaliy mashg‘ulotlarga 10 soat, shuningdek «kompyuter amaliyoti» fani doirasidan laboratoriya mashg‘ulotlari uchun 10 soat vaqt ajratish yetarli deb o‘ylaymiz.

Garchi O‘zMU da 2006 yilda ishlab chiqilgan va Oliy va O‘rta Maxsus Ta’lim Vazirligi tomonidan taklif etilgan namunaviy dasturiga kiritilmagan bo‘lsa ham, qiymatlar jadvali tushunchasini talabalar ongiga yetkazishni tavsiya qilamiz. Chunki, sodda masalalar uchun talaba qiymatlar jadvalini tuzar ekan, o‘zi kelajakda ishlab chiqishi mumkin bo‘lgan dasturlarni kompyuter tomonidan qanday tartibda bajarilishi haqida tasavvurga ega bo‘ladi. Bu esa, shu talabalar ishlab chiqadigan dasturlar matnida mavjud bo‘lishi mumkin bo‘lgan turli xarakterga ega bo‘lgan hatoliklarni kamaytirishga olib kelishi tabiiy. Shuning uchun, qiymatlar jadvali tushunchasining nazariy asoslarini ma’ruza soatlarida talabalarga yetkazishlarini hisobga olib, o‘qituvchilar o‘z ishchi rejalariga hech bo‘lmaganda 2 soat amaliy mashg‘ulot ajratishlari tavsiya qilinadi. Talabalar bu tushuncha bo‘yicha olgan bilimlarini mustaqil mashg‘ulotlar hisobiga mustahkamlab olishlari mumkin.

«Dasturlash asoslari» fanining mantiqiy davomi bo‘lgan «Kompyuter amaliyoti» bo‘yicha laboratoriya ishlarida ham qiymatlar jadvali tushunchasini talabalar ongiga chuqur yetkazish mumkin. Shu fan doirasida ham, algoritm tushunchasi bilan bog‘liq dastlabki laboratoriya ishlarida, ayniqsa, talabalar hali biror dasturlash tilida dastur yozishni o‘rganganlaricha yo‘q, ammo individual topshiriqlar asosida taklif qilingan masalalar uchun algoritm yozishni o‘rgatish bosqichida qiymatlar jadvali tushunchasiga talabalar diqqatini jalb qilish mumkin. Yoki masalalar uchun algoritm yozayotgan talabadan masalaning yechish g‘oyasi va algoritmi, blok-sxemasiga qo‘shimcha ravishda bu algoritmlarning qiymatlar jadvalini ham to‘ldirishni talab qilish mumkin.

I-semestr uchun ajratilgan soatlarning qolgan qismini Object Pascal dasturlash tiliga bag‘ishlash mumkin. Ma’lumki, DELPHI dasturlash tili Object Pascal tilining ustiga qurilgan, boshqacha aytganda DELPHI dasturlash tilining muhiti Turbo Paskal dasturlash tilining kengaytirilgan varianti bo‘lgan Object Pascal dasturlash tilidan foydalanadi. Bu ikki tilning polimorfizm, inkapsulyatsiya, vorislik kabi o‘xshash tomonlari juda ham ko‘p. Bundan tashqari, qayta ishlanadigan DELPHI dasturlash tilidagi ma’lumotlarning tiplari ham Object Pascal tilidagi ma’lumotlarning mantiqiy kengaytirilgani deb qarash mumkin. Shuning uchun ham, Oliy O‘quv Yurtlari talabalariga DELPHI dasturlash tili o‘rgatishdan avval, boshlang‘ich bosqich sifatida Object Pascal tilini o‘rgatish tavsiya qilinadi. Bu tilni o‘rgatish asosan, oliy o‘quv yurtlarida I va II semestrlarda amalga oshiriladi. Biz «programmalash asoslari» fani bo‘yicha o‘z ishchi dasturimizni tuzishda Oliy va O‘rta Maxsus Ta’lim Vazirligining tavsiyalarini asos sifatida qabul qilib, qo‘shimcha ravishda fanning spesifik hususiyatlarini hisobga olgan holda tashkil qilsak, maqsadga muvofiq bo‘ladi.

Bizning ishchi dasturimizda «Programmalash asoslari» fanining namunaviy dasturida tilga olinmagan ikki mavzuni kiritishga qaror qildik. Bu mavzular «dasturlarni yozish usullari» hamda «Dasturlarni optimallashtirish» mavzularidir. Dasturchilar uchun bu ikki mavzuning o‘ta dolzarbligi va muhimligini izohlashning hojati yo‘q.

Ko‘p yillik tajribalarimiz shuni ko‘rsatdiki, «dasturlash asoslari» fani bo‘yicha amaliy mashg‘ulot soatlari yetarli emas. Har bir semestrda 40 soatdan amaliy mashg‘ulot rejalashtirilgan halos. Ko‘rib chiqiladigan nazariy mavzular doirasi esa anchagina keng. Shuning uchun, ham bir mavzu bo‘yicha 2-4 soatdan ortiq amaliy mashg‘ulot o‘tkazishning iloji yo‘q. Har bir 2 soatlik juftlik amaliy mashg‘ulot mobaynida o‘rtacha 4-6 ta masalani ko‘rish mumkin. 4 soatlik amaliy mashg‘ulotlar uchun bu miqdor 8-10 tani tashkil qiladi. Ma’lumki, dasturlash sohasida ikkita bir hil masala deyarli uchramaydi hamda har bir masalaga alohida yondoshish talab qilinadi. Buni hisobga olinsa, yuqorida aytilgan 8-10 masala juda ham kam. Masalalarni ko‘roq yechish uchun mustaqil mashg‘ulotlardan foydalanish ham ko‘zlangan samarani bermayapti. Buning asosiy sababi, birinchidan, dasturlashga doir o‘zbek tilidagi didaktik materiallar kam, ikkinchidan, yozilgan dasturlarning kompyuterlarda tekshirishni har doim ham imkoniyati mavjud emas, o‘qituvchilar tomonidan namuna tarzida ko‘rsatiladigan masalalar ham ko‘p emas. Shuning uchun biz II semestrning yakuniy qismida bir nechta mashg‘ulotlarni mavzuni hayotdan olingan turli mavzularga doir bo‘lgan tipik masalalarga bag‘ishlamoqdamiz. Natijada talabalar algoritm qurish va Object Pascal dasturlash tilining buyruqlar tizimi bo‘yicha olgan nazariy va amaliy bilimlarini yanada chuqurlashtirib, dasturlash bo‘yicha ko‘nikmalarini malaka darajasiga ko‘tarib, dasturlash sohasida olgan barcha nazariy bilimlarini amaliyotga tatbiq qilishni, hayotiy va ilmiy faoliyatlarida uchrab turadigan masalalar uchun dasturlash yozishni puxta o‘zlashtirishmoqdalar.

Biz ana shu bosqichlardan o‘tgan talabani ob’ektga yo‘naltirilgan dasturlash texnologiyalarini o‘rganishga tayyor deb hisoblashimiz mumkin. Dastur yozishning turli usullari bilan tanish, ularni optimallashtirish yo‘lida yetarlicha tasavvurga ega, ilmiy-hayotiy ko‘plab masalalarni dasturlash bo‘yicha yetarli ko‘nikma va malakaga ega bo‘lgan talabalarga endi bemalol Paskal tiliga nisbatan kuchliroq, imkoniyatlari kengroq, katta-katta sistemalarni dasturlashga mo‘ljallangan eng zamonaviy ob’ektga mo‘ljallangan dasturlash tillaridan birini, masalan, DELPHI dasturlash tilini taklif qilish mumkin. Aytish mumkinki, bu jarayon talabalar uchun ham qiziq tuyuladi. Birinchidan, Paskal dasturlash tilida bir necha o‘nlab buyruqlar yordamida hal qilinadigan masalani DELPHI tilidagi bittagina ko‘rsatma orqali hal qilish mumkin. Masalan, paskal tilida fayldan biror ma’lumotni qidirib topish uchun, bir nechta buyruqlarni yozish talab qilinsa, ob’ektga yo‘naltirilgan dasturlash tilida bu masalani bitta satrga joy bo‘ladigan SQL-so‘rovnomasi yordamida hal qilish mumkin. Ikkinchidan, Paskal tilida dastur yozilganda asosiy vaqt va e’tibor ularning matnini kompyuter xotirasiga kiritish va dasturni otladka qilishga sarflanadi, ob’ektga yo‘naltirilgan dasturlashda esa bu jarayonni tayyor shablon va eslatmalardan foydalanish, zarur ob’ektlarning hususiyatlarini o‘zgartirish evaziga yengillashtirish mumkin.

Pedagogikaning eng asosiy «soddadan murakkabga» prinsipi ostida tashkil qilib, murakkab va qiziqarli ob’ektga yo‘naltirilgan dasturlash tillarini o‘rgatish jarayonini sodda Paskal dasturlash tilini o‘rgatishdan boshlash bizning bir necha yillardan olib borayotgan tajribalarimizda yaxshi natija berib kolgan edi. Ammo, uning o‘rniga PASCAL tilining rivojlantirilgan OBJECT PASCAL varianti DEPLHI dasturlash tilini o‘rganishda yaxshigina ko‘prik bo‘lishini nazarda tutsak, I va II semestrlarda imkoniyatga qarab, OBJECT PASCAL dasturlash tilini o‘rgangan ma’qul.


Download 0.63 Mb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling