Reja: I. Oyd ning kelib chiqishi



Download 70,54 Kb.
bet1/2
Sana30.12.2021
Hajmi70,54 Kb.
#92792
  1   2
Bog'liq
MT mustaqil ish Jabborov A

214-19 guruh talabasi

Jabborov Abduraximning

Malumotlar tuzilmasi va algoritmlash

fanidan bajargan mustaqil ishi.

Reja:


I.OYD ning kelib chiqishi.

1.Protsedurali dasturlash tillari.

2.Modulli dasturlash tillar.

II.Obyektga yo'naltirilgan dasturlash.

1.OYD ning modulli dashturlashga bog'lanishi.

2.Classga oid turli atamalar va uning misoli.

3.Konstruktor va destructor.

III.Xulosa.



C++ tilida sinflar va obyektlar bilan ishlash Har qanday dasturning strukturasi tarmoqlanish va sikllar to’plamining kombinasiyasidan iborat bo’ladi. Obyektga mo’ljallangan yondoshuv bir kunda o’ylab topilgan emas. Uning paydo bo’lishi dasturiy ta’minotning tabiiy rivojidagi navbatdagi pog’ona xolos. Vaqt o’tishi bilan qaysi uslublar ishlash uchun qulay-u, qaysinisi noqulay ekanini aniqlash oson bo’lib bordi. Obyektga mo’ljallangan yondoshuv eng muvaffaqiyatli, vaqt sinovidan o’tgan uslublarni o’zida samarali mujassam etadi. Dastlab dasturlash anchayin boshqotirma ixtiro bo’lib, u dasturchilarga dasturlarni kommutasiya bloki orqali kompyuterning asosiy xotirasiga to’g’ridan-to’g’ri kiritish imkonii berdi. Dasturlar mashina tillarida ikkilik tasavvurda yozilar edi. Dasturlarni mashina tilida yozishda tez-tez xatolarga yo’l qo’yilar edi, buning ustiga ularni tuzilmalashtirish imkoni bo’lmagani tufayli kodni kuzatib borish amalda deyarli mumkin bo’lmagan hol edi. Bundan tashqari, mashina kodlaridagi dastur tushunish uchun g’oyat murakkab edi. Vaqt o’tishi bilan kompyuterlar tobora kengroq qo’llana boshladi hamda yuqoriroq darajadagi prosedura tillari paydo bo’ldi. Bularning dastlabkisi FORTRAN tili edi. Biroq obyektga mo’ljallangan yondoshuv rivojiga asosiy ta’sirni keyinroq paydo bo’lgan, masalan, ALGOL kabi prosedura tillari ko’rsatdi. Prosedura tillari dasturchiga axborotga ishlov berish dasturini pastroq darajadagi bir nechta proseduraga bo’lib tashlash imkonini beradi. Pastroq darajadagi bunday proseduralar dasturning umumiy tuzilmasini belgilab beradi. Ushbu proseduralarga izchil murojaatlar proseduralardan tashkil topgan dasturlarning bajarilishini boshqaradi. Dasturlashning bu yangi paradigmasi mashina tilida dasturlash paradigmasiga nisbatan ancha ilg’or bo’lib, unga tuzilmalashtirishning asosiy vositasi bo’lgan proseduralar qo’shilgan edi, Maydaroq funksiyalarni nafaqat tushunish, balki sozlash ham osonroq kechadi. Biroq, boshqa tomondan, prosedurali dasturlash koddan takroran foydalanish imkonini cheklab qo’yadi. Buning ustiga dasturchilar tez-tez «makaron» dasturlar ham yozib turishganki, bu dasturlarni bajarish likopdagi spagetti uyumini ajratishga o’xshab ketar edi. Va, nihoyat, shu narsa aniq bo’ldiki, prosedurali dasturlash usullari bilan dasturlarni ishlab chiqishda diqqatni ma’lumotlarga qaratishning o’zi muammolarni keltirib chiqarar ekan. Chunki ma’lumotlar va prosedura ajralgan, ma’lumotlar inkapsullanmagan. Bu nimaga olib keladi? Shunga olib keladiki, har bir prosedura ma’lumotlarni nima qilish kerakligini va ular qayerda joylashganini bilmog’i lozim bo’ladi. Agar prosedura o’zini yomon tusa-yu, ma’lumotlar ustidan noto’g’ri amallarni bajarsa, u ma’lumotlarni buzib qo’yishi mumkin. Har bir prosedura ma’lumotlarga kirish usullarini dasturlashi lozim bo’lganligi tufayli, ma’lumotlar taqdimotining o’zgarishi dasturning ushbu kirish amalga oshirilayotgan barcha o’rinlarining o’zgarishiga olib kelar edi. Shunday qilib, xatto eng kichik to’g’rilash ham butun dasturda qator o’zgarishlar sodir bo’lishiga olib kelar edi.

Modulli dasturlashda, masalan, Modula2 kabi tilda prosedurali dasturlashda topilgan ayrim kamchiliklarni bartaraf etishga urinib ko’rildi. Modulli dasturlash dasturni bir necha tarkibiy bo’laklarga, yoki, boshqacha qilib aytganda, modullarga bo’lib tashdlaydi. Agar prosedurali dasturlash ma’lumotlar va prosedsralarni bo’lib tashlasa, modulli dasturlash, undan farqli o’laroq, ularni birlashtiradi. Modul ma’lumotlarning o’zidan hamda ma’lumotlarga ishlov beradigan proseduralardan iborat. Dasturning boshqa qismlariga moduldan foydalanish kerak bo’lib qolsa, ular modul interfeysiga murojaat etib qo’ya qoladi. Modullar barcha ichki axborotni dasturning boshqa qismlarida yashiradi. Biroq modulli dasturlash ham kamchiliklardan holi emas. Modullar kengaymas bo’ladi, bu degani kodga bevosita kirishsiz hamda uni to’g’ridan-to’g’ri o’zgartirmay turib modulni qadamma-qadam uzgartirish mumkin emas. Bundan tashqari, bitta modulni ishlab chiqishda, uning funksiyalarini boshqasiga o’tkazmay (delegat qilmay) turib boshqasidan foydalanib bo’lmaydi. Yana garchi modulda turni belgilab bo’lsa-da, bir modul boshqasida belgilangan turdan foydalana olmaydi. Modulli va prosedurali dasturlash tillarida tuzilmalashtirilgan va tuzilmalashtirilmagan ma’lumotlar o’z «tur»iga ega. Biroq turni kengaytirish usuli, agar «agregatlash» deb ataluvchi usul yordamida boshqa turlarni yaratishni hisobga olmaganda, mavjud emas. Va, nihoyat, modulli dasturlash - bu yana proseduraga mo’ljallangan gibridli sxema bo’lib, unga amal qilishda dastur bir necha proseduralarga bo’linadi. Biroq endilikda proseduralar ishlov berilmagan ma’lumotlar ustida amallarni bajarmaydi, balki modullarni boshqaradi.



Obyektga mo’ljallangan dasturlash modulli dasturlashdan keyingi mantiqiy pog’onani egallaydi, u modulga nasldan-naslga o’tishni va polimorfizmni qo’shadi. Obyektga mo’ljallangan dasturlash dan foydalanr ekan, dasturchi dasturni bir qator oliy darajali obyektlarga bo’lish yo’li bilan tizimlashtiradi. Har bir obyekt hal qilinayotgan muammoning ma’lum bir tomonini modellashtiradi. Obyektga mo’ljallangan dasturlash endilikda dasturni bajarish jarayonini boshqarish uchun dasturchi diqqatini proseduralarni ketma-ketlikda chaqirib olish ro’yxatini tuzib o’tirishga qaratmaydi. Buning o’rniga obyektlar o’zaro aloqada bo’ladi. Obyektga mo’ljallangan dasturlash yordamida ishlab chiqilgan dastur hal qilinayotgan muammoning amaldagi modeli bo’lib xizmat qiladi. Dasturga obyektlar atamalari bilan ta’rif berish dasturiy ta’minotni ishlab chiqishning eng tushunarli usulidir. Obyektlar hamma narsani obyekt nima qilayotgani nuqtai nazaridan idrok etishga, ya’ni uning hatti-xarakatlarini hayolan modellashtirishga majbur qiladi. Shu tufayli obyektga yondoshishda u dasturning bajarilishi jarayonida qanday ishlatiladi degan nuqtai nazardan biroz e’tiborni chalg’itish mumkin. Shunday qilib, dasturni yozish jarayonida haqiqiy dunyoning tabiiy atamalaridan foydalanish mumkin. Dasturni alohida proseduralar va ma’lumotlar shaklida (kompyuter dunyosi atamalarida) qurish o’rniga, obyektlardan iborat dastur qurish mumkin. Obyektlar otlar, fe’llar va sifatlar yordamida haqiqiy dunyoni dasturda modellashtirishga imkon beradi. Joriy qilish (realizatsiya) hatti-xarakatlar qanday bajarilayotganini belgilaydi. Dasturlash atamalarida joriy qilish - bu dasturiy kod. Echilayotgan masala atamalari bilan fikrlab, joriy qilishning mayda-chuyda detallarida o’ralashib qolish havfidan qochish mumkin. Albatta, ayrim oliy darajadagi obyektlar kompyuter bilan aloqa qilishda past darajadagi, mashinaga mo’ljallangan usullardan foydalanishi lozim. Biroq obyekt bu aloqani tizimning boshqa qismlaridan izolyatsiya qiladi. Obyekt dastur konsturksiyasi bo’lib, unda holat va hatti-xarakat inkapsulalangan bo’ladi. Obyekt holati bu ichki obyekt o’zgaruvchanlari qiymatlarining yig’indisidir. Ichki o’zgaruvchan deb obyekt ichida saqlanadigan qiymatga aytiladi. Mohiyat e’tibori bilan, obyekt bu sinfning ekzemplyari (nusxalaridan biri)dir. Obyektga mo’ljallangan dasturlash, haqiqiy dunyo kabi, obyektlardan tashkil topadi. Obyektga mo’ljallangan sof dasturlash tilida, eng dastlabki, bazaviy, butun, mantiqiy turlardan tortib, to sinflarning murakkabroq nusxalarigacha, barchasi obyekt hisoblanadi. Biroq obyektga mo’ljallangan tillarning hammasi ham bu darajada chuqurlashib ketmagan. Ayrim tillarda (masalan, Java kabi) int va float ga o’xshash oddiy primitivlar obyekt sifatida olib qaralmaydi. Obyektga mo’ljallangan dasturlash obyektlari, haqiqiy olam obyektlari kabi, o’z xususiyatlari va xatti-harakatlari bo’yicha tasniflanadi. Biologiyada itlar, mushuklar, fillar va odamlar sut emizuvchilarga kiradi. Bu turli xildagi jonivorlarni umumiy xususiyatlar birlashtirib turadi. Xuddi shunday, dasturiy ta’minot olamida ham obyektlar bitta yoki bir nechta sinflarga mansub bo’ladi. Bitta sinfga mansub obyektlarga umumiy xususiyatlar xos bo’ladi. Boshqacha qilib aytganda, sinf obyektni tavsiflaydigan xususiyatlar va xulq-atvorlarni, shuningdek, va bu eng muhimidir, obyekt javob beradigan xabarlarni belgilab beradi. Biron bir obyekt boshqa obyektning xulq-atvoriga ta’sir ko’rsatgan vaqtda, u bu ta’sirni bevosita ko’rsatmaydi, balki undan qandaydir bir qo’shimcha axborotdan foydalangan holda o’zini-o’zi o’zgartirishni iltimos qiladi. Odatda bu «xabarni jo’natish» deb ataladi. Sinf umumiy xususiyatlar va xulq-atvorga ega bo’lgan obyektlarni birlashtiradi. Bitta sinfga mansub obyektlar bir xil xususiyatlarga ega bo’lib, bir xil xatti-harakat namoyon etadi. Sinflar shablon (qolip)ga o’xshaydi: ular obyektlarning ekzemplyarlari (nusxalari)ni tayyorlash uchun qo’llanadi. Belgilar - sinfning tashqaridan ko’rinib turgan xususiyatlari. Obyekt ichki o’zgaruvchiga bevosita kirishni taqdim etganda yoki usul yordamida qiymatni qaytargandagina, o’z belgilarini namoyon qilishi mumkin. Xulq-atvor - xabarga yoki holatning o’zgarishiga javoban obyekt tomonidan bajariladigan xatti-harakatlar. U obyekt nima qilayotganini bildiradi. Bir obyekt ikkinchi obyekt ustida xatti-harakatlar bajarib, uning xulq-atvoriga ta’sir ko’rsatishi mumkin. «Xatti-harakat» atamasi o’rniga «usulni chaqirish», «funksiyani chaqirish» yoki «xabarni uzatish» atamalari qo’llanadi. Muhimi bu atamalarning qaysi biri qo’llanayotganida emas, albatta, muhimi bu xatti-harakatlar obyekt xulq-atvorini namoyon qilishga da’vat etishidadir. Obyektlar o’rtasida aloqa obyektga mo’ljallangan dasturlashning muhim tarkibiy qismidir. Obyektlar o’zaro aloqasining ikkita asosiy usuli mavjuddir. Birinchi usul: obyektlar biri ikkinchisidan mustaqil ravishda mavjud bo’ladi. Agar alohida obyektlarga o’zaro aloqa kerak bo’lib qolsa, ular bir-birlariga xabar jo’natadi. Obyektlar bir-birlari bilan xabarlar yordamida aloqa qiladi. Xabar olgan obyekt ma’lum xatti-harakatlarni bajaradi. Xabar uzatish bu obyekt holatini o’zgartirish maqsadida uslubni chaqirib olish yoki xulq-atvor modellaridan birini qo’llashning o’zginasidir. Ikkinchi usul: obyekt tarkibida boshqa obyektlar bo’lishi mumkin. Xuddi Obyektga mo’ljallangan dasturlashda bo’lganidek, dastur obyektlardan tashkil topganidek, obyektlar ham, o’z navbatida, agregatsiya yordamida boshqa obyektlardan jamlanishi mumkin. Ushbu obyektlarning har bittasida uslub va belgilarga ega bo’lgan interfeys mavjud bo’ladi. Xabar - obyektga mo’ljallangan yondoshuvning muhim tushunchasi. Xabarlar mexanizmi tufayli obyektlar o’z mustaqilligini saqlab qolishi mumkin. Boshqa biron obyektga xabar jo’natayotgan obyekt uchun xabar olgan obyekt talabdagi xatti-harakatni qanday bajarishi unchalik muhim emas. Unga xatti-harakat bajarilganligining o’zi muhimdir. Obyekt - mavhum (abstrakt) mohiyat bo‘lib, u bizni o‘rab turgan haqiqiy olamning tavsiflariga ega. Obyektlarni yaratish va ular ustida manipulyatsiyalar olib borish - C++tilining qandaydir alohida imtiyozi emas, balki obyektlarning tavsifi va ular ustida o‘tkaziladigan operatsiyalarni kodli konstruktsiyalarda o‘zida mujassamlantiradigan dasturlash metodologiyasi (uslubiyoti) ning natijasidir. Dasturning har bir obyekti, har qanday haqiqiy obyekt kabi, o‘z atributlari va o‘ziga xos xulq-atvori bilan ajralib turadi. Obyektlarni turli kategoriyalarga ko‘ra tasniflash mumkin: masalan, mening «Casio» raqamli qo‘l soatim soatlar sinfiga mansub. Soatlarning dasturiy realizatsiyasi (ishlatilishi), standart holat sifatida, sizning kompyuteringizning operatsiya tizimi tarkibiga kiradi. Har bir sinf sinflar tabaqalanishida (ierarxiyasida) ma’lum o‘rinni egallaydi. Masalan, barcha soatlar vaqtni o‘lchash asboblari sinfiga (tabaqalanishda ancha yuqori turgan) mansub, soatlar sinfining o‘zi esa xuddi shu mavzudagi ko‘plab hosila variatsiyalarni o‘z ichiga oladi. Shunday qilib, har qanday sinf obyektlarning biron-bir kategoriyasini aniqlaydi, har qanday obyekt esa biron-bir sinf ekzemplyaridir.

Obyektga mo‘ljallangan dasturlash (OMD) - bu dasturchining asosiy diqqatini obyektlarni ishlatish tafsilotlariga emas, balki obyektlar o‘rtasidagi aloqalarga qaratadigan metodika. Inkapsulatsiyalash - ma’lumotlarning va shu ma’lumotlar ustida ish olib boradigan kodlarning bitta obyektda birlashtirilishi. OMD atamachiligida ma’lumotlar obyekt ma’lumotlari a’zolari (data members) deb, kodlar obyektli metodlar yoki funktsiya-a’zolar (methods, member functions) deb ataladi. Inkapsulatsiyalash obyektni tashqi muhitdan maksimal darajada ajratish (izolyatsiya qilish) imkonini beradi. Bu ishlab chiqilayotgan dasturlarning ishonchliligini sezilarli darajada oshiradi, chunki obyektda mujassamlangan (lokallashtirilgan) funktsiyalar dastur bilan nisbatan kam xajmdagi ma’lumotlarni almashinadi, buning ustiga ushbu ma’lumotlarning miqdori va turi odatda sinchkovlik bilan nazorat qilinadi. Natijada obyektda inkapsulalangan funktsiyalar va ma’lumotlarning almashtirib qo‘yilishi yoki o‘zgartirilishi (moditsikatsiya qilinishi) umuman olganda dastur uchun yaxshi kuzatib bo‘lmaydigan oqibatlarni olib kelmaydi (dasturlarning himoyalanganligini oshirish maqsadida OMD larda global o‘zgaruvchilar deyarli qo‘llanmaydi). Inkapsulatsiyalashning yana bir muhim natijalaridan biri shundaki, bunda obyektlar almashinuvi, ularning bir dasturdan ikkinchisiga o‘tkazilishi osonlashadi. OMD da inkapsulatsiyalash tamoyilining soddaligi va qulayligi dasturchilarni C++ tarkibiga kiruvchi kutubxonalarni kengaytirishga rag‘batlantiradi. Sinflar, komponentlar va obyektlar sinf jismoniy mohiyatga ega emas, tuzilmaning e’lon qilinishi uning eng yaqin analogiyasidir. Sinf obyektni yaratish uchun qo‘llangandagina, xotira ajralib chiqadi. Bu jarayon ham sinf nusxasi (class instance) ni yaratish deb ataladi. C++tilining har qanday obyekti bir xil atributlarga, shuningdek ushbu sinfning boshqa obyektlari bilan funktsionallikka ega. O‘z sinflarini yaratish hamda ushbu sinflar obyektlarining xulq-atvori uchun to‘liq mas’uliyat dasturchi zimmasiga yuklanadi. Biron-bir muhitda ishlar ekan, dasturchi standar sinflarning kattagina kutubxonasi (masalan, C++ standart kutubxonasi) ga kirish huquqiga ega bo‘ladi. Odatda, obyekt qandaydir unikal holatda mavjud bo‘lib, bu holat obyekt atributlarining joriy qiymatlari bilan belgilanadi. Obyekt sinfining funktsionalligi ushbu sinf ekzemplyari (nusxasi) ustida o‘tkaziladigan operatsiyalar bilan belgilanadi. C++tilida sinfni aniqlash uchun, ma’lumotlar a’zolari ustida ish olib boradigan hamda obyektlarning xulq-atvorini belgilaydigan ma’lumotlar a’zolari va metodlarini inkapsulatsiyalash talab qilinadi. Yuqoridagi misolimizga qaytib, shuni ta’kidlab o‘tamizki, «Casio» soatining suyuq kristalli displeyi ushbu obyektning ma’lumotlar a’zosi bo‘ladi, boshqarish tugmachalari esa obyektli metodlar bo‘ladi. Soat tugmachalarini bosib, displeyda vaqtni o‘rnatish ishlarini olib borish mumkin, ya’ni OMD atamalarini qo‘llaydigan bo‘lsak, metodlar, ma’lumotlar a’zolarini o‘zgartirib, obyekt holatini modifikatsiya qiladi. Metod tushunchasi odatda komponentli sinflar tarkibida qo‘llanadi va tashqi tomondan oddiy sinfning funktsiya-a’zo atamasidan farq qilmaydi.

Quyida obyektga eng sodda misol keltirilgan:

class person

{


char name[20];

int id;

public:

void getdetails(){}

};
int main()

{


person p1; // p1 is a object

}

Bunda Person klasidan p1 nomli obyekt olingan.


Endi esa inkapsulatsiyaga misol keltiramiz:
// public va private C++ Class da
#include

using namespace std;
class Room {
private:

double length;

double breadth;

double height;
public:
// bu funksiya private qilingan o'zgaruvchilarga murojat qilish uchun

void getData(double len, double brth, double hgt) {

length = len;

breadth = brth;

height = hgt;

}
double calculateArea() {

return length * breadth;

}
double calculateVolume() {

return length * breadth * height;

}

};
int main() {
// Room klasidan obyekt olish

Room room1;
// room1 obyektiga qiymat qaytarish uchun public qilingan metoddan foydalanish

room1.getData(42.5, 30.8, 19.2);
cout << "Area of Room = " << room1.calculateArea() << endl;

cout << "Volume of Room = " << room1.calculateVolume() << endl;
return 0;

}

Ko'rib turganimizdek bir necha metodni ishga solib obyektning o'lchamlarini hisobladik.

Bu yerda class maydonlari private qilingan ya'ni inkapsullangan. Bunda bosh funksiya ichida obyekt maydonlariga to'g'ridan to'g'ri murojaatni cheklash uchun qilingan. Maydonlarga qiymat kiritish uchun public metod yaratilgan.

Bu bizga OYD ning dasturlashni hayotga tadbiq etishning osonlashtirganini ko'rsatadi.

Classda yana bir muhim hossa borki uni bilmasdan turib OYD ni to'liq o'rganish mumkin emas. Bu "vorislik". Bunda bola class ota classning maydonlari yoki metod va funksiyalarini meros qilib oladi. Ya'ni undan foydalana oladi. Bunga misol ko'ramiz.

Bunda inkapsulatsiyaning 3 xil ko'rinishini ko'rshingiz mumkin. Vorislik qilayotganda ham classlarni inkapsullash mumkin ekan.

Butun sonli o’zgaruvchini aniqlashning ikki xil yo’li bor. Birinchisi, oldin o’zgaruvchini aniqlash, keyin esa unga biror bir qiymat o’zlashtirishdir. Masalan, int Ogirlik; // o’zgaruvchini aniqlash

........ // bu yerda boshqa ifodalar bor

Og'irlik=7; // o’zgaruvchiga qiymat o’zlashtiramiz.

Ikkinchisi, o’zgaruvchi aniqlanishi bilan birga unga darhol qiymat o’zlashtiriladi, masalan:

int Ogirlik=7; //o’zgaruvchini e’lon qilamiz va unga qiymat o’zlashtiramiz.

3 Samolyot Nomi, turi, yonilg’i sarfi

4 Kompyuter Turi, protsessor, Tezkor xotira sig’imi

5 Xayvonlar Turi, nomi, oilasi

6 O’simliklar Turi, nomi, oilasi

7 Televizor Nomi, diagonal o’lchami, modeli

8 Telefon Brendi, modeli, ekran o’lchami, xotira xajmi

9 Kitob Nomi, avtor, varaklar soni

10 Mebel Turi, eni, bo’yi

Qiymat berish amali o’zgaruvchi aniqlanishi bilan unga boshlang’ich qiymat o’zlashtirilishini anglatadi. Keyinchalik, bu o’zlashtirilgan qiymatni o’zgartirishingiz ham mumkin. Sinfning o’zgaruvchi–a’zosiga qanday qiymat o’zlashtirildi? Buning uchun sinfda konstruktor deb ataluvchi maxsus funksiya – a’zo ishlatiladi. Zaruriy vaqtda konstruktor bir nechta parametrni qabul qiladi. Lekin hech qanday tipdagi qiymat qaytarmaydi. Konstruktor – bu sinf nomi bilan ustma – ust tushadigan sinf metodidir. Sinfda konstruktorni e’lon qilinishi bilan destruktorlar ham aniqlanishi lozim. Agarda konstruktor sinf obyektini tuzish va uning o’zgaruvchi – a’zolariga qiymat berish vazifasini bajarsa, destruktor mavjud obyektning xotiradan o’chiradi. Destruktorlar sinf nomi oldiga tilda (~) belgisini qo’yish orqali aniqlanadi. Destruktorlar hech qanday argument qabul qilmaydi va hech qanday qiymat qaytarmaydi. Mushuk sinfining destruktori quyidagicha ko’rinishda aniqlanadi:

~Mushuk()


Download 70,54 Kb.

Do'stlaringiz bilan baham:
  1   2




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish