O ZBEKISTON RESPUBLIKASI OLIY VA O RTA-MAXSUS TA LIM VAZIRLIGI ALISHER NAVOIY NOMIDAGI SAMARQAND DAVLAT UNIVERSITETI MEXANIKA-MATEMATIKA FAKULTETI

Similar documents
AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI FARG ONA FILIALI

O ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI

TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI AXBOROT TEXNOLOGIYALARI FAKULTETI MULTIMEDIA TEXNOLOGIYALARI KAFEDRASI

O ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI

O ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI

MAXSUS EFFEKTLAR KOMPYUTER GRAFIKASI VA DIZAYN FANIDAN

1. Operatsion tizim (OT) tushunchasi 2. Operatsion tizimlarning rivojlanish bosqichlari. 3. Windows operatsion tizimi 4. Mobil operatsion tizimlar

BITIRUV MALAKAVIY ISHI

O ZBEKISTON RESPUBLIKASI ALOQA, AXBOROTLASHTIRISH VA TELEKOMMUNIKATSIYA TEXNOLOGIYALARI DAVLAT QO MITASI

O ZBЕKISTОN RЕSPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI

O ZBEKISTON RESPUBLIKASI OLIY VA O RTA MAXSUS TA LIM VAZIRLIGI

O ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI

Amaliy matematika va informatika ta lim yo nalishi bo yicha bakalavr darajasini olish uchun. Oromov Akmal Ahmad o g lining

«Veb ilovalarni yaratish» fanidan tajriba ishlarini bajarish bo yicha

O'zbekiston Respublikasi Aloqa,Axborotlashtirish va Telekommunikatsiya Texnologiyalari Davlat Qo'mitasi. Toshkent Axborot Texnologiyalari Universiteti

AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI FARG ONA FILIALI

DJURAYEV SHERZOD SOBIRJONOVICH

BAKALAVR BITIRUV MALAKAVIY ISHI

O zbekiston Respublikasi oliy va o rta maxsus ta`lim vazirligi. Buxoro oziq-ovqat va engil sanoat texnologiyasi instituti

O ZBEKISTON ALOQA, AXBOROTLASHTIRISH VA TELEKOMUNIKATSIYA TEXNOLOGIYALARI DAVLAT QO MITASI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI

WEB DASTURLASH. fanidan MA RUZALAR MATNI

Sh.A. Nazirov, F.M. Nuraliev. DHTML yordamida Web-sahifa. Dasturlash II fanidan dasturlashga yo naltirilgan IKT tizimilari muttahasislari uchun

REJA KIRISH ASOSIY QISM I BOB Android operatsion tizimi 1.1 Android OT tarixi 1.2 Android OTning hayotimizda tutgan o rni 1.

BAKALAVR BITIRUV ISHI

O`ZBЕKISTОN RЕSPUBLIKАSI ОLIY VА O`RTА MАХSUS TА LIM VАZIRLIGI АNDIJОN MАSHINАSОZLIK INSTITUTI

O`ZBEKISTON ALOQA VA AXBOROTLASHTIRISH AGENTLIGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI FARG`ONA FILIALI. Axborot texnologiyalari fakul`teti

upakovkalari dizayni (Artel, Uztelecom, Roison) mahsulotlarini yaratish.

YM. TIZIMLI DASTURIY TA'MINOT. M.M.Aliyev,E.T.Toxirov. Uslubiy qo'uanma. Toshl en ~---

O ZBEKISTON RESPUBLIKASI OLIY VA O RTA TA LIM VAZIRLIGI. TOSHKENT TO QIMACHILIK VA YENGIL SANOAT INSTITUTI. INFORMATIKA VA AT kafedrasi KURS ISHI

O`ZBEKISTОN RESPUBLIKASI ОLIY VA O`RTA MAXSUS TA`LIM VAZIRLIGI NAMANGAN MUHANDISLIK TEXNОLОGIYA INSTITUTI «KIMIYO-TEXNOLOGIYA» FAKULTETI

O zbеkiston Rеspublikasi Oliy va o rta maxsus ta lim vazirligi. Namangan muhandislik pеdagogika instituti. Kasb ta`limi fakultеti

МЕХАНИКА МАТЕМАТИКА ФАКУЛЬТЕТИ

BAKALAVR BITIRUV ISHI

O ZBEKISTON RESPUBLIKASI OLIY VA O RTA TA LIM VAZIRLIGI QARSHI MUHANDISLIK IQTISODIYOT INSTITUTI. AVTOMATIKA VA AXBOROT TEXNOLOGIYALARI kafedrasi

O ZBЕKISTON RЕSPUBLIKASI ALOQA, AXBOROTLASHTIRISH VA TЕLЕKOMMUNIKATSIYA TЕXNOLOGIYALARI DAVLAT QO MITASI TOSHKЕNT AXBOROT TЕXNOLOGIYALARI UNIVЕRSITЕTI

O ZBEKISTON RESPUBLIKASI OLIY VA O RTA MAXSUS TA LIM VAZIRLIGI TERMIZ DAVLAT UNIVERSITETI FIZIKA MATEMATIKA FAKULTETI. Mengliev Sh.A.

MUNDARIJA. ANNOTATSIYA... 2 KIRISH... 4 I BOB. ANALITIK QISM... 7

O ZBEKISTON RESPUBLIKASI OLIY VA O RTA MAXSUS TA LIM VAZIRLIGI KASB-HUNAR SIRDARYO VILOYATI O RTA MAXSUS KASB- HUNAR TA LIMI BOSHQARMASI

BITIRUV MALAKAVIY ISHI

O ZBEKISTON RESPUBLIKASI ALOQA, AXBOROTLASHTIRISH VA TELEKOMMUNIKATSIYA TEXNOLOGIYALARI DAVLAT QO MITASI

O'rnatish menyusiga kirish

O ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARNI RIVOJLANTIRISH VAZIRLIGI

O ZBEKISTON RESPUBLIKASI ALOQA, AXBOROTLASHTIRISH VA TELEKOMMUNIKATSIYA TEXNOLOGIYALARI DAVLAT QO MITASI

INFORMATIKA VA AXBOROT TEXNOLOGIYALARI yo nalishi

TOSHKENT AXBROT TEXNALOGIYALARI UNIVERSITETI QARSHI FILIALI KOPYUTER INJINERINGI FAKULTETI

O ZBEKISTON RESPUBLIKASI ALOQA, AXBOROTLASHTIRISH VA TELEKOMMUNIKATSIYA TEXNOLOGIYALARI DAVLAT QO`MITASI

O`ZBEKISTON RESPUBLIKASI OLIY VA O`RTA MAXSUS TA'LIM VAZIRLIGI O`RTA MAXSUS, KASB-HUNAR TA'LIMI MARKAZI

Mundarija. 1. Html tilida 3 xil turdagi onlayn test (MS Word dasturida) Paskal dasturlash tilida yaratilgan 3 ta test 11

O ZBEKISTON RESPUBLIKASI OLIY VA O RTA MAXSUS TA LIM VAZIRLIGI NIZOMIY NOMIDAGI TOSHKENT DAVLAT PEDAGOGIKA UNIVERSITETI MAGISTRATURA BO LIMI

O ZBEKISTONRESPUBLIKASIALOQAAXBOROTLASHTIRISHVATEL EKOMMUNIKATSIYATEXNOLOGIYALARIDAVLATQO MITASITOSH KENTAXBOROTTEXNOLOGIYALARIUNIVERSITETI

O ZBEKISTON RESPUBLIKASI OLIY VA O RTA MAXSUS TA LIM VAZIRLIGI NIZOMIY NOMIDAGI TOSHKENT DAVLAT PEDAGOGIKAUNIVERSITETI

KURS ISHI. MFO'M fanidan. Mavzu: Internet tamoyillari fanini pedagogik va axborot texnologiyalari yordamida o`qitish metodikasi.

TABIIY FANLAR FAKULTETI KIMYO BO`LIMI

O ZBEKISTON RESPUBLIKASI OLIY VA O RTA MAXSUS TA LIM VAZIRLIGI. MIRZO ULUG BEK nomidagi SAMARQAND DAVLAT ARXITEKTURA QURILISH INSTITUTI

ALGORITM ASOSLARI VA ALGORITMIK TILLAR

O`zbekistan Respublikasi haliq bilimlendiriw wa`zirligi. A`jiniyaz atindagi nokis ma`mleketlik pedagogikaliq instituti.

O ZBEKISTON RESPUBLIKASI OLIY VA O RTA MAXSUS TA LIM VAZIRLIGI NIZOMIY NOMIDAGI TOSHKENT DAVLAT PEDAGOGIKA UNIVERSITITUTI

Internet tarmog ida taqiqlangan himoyalash (filtr) vositalarini ishlab chiqish

Mundarija: Ошибка! Закладка не определена. Ошибка! Закладка не определена.

Dasturlashga doir masalalar yechish. Uslubiy qo llanma

O ZBEKISTON RESPUBLIKASI OLIY VA O RTA MAXSUS TA LIM VAZIRLIGI NAMANGAN MUHANDISLIK - TEXNOLOGIYA INSTITUTI. «Yengil sanoat texnologiyasi» fakulteti

Chapter 1: Why Program? Computers and Programming. Why Program?

CSI33 Data Structures

Why VC++ instead of Dev C++?

Scientific Computing

EC 413 Computer Organization

6.096 Introduction to C++ January (IAP) 2009

Annales UMCS Informatica AI 1 (2003) UMCS. Concurrent programming and futures. Andrzej Daniluk

Overview. - General Data Types - Categories of Words. - Define Before Use. - The Three S s. - End of Statement - My First Program

Basic program The following is a basic program in C++; Basic C++ Source Code Compiler Object Code Linker (with libraries) Executable

Chapter 1 INTRODUCTION

The C Programming Language

Character Set. The character set of C represents alphabet, digit or any symbol used to represent information. Digits 0, 1, 2, 3, 9

CS152 Programming Language Paradigms Prof. Tom Austin, Fall Syntax & Semantics, and Language Design Criteria

Programming Fundamentals (CS 302 ) Dr. Ihsan Ullah. Lecturer Department of Computer Science & IT University of Balochistan

DHA Suffa University CS 103 Object Oriented Programming Fall 2015 Lab #01: Introduction to C++

ANSI C. Data Analysis in Geophysics Demián D. Gómez November 2013

Object-Oriented Programming

edunepal_info

assembler Machine Code Object Files linker Executable File

COMPILER DESIGN LECTURE NOTES

C and C++ I. Spring 2014 Carola Wenk

PROGRAMMING FUNDAMENTALS

Exercise 1.1 Hello world

Welcome to MCS 360. content expectations. using g++ input and output streams the namespace std. Euclid s algorithm the while and do-while statements

Lecture content. Course goals. Course Introduction. TDDA69 Data and Program Structure Introduction Cyrille Berger

IDE: Integrated Development Environment

Chapter 1: Why Program? Main Hardware Component Categories 8/23/2014. Main Hardware Component Categories: Why Program?

Language Translation, History. CS152. Chris Pollett. Sep. 3, 2008.

UEE1302 (1102) F10: Introduction to Computers and Programming

CSCE 110 PROGRAMMING FUNDAMENTALS

Computational Physics Operating systems

MA400: Financial Mathematics

EL2310 Scientific Programming

Chapter 1: Introduction to Computers and Programming

Lexical and Syntactic Analysis

Chapter 1: Introduction

Functions & Memory Maps Review C Programming Language

Character Functions & Manipulators Arrays in C++ CS 16: Solving Problems with Computers I Lecture #10

LOGO BASIC ELEMENTS OF A COMPUTER PROGRAM

Transcription:

O ZBEKISTON RESPUBLIKASI OLIY VA O RTA-MAXSUS TA LIM VAZIRLIGI ALISHER NAVOIY NOMIDAGI SAMARQAND DAVLAT UNIVERSITETI MEXANIKA-MATEMATIKA FAKULTETI AMALIY MATEMATIKA VA INFORMATIKA BO LIMI 5110700-INFORMATIKA O QITISH METODIKASI YO NALISHI Mavzu: C++ tili kompilyatorlari va ularning xususiyatlari 206 guruh talabasi : Umirzoqov A Kurs ishi rahbari: Nazarov F SAMARQAND-2016

Mundarija Kirish. I. C++ tilining barcha kompilyatorlari imkonyatlari; 1. C++ Builder 6 kompilyator haqida. 2. DEV C++ kompilyator haqida malumot. 3. CodeBlocks kompilyator imkonyatlari. II. C++ tilining kompilyatorlarida dasturlar tuzish; 4. C++ Builder 6 dasturlar tuzish. 5. CodeBlocks kompilyator dasturlar tuzish. III. Xulosa. IV.Foydalanilgan adabiyotlar ro yhati

Kirish. Hozirgi kunda respublikamizdagi texnika oliy o quv yurtlarida Informatika va axborot texnologiyalari yo nalishi va mutaxassisliklariga turli xil dasturlash tillarini o rgatish mo ljallangan. Bizga ma lumki, dasturlash tillarining yuzdan ortiq ko rinishlari mavjud, lekin qo llanilishi ko lamiga qarab C/C++ va C# dasturlash tillari yuqori dasturlash sinfiga mansubdir. Mutaxassislarning fikriga ko ra C++ dasturlash tili Assembler dasturlash tiliga eng yaqin bo lib, tezlik jihatidan 10 % ortda qolar ekan. Keyingi yillarda amaliy dasturchilarga juda ko p integratsion dastur tuzish muhitlari taklif etilmoqda. Bu muhitlar u yoki bu imkoniyatlari bilan bir biridan farq qiladi. Aksariyat dasturlashtirish muhitlarining fundamental asosi C/C++ tiliga borib taqaladi. Ushbu kurs ishida hozirgi kunda kompyuterda berilgan funksiyalarni grafigini va har xil ko rinishdagi shakllarni chizish va ularni aniq koordinatalarini aniqlash, ekranni grafik rejimga o tkazish va undagi mavjud piksel va ranglardan foydalanish kabi vazifalarni o rganishga olib keladi. Xozirgi vaqtga kelib komp`yuter olamida ko plab dasturlash tillari mavjud. Paskal, C++ va boshqa dasturlash tillaridir. C++ dasturlash tili universal tildir. U UNIX sistemasi bilan bog`langan bo`lib, bu sistemada ishlatiladigan bir qancha dasturlar C++ tilida yozilgan. Paskal tili 1969 yil N. Virt tomonidan yaratilgan bo lib, keyinchalik amerikaning Borland firmasi tomonidan qayta ishlandi va uni Turbo Pascal deb nomlangan. C++ Denis Ritchi tomonidan 1972 -yili UNIX tipidagi op erasion sistemalarini yaratish uchun loyihalashtirilgan. Turbo Pascal ni qayta ishlash natijasida ob'ektli dasturlash yo lga qo yildi va 1995 yilda Borland kompaniyasi guruxi dastur tuzuvchilari Chack va Denny tomonidan Windows uchun mo ljallangan dasturlash muxiti Borland Delphi dasturlash vositasi yaratildi. Borland C++ va Delphi dasturlash tili Windows uchun mo ljallangan bo lib, uning birinchi versiyasi Windows operatsion sistema qobig ida ishlagan. Borland C++ va Delphi dasturlash tili bu dasturlarni qayta ishlash muxiti bo lib, Windows operatsion sistemasida ishlaydi. Unda

ob'ektli dasturlash tillari bo lgan Object mujassamlashgan. Borland C++ va Delphi vizual proektlar, turli xolat protseduralarini qayta ishlash va dasturlarni qayta ishlashda vaqtdan yutish va boshqalarni o z ichiga oladi. Men ham ushbu kurs ishim davomida C++ tilida matn muxarriri bilan ishlovchi obektlarga mo ljallangan dasturni tuzib chiqmoqchiman. Ushbu dastur kichik dastur bo lsada kelajakda boshqa dasturlar tuzishim uchun fundament vazifasini bajarishga harakat qilaman. Chunki hozirgi kunda matnlar bilan ishlash uchun katta dasturlar paketini o rnatish, agar o zida ishlaydigan dasturni ishlatsak o zimizni sof tilda emas boshqa davlat tillarida ishlashi noqulayliliklar tugdiradi. Shuning uchun kichik matn muxarrirlari bilan ishlovchi dastur ishlab chiqaramiz Bu dasturni tuzib nafaqat yozishni amalga oshirish balki kichik matnlar ustida taxrirlash va dasturni ishlashni bilmaydigan foydalanuvchi ham bir ko rinishda tushinadigan tushinarli, bejirm ko rinishga ega dastur tuzmoqchiman. Men bu dasturni tuzib obektlar yaratishni va ular orqali shunga o xshash yana boshqa obektlar yaratmoqchiman bu dasturda ishlashimga yana bir sabab boshqa obektlarga mo ljallanmagan dasturlash tillarida faqat masalani matematik dasturi tuzib natija olinadi bunda yani C++ Builderda esa boshqa imkoniyatlar va kampanentalar bilan ham ishlashni o rganmochimiz.

I. C++ tilining barcha kompilyatorlari imkonyatlari; 1.1 C++ Builder 6 kompilyator haqida. Ixtiyoriy dasturlashda minimal (dasturlashdan maktab kursi doirasidagi ) bilmga ega foydalanuvchi ham muhitni tezda o rgana oladi. Bu muhitning soddaligi professional dasturchi boiishga xalaqit qilmaydi. Borland C + + Builder 6 dasturlash muhitlari ichida eng sodda muhitlardan biri hisoblanadi. Bir nechta mashqlarni mustaqil bajargandan keyin, muhitdan kishining ajralgisi kelmaydi. Umuman, har qanday yangi texnologivani o zlashtirayotganda bilgan. oigangan bilimlarni amalda tez-tez takrorlab turmasa, xotirada saqlab qolishning iloji bo lmaydi. Yangi tushunchani takrorlab, xotiraga joylash va uni tadbiq qilishni bilgandan keyingina, xotirada mustahkam joylashadi. Har bir dasturlash tili, muhiti o zidan oldingi tillarning mukammal tomonlarini o zida mujassamlashtiradi. Shunga ko'ra. bitta zamonaviy tilni mukammal bilgan dasturchi ikkinchi tilni katta kuch va vaqt sariflamasdan o rgana oladi. Dasturchilar tillarni o rganayotganda birini ikkinchisi bilan solishtirib o rganishadi. Masalan, OYD zamonaviy dasturlash tillari umumiy qoidalarga bo ysunadi. OYDda har bir dasturlash elementi obyekt sifatida qaraladi. Bunda obyekt, barcha hollarda. maium umumiy qoidalarga va xususiy qoidalarga ega boiadi. Bu obyektlar oynalar, tugmalar, konteynerlar va Canvas lar ko rinishida boiishi mumkin. Bunda har bir ilova kichik qismlarga ajratiladi, va vakunida bu qismlar birlashtiriladi. Borland C + + Builder 6 muhitida Windows ilovalar yaratish juda oson. OYDda qadam-baqadam alohida uncha katta boimagan dasturlarni funksiya metodlari amalga oshirsa, harakatlanuvchi jarayonlarni qayta ishlash

Borland C + + Builder 6 interfeysi. uchun hodisa amalidan, chaqiriluvchi obyektlarni tugmalar va oynalar bilan ifodalavdi. Dasturchilar tilida bu interfeysga tez qayta ishlovchi muhit RAD (Rapid Application Development) deb ataladi. Bunga sabab, bu muhitda dastur, ilova tuzish va uning dizaynini qurishda tayyor obyektlar va kutubxonada mavjud metodlardan foydalanish mumkin. Masalan, kompyuter avtomatik ravishda hodisani qayta ishlovchi funksiya dasturi matnini hosil qiladi. Ilova, bu - tayyor bajariluvchi fayl hosil qilish uchun kerak bo ladigan barcha fayllar to plamidir. Masalan, ilova tarkibiga dastur matni, tovush fayllari, ikonka rasmlari va shu kabi, ilovaga kerakli fayllar kirishi mumkin. Bunda har bir ilova uchun alohida papka hosil qilish maqsadga muvofiq sanaladi. Chunki ilovani boshqa kompyuterga o tkazmoqchi bo isak va fayllari, ikonka rasmlari va shu kabi, ilovaga kerakli fayllar kirishi mumkin. Bunda har bir ilova uchun alohida papka hosil qilish maqsadga muvofiq sanaladi. Chunki ilovani boshqa kompyuterga o tkazmoqchi bo lsak va

Interfeysning asosiy oynasi. papkada saqlamagan boisak, ularni yig ishimizga to'g'ri keladi. Bunda interfeysning o zi ilovani saqlashni talab qiladi. ammo papka hosil qilishni o'zimiz bilishimiz kerak. Interfeysning asosiy oynasi sarlavha oynasida ilova norm, ilovani tiklash, berkitish tugmalari joylashgan. Sarlavha nomi tagida asosiy menyu joylashgan. Bu menyu orqali muhitning barcha funksiya va komandalarim ishga tushirish mumkin. Asosiy menyuning tagida tez tugmalar joylashgan. Bu tugmalar ma nolariga ko'ra guruhlarga ajratilgan. Bu tugmalar orqali tez-tez ishlatiladigan komandalarni ishga tushirishimiz mumkin. Bu tugmalarning o'ngtomonidavizual komponentalar VCL (Visual Component Library - vizual komponentlar kutubxonasi) palitrasi joylashgan. Bu shunday obyektlarki yoki shunday dasturlash komponentalariki, bular yordamida Windows uchun vizual dasturlarni tezda yaratish mumkin. Komponentalar yordamida har xil tugmalar, rasmlar, yozuvlar, taymerlar, kalendar va hokazolarni ilovaga kiritishimiz mumkin. Vizual komponentalar palitrasi ma nosiga va vazifasiga ko'ra guruhlarga ajratilgan. Bu muhitning barcha oynalarini berkitish mumkin faqat asosiy oy nani berkitsa, ilovadan chiqib ketiladi, boshqa barcha oynalar oichamlarini kattalashtirish va kichiklashtirish imkoniyatiga egamiz. Vizual komponentalar palitrasi. Vizual komponentalar palitrasimng bir qismi monitorda ko'rinib turadi, qolganlarini o'ng va chapga siljituvchi tugmachalar vositasida ко rishimiz mumkin. Ekran (monitor) markazida forma (shakl) dizayneri joylashgan (20.3- rasm). Bu bo'lg usi dasturning interfeysini hosil qiluvchi oynadir. Oynaning nomi va sarlavhasi uning tepasida yozilgan boiadi. Odatda,

Forma (shakl) dizayneri. Dastur kodi muharriri. Form 1 (Form 2, Form 3, Form 4) va shuningdek oynani berkituvchi va kichraytiruvchi tugmachalar ekranning o ng tepasida joylashgan boiadi. Oy naning sathiga vizual dastur uchun zarur bo'ladigan VCL komponentalar joylashtiriladi. Forma (shakl) dizayneri ostida dastur kodi muharriri joylashgan, odatda, u

Unitl.cpp sarlavha bilan beriladi. Bu ovna (20.4-rasm) dastur kodini kiritish va tahrir qilish uchun moijallangan. Obyektlar inspektori oynasi. Obyektlarni daraxtsimon ko rish oynasi. Ekranning chap past qismida Obyektlar inspektori oynasi joylashgan Bu oyna Object Inspector sarlavha bilan beriladi (20.5-rasm). Bu oynada vizual komponentalarga xususiyatlar o rnatiladi. Bu oynani dasturchi o zi xohlagan ekran sathiga joylashtirishi mumkin. Obyektlar inspektori oynasi ostida obyektlarning daraxtsimon ko'rinishi oynasi (20.6-rasm) joylashgan. Bu oynada ilovadagi barcha obyektlar daraxt strukturasi shaklida ifodalangan bo ladi. Formalar, dastur kodi va boshqa dastur tarkiblari fayllari berilgan bo ladi. Bu interfeys ilova tuzatayotganda eng asosiy foydalanayotgan qurolimiz bo'ladi. Borland C + + Builder 6 muhiti asosiy menvu buyruqlari File buyruqlari guruhi Menyuning birinchi File (Fayl) buyrug'i guruhi 20.7-rasmda berilgan. Bu menyu buyruqlari fayllar bilan ishlashga mo ljallangan va quyidagi amallarni bajaradi: (New) yangi fayl hosil qilish, forma (oyna) ochish, mavjud fayllarni (Open) ochish, fayllarni saqlash (Save) va (Close) yopish. ilova dastur kodi matnini (Print) chop qilish mumkin.

File buyrugh guruhi. Edit buyruqlari guruhi Edit (Muharrir) 20.8-rasmda ifodalangan. Menyuning bu buyruqlari guruhi tahrir qilish uchun zarur boigan buyruqlardir. Masalan, inkor qilish (Undelete) va (Redo) takrorlash, qirqib olish (Cut), nusxa olish, (Soru), olinga nusxani qo'yish (Paste) va o chirish (Delete) kabi amallarni o'z ichiga olgan. Search buyruqlari guruhi Search (Izlash) 20.9-rasmda ifodalangan. Menyuning bu buyruqlari guruhi fayllardanbiror matnni izlash va avtomatik almashtirish.

Edit buyruqlari guruhi. Search buvguruqlari guruhi. View buyruqlari guruhi. kerakli satrga o'tish va uni o'zgartish imkonini beradi.

View buyruqlari guruhi View (Ko'rish) 20.10-rasmda ifodalangan. Menyuning bu buyruqlari guruhidan ilova va komponentalarni boshqarishni asosiy muloqot oynalari chaqiriladi. Masalan, ilova menedjeri (Project Manager), komponentlar ro'yxati (Component List) va oynalar ro yxati (Window List). Project buyruqlari guruhi. Run buyruqlari guruhi. Project buyruqlari guruhi Project (Ilova) 20,11-rasmda keltirilgan. Menyuning bu buyruqlari guruhida ilovani boshqarish buyruqlari yig ilgan. Bu buyruqlar yordamida fayllarni qo shish, o chirish, VCL komponentalar kutubxonasiga komponenta qo shish, kompilatsiya qilish va shunga o xshash amallarni bajarish mumkin. Run buyruqlari guruhi Run (Bajarish) 20.12-rasmda ifodalangan. Menyuning bu buyruqlari guruhi yordamida ilovani ishga tushirish va bekor qilish, ilovani butunlay va qadambaqadam rejimda ishga tushirish, ko'rish uchun qo shimcha o'zgaruvchilar kiritish va ilova bajarilishini to xtatuvchi belgilar kiritish mumkin.

Component buyruqlari guruhi. Database buyruqlari guruhi. Component buyruqlari guruhi Component (Komponent) buyruqlar guruhi 20.13-rasmda berilgan. Menyuning bu buyruqlari guruhi yordamida yangi komponentalarni qo shish va konfiguratsiyalarini aniqlash ishlari bajariladi.

Database buyruqlari guruhi Database (MaTumotlar bazasi) buyruqlar guruhi (20.14-rasm) ma lumotlar bazasi bilan ishlaydigan buyruqlarni o z ichiga olgan. Tools buyruqlari guruhi Tools (Instrumentlar) buyruqlar guruhi 20.15-rasmda berilgan Menyuning bu buyruqlari guruhi yordamida ilova parametrlarini o rnatish va yordamchi dasturlar buyruqlarini chaqirish mumkin. Windows buyruqlari guruhi Windows (oyna) buyruqlari guruhi 20.16-rasmda berilgan. Windows buyruqlari guruhi. Help buyruqlari guruhi. Menyuning bu buyruqlari guruhi yordamida interfeysning oynalarini boshqarish mumkin. Help buyruqlari guruhi Help (Yordam) buyruqlari guruhi 20.17-rasmda berilgan. Menyuning bu buyruqlari guruhi yordamida muhit, til. Komponentalar va kompyuter haqidagi ma'lumotlarni olishimiz mumkin (20.18-rasm).

About buyrugi oynasi. Tezkor tugmalar Tezkor tugmalar asosiy menyu bilan vonma-yon joylashgan (20.19- rasm). Tezkor tugmalar. Bu tugmalar ko'p ishlatiladigan, tez-tez murojaat qilinadigan bo lganligi sababli alohida guruhlarga ajratilgan holda kichik piktogrammalar yordamida berilgan. Bu tugmalar asosiy menyuda ham mavjud, ammo vaqtdan yutish uchun ajratib ham qo vilgan.

Standard (Standart) tugmalar Dasturning obyektlarini hosil qilish uchun Standart tugmalardan foydalaniladi. Bu obyektlarga dasturlar, yangi formalar, fayllar, kutubxonalar va hakozolar kirishi mumkin. Yangi obyektni hosil qilish uchun New tugmasini bosamiz. Bunda New Items (20.20-rasm) muloqot oynasi paydo New Items muloqot oynasi boiadi, bundan ilova tuzish uchun kerakli obyektni tanlaymiz. Bu oynada ko'plab obyektlar m aium guruhlarga ajratilgan holda joylashgan. Bu guruhning boshqa tugmalari favlni saqlash (Save) va ochish (Open) uchun xizmat qiladi. AddFileToProject tugmalari orqali ilovaga fayl qo'shish va RemoveFileFromProject fayl o chirish imkonini beradi. View (Ko rish) tugmasi Bu guruhga quyidagi tugmalar jamlangan: (New Form) yangi forma hosil qiladigan, (ViewUnit) modullarni qurish, (ViewForm) formani qurish, (Toggle Form/Unit) formadan modulga, moduldan formaga o tishni ta minlaydigan

tugmachalar. Toggle Form Unit formadan kodni tahrirlashga, tahrirlashdan formaga o'tkazuvchi tugma. Agar ilovada bir nechta forma qatnashsa, ularni qurish uchun View Form (Shift + F12) tugmadan foydalaniladi. Yangi forma hosil qilish uchun New Form tugma bosiladi. Bunda yangi forma dizayneri paydo boiadi. Odatda, sarlavhasi Form 2 kabi nomlangan boiadi. Yangi forma ilovada yangi oynalarni ko'rsatish va ifodalash uchun zarur boiishi mumkin. 1.2 VCL-komponentalar palitrasi Borland C + + Builder 6 muhitining VCL visual komponentalari bilan tanishamiz. Borland C + + Builder 6 muhitida ilova yaratish VCL visual komponentalaridan keraklilarini formaga joylashtirishdan boshlanadi Komponentalar ilovaning g lshtchalari (elementlari. qismlari) deyishimiz mumkun Builder so zining ma nosi quruvchi degan ma noni anglatadi Barcha VCL komponentalar, palitrasi asosiy menyuning o ng tomonida joylashgan bo ladi. Komponentalar palitrasi ma'lum bir vazifalariga ko'ra komponentalar to plamidan iborat komponentalar sahifasiga ajratilgan Bu sahifalar ma no va vazifasiga ko'ra bir-biriga yaqin bo lgan komponentalarni bitta guruhga birlashtirgan. Sichqonchaning chap tugmasini sahifa komponentalar nomi ustida bossak. mazkur sahifa komponentalari guruhi ekranda paydo bo'ladi. Masalan. Standart sahifasini bossak ekranda kom ponentalar paydo bo'iadi (20.22-rasm). Komponentalar oynasi. C++ Builder 32 razryadli takomillashtirilgan Vizual Komponentalar Kutubxonasi VCL (Vizual Component Library) bilan birgalikda yetkazib beradi. Bu kutubxona eng murakab ilovalarni qurish uchun mo'ljallangan 100 dan ortiq takroran qo llanilmaydigan komponentalardan iborat Kutubxonaning asosiy komponentalari Palitralar komponentalarining Instrumental Panehda berilgan. Komponentalar

belgilari dasturingiz shakliga (formaga) olib o tiladi. Kutubxona Windows operatsion tizmlaridagi Foydalanuvchi Grafik Interfeysi standart interfeys obektlarining to liq inkapsulatsiyalanishini o z ichiga oladi. Ular orasida, ixtisoslashgan komponentalar bilan bir qatorda, relatsion ma lumotlar bazasini boshqarish uchun mo ljallangan komponentlar alohida o rin egallaydi. Ishonchli va samarali dasturlarni yaratishda C + + Builder OYD imkoniyatlaridan to iiq foydalaniladi. C + + Builder - bu OMD ekan, OLE (OCX) boshqaruvchi elementlarni kiritish uncha qiyinchilik tug'dirmaydi. O'z masalalaringiz talablarini kerakli darajada qondirish uchun, kutubxonaning mavjud komponentalaridan foydalaning va hosila komponentalar imkoniyatlarini kengaytiring. C ++ Builder ning bosh xususiyati, avvalambor, uning dasturni visual ishlash jarayonida nafaqat tayyor komponentalardan foydalanish, balki yangi komponentalarni yaratish qobiliyatida ham namoyon bo ladi. Yangi komponentalar, dastlabki komponentalar kabi, sodda boiishi mumkin. bunda ularning funksional imkoniyatlari ozgina kengaytirilgan yoki o zining mutlaqo o'ziga xos ko'rinishi, xulq-atvori va kodining mazmuni bilan farqlanadigan boiadi. Komponentalarning yaratilishi OYD ning vorislik mexanizmiga tayanadi, cheklanishlarga deyarli ega bo lmaydi hamda quyidagi bosqichlardan o tadi: mavjud komponenta turiga vorislik; yangi xususiyatlar, metodlar va voqealarni aniqlash; yaratilgan komponentani qayd etish. Qidirish oson boiishi uchun, Palitra funksional jihatdan o'xshash komponentalarni birlashtiradigan qo shimcha ilovalar bilan bogiangan. Tanlab olingan komponentaning kontekst menyusini unga sichqonchaning o'ng tugmasini bosib ochish mumkin. Bular ichidan OKyozuvli Button tugmasini, A yozuvli Label tugmasini osonlik bilan topish mumkin. Agar sahifada komponentalar juda ko'p bo'lsa, harakatlanuvchi tugmalar orqali o'ng va chapga panelni harakatlantirish orqali barcha komponentalarni ko'rishimiz mumkin. Barcha komponentalar biror nom yoki maxsus ikonka orqali berilgan, agar sichqoncha kursorini ikonka ustiga oborsak shu komponenta nomi paydo boiadi. E'tibor bergan boisangiz, ko'pchilik komponentalar to'rtburchak yoki dumaloq shaklga ega. Ixtiyoriy komponentani

formaga ikki xil y o i bilan joylashtirish mumkin. Komponenta ustiga sichqonchani olib borib chap tugmasini ikki marta bossak, mazkur komponenta forma markazida paydo boiadi. Ikkinchi usul sichqoncha chap tugmasini komponenta ustida bitta bosib siljitish bilan formaga joylashtirish mumkin. Formaga joylashtirilgan komponentani formaning ixtiyoriy qismiga siljitishimiz mumkin. Komponetaning o'lchamlarini sichqoncha yordamida o'zgartirish mumkin. Formada turgan ixtiyoriy komponentani aktivlashtirish yoki passivlashtirish mumkin. Aktivlashtirish degani shu komponentaning ustida amal bajarish xususiyatini o zgartirish imkoniyatini beradi, buning uchun, mazkur komponentaning ustida sichqoncha tugmasini bosish kifoya. Aktivlik belgisi shu komponentaning boshqalaridan ajralib, belgilanib koi'inib turadi. Buni obyektlar inspektoridan ham ko rish mumkin. Sichqoncha yordamida tanlangan komponentani formadan o'chi rib tashlash mumkin. Kontekst menyu oynasi.

Komponentalar palitrasini asosiy menyu panelidan olib tashlash mumkin. Buning uchun sichqonchaning o ng tugmasini bosish va hosil boigan menyu (20.23- rasm)dagi Component Palette so zi oldidagi belgini sichqoncha tugmasini ikkita bosib, olib tashlash kifoya qiladi. Komponentalar palitrasining o'rni Borland C + + Builder 6 interfeysida qat iy tayinlanmagan. Uni o'zimiz xohlagancha joylashtirishimiz mumkin. Buning uchun kursorni palitraning chap chekkasiga olib borib, sichqonchaning chap tugmasini bosib, qo yib yubormagan holda, yangi joyga joylashtirish mumkin. Agar palitra asosiy menyudan tashqariga chiqib ketsa, yangi oyna ochiladi. Bunda komponentalar palitrasiga qo shimcha buyruqlar kiritish uchun sichqonchaning o ng tugmasi bosiladi. Bunda kontekst menyu paydo boladi (20.24-rasm). Bu oynada ixtiyoriy sahifaga Tabs vositasida tez o tish imkoniyati mavjud (20.25-rasm). ShowHints tushuntish ma'lumotlari beriladi. Hide palitrani bekitish, Help ma lumotlarni olish, yordamni chaqirish, Properties xususiyatlarni o rnatish Bu oynada ixtiyoriy sahifani qaytadan ko'rib chiqish mumkin. Rename buyrugi orqali sahifani qayta nomlash mumkin. Add buyrug i orqali yangi sahifa qo shish mumkin. Delete ixtiyoriy sahifani о chirish mumkin. Bu sahifalarning berilish ketma-ketligini o'zgartirish imkoniga egamiz. Masalan, System sahifasi Standard sahifasidan keyin berilgan edi, System satrini aktivlashtiramiz va sichqonchaning chap tugmasini bosamiz. MoveUp buyrug'i orqali Standard dan tepaga joylashtiramiz va OK ni bosamiz. Endi System sahifasi Standard, sahifasidan oldin joylashgan boiadi. Xuddi shuningdek, komponentalarning MoveUp va MoveDown buyruqlari, joylashish ketmaketligini o'zgartirish mumkin. Forma dizavneri Forma dizayneri ilovaning interfeysidagi vizual komponentalarni ifodalash uchun xizmat qiladi (20.26-rasm).

Forma dizayneri. Form dizayner sarlavhasi Formaning chap yuqori qismida (C++Form 1) berilgan. Formaning o ng yuqori qismida standart oynani berkituvchi va kichiklashtiruvchi buyruqlar piktogrammasi joylashgan. 1.2 DEV C++ kompilyator haqida malumot. Dasturlardan foydalanib, biror ish bajarish va shu orqali natija olish, unchalik qiyin jarayon emas. Bir marotaba ko rib olgan inson, keyingi safar o zi bajara oladi. Ko pchilik adashtiradigan narsa, bu foydalanuvchi dasturchi deyilmaydi, faqatgina dastur foydalanuvchisi bo ladi xolos. Dasturchi, foydalanuvchilar foydalanishi uchun dastur yaratadi va bu jarayon juda murakkab hisoblanadi. Dasturchilik bilan shug ullanishni endi boshlagan yoshlar ko p qiyinchiliklarga duch kelishadi. Bu qiyinchiliklar asosan terminlarning tushunmasligidan kelib chiqadi. Bu maqolamda dasturlashning eng kerakli termini hisoblangan interpretator vakompilyator haqida yozib o taman. Dasturlash jarayonida dasturchi o z dasturini yaratish uchun xar hil turdagi kodlar yozadi. Kodlarnining qanday bo lishi qaysi dasturlash tilidan foydalanib, dastur tuzishga bog liq bo ladi. Dasturlash tillaridan C, C++, Java,.Yozilgan kodlarni kompyuter tushunmaydi, kompyuter tushunishi uchun uchun bu kodlarni

kompyuter tushunadigan tilga o zgartirish lozim. Mana shu vaziyatda yuqoridagi 2 ta termin kerak bo ladi(kompilyator yoki interpretator). Kompyuter faqatgina raqamli kodlarni tushunadi, ya ni 0 yoki 1. Bu 2 son orqali dastur tuzish juda qiyin hisoblanadi(manimcha bunday sonlar orqali dastur tuzuvchilar sanoqli bo lsa kerak). Shuning uchun, insonlar tushunadigan qilib dasturlash tillari yaratilgan. Ketma-ketlikni tushungandursiz, dasturchi dasturlash tillari orqali kodlar yozadi va bu kodlar kompyuter tushunadigan 0 va 1 sonlariga almashtiriladi va dastur kompyuterda ishlaydi, bu jarayonni kompilyator yoki interpretator amalga oshirib beradi. Kompilyator murakkab dasturdir, dasturlash tilida yozilgan barcha kodlarni birdanigaob yektli kodga o zgartirib beradi. Ob yektli kodni yana ikkilik kod yoki mashina kodideb ham atashadi. Keyinchalik bu ob yektli kod kompyuterda to g ridan to g ri ishlatilishi mumkin bo ladi. Dasturlash tillarida yozilgan kodlar bu ob yektli kodga ta sir qilmaydi. Ob yektli kodni o zgartirish uchun esa, qaytadan kompilyatsiya qilinib ob yektli kod o zgartiriladi. Natija bajariladigan,.exe ko rinishidagi fayl bo ladi. Bu faylni bloknotda ochib o zgartirib bo lmaydi, ya ni bu fayl tayyor dastur hisoblanadi. Kompilyatorning kamchiligi sifatida, dasturlash tilidagi ma lum bir qatorlani alohida tekshirish imkoniyati yo qligidir, uning uchun ob yektli kod yaratib, uni ishga tushurish lozim bo ladi, ortiqcha ish bo lib qoladi. Undan tashqari ba zi kompilyatorlar bir dasturlash tilidan, ikkinchisiga ham o zgartirib berishi mumkin. Kompilyator ishlatadigan dasturlash tillariga C, C++, Delphi larni misol qilib keltirish mumkin. Interpretator ham dastur ham jihoz ko rinishida bo lishi mumkin. Bu ham kompyuter tiliga o zgartirib berish vazifasini bajaradi, faqatgina ishlash texnologiyasi boshqacharoqdir. Interpretator, dasturlash tilida yozilgan kodlarni ketma ket o qib, mashina tiliga o zgartirib boradi. Xatolik paydo bo lsa, o sha zahoti dasturchiga ma lum qiladi. Bu ketma ketlikda o zgartirish, kompilyatorga nisbatan sekinroq amalga oshiriladi(ba zi holllarda kompilyatorga qaraganda 50 barobar sekin). Dastur natijasini ko rish uchun, har safar kodlarni interpretatordan o tkazish kerak bo ladi(kompilyatorga o xshab bir marotaba

ob yekt kod yaratib qo yib, keyin har doim ishlatishning iloji yo q). Bundan ko rinib turibdiki, interpretator asosan saytlar, umumiy holda veb dasturlashda ishlatiladi. Biror saytning yuklanishi jarayni uzunligi, interpretatorda o zgartirish amalga oshirilishi bilan tushuntirilishi mumkin. Interpretator ishlatadigan dasturlash tillariga PHP, JavaScript, JScript, Basic, misol bo la oladi. Bu ikki termin umumiy holda translyator deyiladi, ya ni o zgartirgichlardir. Biror proyektlar qilganda bu 2 o zgartirgichlar birgalikda ham ishlatilishi mumkin. Biror dasturlash tili bilan jiddiy shug ullanmoqchi bo lsangiz, dastlab siz yozadigan kodlar qay tarzda kompyuter tiliga o zgartirilishini o rganib oling. Bu dasturlashning asosi hisoblanadi. Dasturlash tillari bilan shug ullanadigan dasturchilar ba zi bir terminlar bilan juda ko p to qnash kelishadi. C++ dasturlash tili ham bundan mustasno emas. Oldin shu haqida, undan so ng esa C++ ni ishlatish uchun nimalar kerakligini ko rib chiqamiz. Demak terminlarni ko rib chiqamiz: Kompilyator bu o zgartirish degan ma noni beradi. Ya ni dasturlash tilida yozilgan dastur(c++ bo lsa, *.c, *.cpp)ni kompyuter tushunadigan tilga o zgartirib, uni ishlashini ta minlaydi. Bu degani dastur kompyuterda to liq ishlaydi. Bundan ko rinib turibdiki, C++ da dastur tuzish uchun kompilyator o rnatish zarur. Linux operatsion tizimida kompilyator o rnatilgan bo ladi(gcc, G++). Kompilyatsiya o zgaruvchi jarayon, ya ni yuqori pog onali dastur kodlari(misol uchun C++ da tuzilgan kod)ni quyi pog onali ishlovchi kodga aylantirish jarayoni. Komponovshik(linker) ishlovchi modul yaratish. Proyektda ishlatiladigan ob yekt fayllarni to plab yagona ishlovchi modulga aytiladi. IDE(integrallashgan ishlovchi muhit) Har bir dasturlash tilida o z ishchi muhiti bo ladi. Bu muhitda kompilyator bilan birga kod yozishga mo ljallangan joy

bo ladi. Bu ishchi muhitda bir necha dastur kodlarini ham yozsa bo ladi va bu muhit avtomat xatolarni ham ko rsatib beradi. Bu ishchi muhitda ma lum kutubxonalar joylashgan bo lib, kod yozishda kodni to g ri tashkil qilish uchun ma lum bir yordamlar ekranga chiqadi. Ishchi muhitga oddiy bloknot misol bo ladi, lekin bu muhitning kompilyatori yo q, shuning uchun alohida kompilyator o rnatiladi. Bunda 2 ta dastur o rnatib bir biriga moslashtirish kerak bo ladi. Bu 2 ishni yengillashtirish uchun, juda ko p ishchi muhit dasturlari yaratilgan va ular kompilyatorlar bilan integrallashgan bo ladi. C++ dasturlash muhitida eng keng tarqalgan IDE bu Visual C++ hisoblanadi. Bu dastur o z ichiga dastur kodlarini yozishda juda muhim bo lgan.net klasslari, ishchi muhit va albatta kompilyator integrallashtirilgan bo ladi. Quyida hozirgi zamonda eng ommabop bo lgan C++ muhitlari va kompilyatorlari ro yxatini keltirib o taman. Dev-C++ C/C++ dasturlash tillari uchun ochiq integrallashgan dasturlash muhiti. Bu distributivga MinGWnomli kompilyator kiradi. Bu dastur o zi Delphi dasturlash tilida tuzilgan. GPL litsenziyasi orqali tarqatiladi. Bir paytlar Linux versiyasi ham mavjud edi, hozir faqat Windows. Hozir yangi versiyalari ishlab chiqilmayapti, uning o rniga wxdev-c++ nomi bilan ishlab chiqilmoqda. C++ Builder C++ dasturlash tili uchun mo ljallangan integrallashgan dasturlash muhiti hisoblanadi. DastlabBorland Software korxonasi tomonidan ishlab chiqilgan, undan so ng uning bir qismi bo lgan CodeGeartomonidan. C++ Builder STL, VCL, CLX, MFC ob yekt kutubxonalarini o z ichiga oladi. Delphi dasturlash tili tomonidan ishlab chiqilgan. Bu muhit drag-and-drop harakati bilan vizual shaklni paydo qilishi mumkin, undan tashqari WYSIWYG redaktori ham mavjud. Borland C++ C/C++ dasturlash tillarida dastur tuzish uchun mo ljallangan muhit bo lib, Borland firmasi tomonidan ishlab chiqilgan. Muhitning har bir versiyasi ma lum bir dasturlash tili standarti asosida ishlovchi

kompilyator bilan integrallashgan holda chiqarilgan. Dastlab, DOS operatsion tizimi muhitida ishlovchi dasturlarni yaratish uchun, keyinchalik Windows muhitida ishlovchi dasturlarni yaratish uchun mo ljallangan versiyada ishlab chiqildi. Microsoft Visual C++ Albatta Microsoft firmasi ham bekor turmadi. Mana shu muhitni yaratdi. C++ dasturlash tili uchun mo ljallangan va Microsoft Visual Studio ni bir qismi sifatida yoki o zi yakka Visual C++ Express Edition shaklida namoyon bo ldi. Microsoft QuickC muhitini almashtirish vazifasini bajardi. GNU Compiler Collection(GCC) GNU proyekti asosida yaratilgan, xar hil turdagi dasturlash tillarining kompilyatorlar yig indisi hisoblanadi. Bu dastur ochiq hisoblanadi va dastlab faqat S uchun yaratilgan edi. Keyinchalik kuchayib C++, Objective-C, Java, Fortran va Ada dasturlash tillari uchun ham ishlab chiqildi. Hammamizga ma lumki kompyuter yoki har qanday dastur bilan ishlovchi qurilmalar uchun dasturlar biror bir dasturlash tillarida yoziladi. Bunday tillar hozirda juda ko p. C, C, Delphi, Ruby, Perl, Python, Java va shu kabi universal dasturlash tillaridan tashqari maxsus biror yo nalish yoki platformaga mo ljallangan tillar, skript tillar ham bir talay. Dastur tuzish uchun dastur tuzilayotgan qurilma ichki tuzilmasini hisobga olib yuqoridagi tillardan birida dastur matni yoziladi. So ngra bu dastur ishlashi uchun dastur matnini u mo ljallangan qurilmaning tiliga, ya ni prosessor instruksiyalari (buyruqlari) ketma-ketligiga tarjima qilish kerak bo ladi. Bu vazifani kompilyator dasturi bajaradi. Kompilyator biror dasturlash tilida yozilgan dastur (matni)ni o sha til qoidalariga muvofiq mashina kodiga yoki oraliq kodga (p-kod, baytkod) tarjima qiluvchi dastur. Ushbu tarjima jarayoni kompilyasiya deyiladi. Agar kompilyasiya jarayonida dastur mashina kodiga tarjima qilingan bo lsa, hosil bo lgan kod o sha qurilma/muhitda bevosita ishlayveradi. Agar dastur

oraliq kodga tarjima qilingan bo lsa, u holda bu kodni ishlatish uchun Virtual Mashina kerak bo ladi. Virtual mashina oraliq kodda ifodalangan dasturni qadamlab mashina kodiga tarjima qiladi va dasturni ishlatadi. Shu joyda Oraliq kodga o tkazishni nima keragi bor, dasturni to g ridan to g ri mashina kodiga o girish yaxshimasmi? degan savol tug ilishi tabiiy. Oraliq kod birinchi navbatda dasturning kross platformaliligini (dastur o zgarishsiz yoki qisman o zgartirish orqali boshqa platformalarda ham ishlayverishga yaroqli bo lsa bunday dastur kross platformali deyiladi) ta minlaydi. Har bir platforma, OS o zining ichki arxitekturasi jihatidan bir biridan farq qiladi, shunday ekan bir muhitga moslab yozilgan mashina tilidagi kod ikkinchi boshqa bir muhitda ishlamasligi tabiiy. Oraliq kodlarda yozilgan dasturlar huddi shu muammoni hal qilishda yordam beradi. Bunda oraliq kodni ishlatish uchun kerak bo ladigan Virtual Mashina turli muhitlar, OS lar uchun mavjud bo lsa yetarli, ya ni har bir dasturni boshqa muhitga moslash shart emas, faqatgina Virtual Mashinani kerakli muhitlar uchun moslansa yetarli. Bundan tashqari oraliq kod dasturni tahlil qilish (debug) jarayonini yengillashtiradi ham. Oraliq kod hosil qiluvchi til kompilyatorlariga misol qilib, Java, Python, Ruby kabilarni keltirish mumkin. Xo sh kompilyator qanday ishlaydi? Har qanday tillar o zining grammatikasi yoki sintaksisiga ega bo ladi. Masalan, o zbek tilida to g ri yozilgan gapda kesim egadan keyin kelishi kabi qoida ham til sintaksisining bir bo lagidir. Dasturlash tillarida ham tabiiy tillar singari o zining qonun qoidalari bo lishi tabiiy. Kompilyasiya jarayoni huddi shu qoidalarga asoslangan holda amalga oshiriladi. Erkin kontekstli dasturlash tillari uchun kompilyatorlar odatda asosan 3 bosqichdan iborat bo ladi: Leksik tahlil Sintatktik tahlil Tarjima qilish

Har bir bosqichni batafsil ko rib chiqamiz. Leksik tahlil dastur matnini tilning alifbosiga mos ravishda bo laklarga, so z larga ajratish vazifasini bajaradi. Natijada identifikatorlar, literallar, bo sh joylar, amallar va boshqa bo laklar hosil bo ladi. Masalan, deylik, o zbek tiliga asoslangan qandaydir dasturlash tilida agar (i<j) bo lsa i = 1; ko rinishidagi matn tahminan quyidagicha bo laklarga ajratiladi. Bo lak/so z Turi 1 Agar Identifikator 2 bo sh joy (probel, tab belgisi yoki boshq.). Til alifbosida bo sh joyni alohida vazifasi bo lmasa, barcha bo sh joylarni tushirib qoldirish mumkin. Va shunday qilamiz. 3 ( Amal 4 I Identifikator 5 < Amal 6 J Identifikator 7 ) Amal 8 bo lsa Identifikator 9 I Identifikator 10 = Amal

11 1 sonli literal 12 ; Ajratgich 13 dastur oxiri Bo laklash bosqichini dasturlash qiyin ish emas. Buning uchun har bir bo lak qanday belgilar to plamidan iboratligi, qaysi belgidan keyin qaysi belgi kelishi kabi belgilashlarlarni aniqlab olishimiz kerak. Shu joyda bir narsani aytib o tish lozimki, hozirda agar biror bir kompilyator yozmoqchi bo lsangiz uni 0 dan yozish ham shart emas. Bunda Sintaktik analizator (parserlar) va Kompilyatorlar kompilyatori kabi bir qancha tayyor dasturlardan foydalanish ishni ancha yengillashtiradi. Bu dasturlar kirishiga tilning formal yozuvdagi ko rinishi berilsa, birinchi (leksik tahlil) va ikkinchi (sintaktik tahlil) qadamlarni avtomatik bajarib beradigan, qisman uchinchi bosqich (tarjima) ni ham bajaradigan kod hosil qilib beradi. Tilning formal yozuvi (grammar) deganda tilning alifbosi, qonun qoidalarini ko rsatuvchi yozuvga aytiladi. Bu yozuv turlaridan biri Bekus-Naur yozuvidan keng foydalaniladi. Bekus-Naur yozuvida (aniqrog i, uning kengaytirilgan variantlaridan birida) til alifbosi Belgilar to plami, So zlar va Qoidalar degan 3 ta element yordamida ifodalanadi. Belgilar to plami bu biror bir So z qanday belgilardan tashkil topishini bildiradi. Masalan Identifikator degan So z A dan Z gacha lotin harflari, 0 dan 9 gacha raqamlar va _ belgisidan iborat bo lishi mumkin degan shart aynan Belgilar to plami yordamida ko rsatiladi. Belgilar to plami: {Harflar} = ABCDEFGHIJKLMNOPQRSTUVWXYZ {Raqamlar} = 0123456789 {Identifikator boshi} = {Harflar} [_]

{Identifikator oxiri} = {Raqamlar} [_] Bu yerda {Harflar} nomli belgilar to plami A dan Z gacha lotin harflaridan biridan iborat bo lishi mumkinligi, {Raqamlar} esa 0 dan 9 gacha raqamdan biri ekanligi, {Identifikator boshi} esa {Harflar} dan va _ belgisidan tuzilganligi va {Identifikator oxiri} esa {Raqamlar} va _ belgisidan iborat ekanligi ko rsatilyapti. Belgilar to plamini berishda belgisi belgilar to plamiga yangi belgini qo shish, - belgisi esa keraksiz belgini chiqarib tashlashni bildirishi mumkin. Identifikator boshi va oxiri deb ikkita bo lakka bo lishdan maqsad esa, identifikatorlar nomi faqat harf yoki _ belgisidan boshlanishi mumkinligidan kelib chiqdi. Belgilar to plami qay tartibda kelishi So zlarda ifodalanadi. Yuqoridagi belgilar to plamidan foydalanib Identifikatorni qanday berilishini ko ramiz: Identifikator = {Identifikator boshi} {Identifikator oxiri}* Bu yerda * belgisi uning oldida kelgan belgilar to plami yoki belgining 0 yoki undan ko p marta, belgisi esa 1 yoki undan ko p marta takrorlanishi mumkinligini ko rsatadi (huddi Regular Ifodalardagi kabi). Yana misol: ButunSon HaqiqiySon = {Raqamlar} = {Raqamlar}*. {Raqamlar} MantiqiyQiymat = rost yolg on Qo shtirnoq ichidagi belgi uni So zda qanday bo lsa shunday holicha kelishini, belgisi esa yoki amalini bildiryapti. Va nihoyat So zlarning qay tartibda kelishi Qoidalar yordamida beriladi: <Agar buyrug i> ::= agar <Ifoda> bo lsa <Buyruqlar> agar <Ifoda> bo lsa <Buyruqlar> aks holda <Buyruqlar> <Qiymat berish> ::= Identifikator = <Ifoda>

... <Buyruqlar> ::= <Agar buyrug i> ; <Takror buyrug i> ; <Toki buyrug i> ; <Tanlash buyrugi> ; <Qiymat berish> ; <Buruqlar>... E tibor bering, <Buyruqlar> qoidasini berishda rekursiyadan foydalanilyapti, bu esa buyruqlarni ichma ich va ko p marotaba qaytarilishini ifodalash uchun kerak bo ladi. Ko rinib turibdiki, bunday yozuvlardan foydalanib har qanday tilning sintaksisini, alifbosini bemalol ko rsatish mumkin. Bekus-Naur yozuvidan tashqari yana bir nechta shu kabi tilni qolipini tushuntirishda qo llaniladigan yozuvlar mavjud. Keling, yuqorida berilgan til alifbosi uchun oddiy bo laklash jarayonini dasturlashni ko rib chiqamiz. Ya ni, berilgan matnni Identifikator, ButunSon, HaqiqiySon, MantiqiyQiymat kabi bo laklarga ajratuvchi dastur tuzamiz. Ushbu bosqich uchun Lexer nomli klassni yozamiz. Bunda bo laklarni saqlash uchun Token nomli qo shimcha klass ham kerak bo ladi: // Ushbu klass bo'lakni ifodalash uchun public class Token { // mumkin bo'lgan bo'laklar turi

public enum TokenType { UNKNOWN, // noma lum bo lak IDENTIFIER, // identifikator OPERATOR, // operator NUMLITERAL, // sonli literal STRINGLITERAL, // matnli literal WHITESPACE, // bo sh joylar NEWLINE, // yangi qator EOP // dastur oxirini belgilash uchun } public string Text; // bo'lak matni public TokenType Type; // bo'lak turi public int TextPos; // bo'lakni dastur matnidagi pozisiyasi public Token() {

this.text = ""; this.textpos = 0; this.type = TokenType.UNKNOWN ; } } public class Lexer { // konstantalar const char CHAR_NULL = '\0'; // o'zgaruvchilar string text; int position; // konstruktor public Lexer() { this.position= 0; this.text= "";

} // konstruktor public Lexer(string text) { this.text= text; this.position= 0; } // dastur matnini berish/olish public string Text { get { return this.text; } set { this.text = value; } } } Lexer klassiga kiruvchi matnni belgilab o qishga yordam beruvchi funksiyalarni qo shamiz: // jarayondagi joriy pozisiya public int Position

{ get { return this.position; } } // joriy belgini aniqlash public char CurrentChar() { if (position < text.length) return Convert.ToChar (text.substring(position, 1)); else return CHAR_NULL ; } // joriy belgidan keyingi belgini aniqlash public char NextChar() { if (position 1 < text.length) return Convert.ToChar(text.Substring(position 1, 1)); else

return CHAR_NULL; } // joriy belgidan oldingi belgini aniqlash public char PrevChar() { if (position - 1 >= 0) return Convert.ToChar(text.Substring(position - 1, 1)); 1.3 CodeBlocks kompilyator imkonyatlari. Bugun biz sizlarga dasturlash tillaridan biri c++ ni boshlaganlar uchun qisqacha malumot bermoqchimiz. Siz dasturlashni urgana boshladingizmi uni matematika

fanini bilmasdan turib yaxshi o'rgana olmaysiz. Mani fikrimcha xamma xam boshida matematik misol yechishdan boshlasa kerak. Xamma narsa xam oddiy narsalardan boshlanadi: #include <iostream> using namespace std; int main () { cout<<"ki.uz saytiga xush kelibsiz"; return 0; } Bu dastur konsol oynasida "KI.UZ saytiga xush kelibsiz" degan yozuvni chiqaradi. Endi ishlatilgan so'zlarga izoh bersak. include - kutubxonaga murojatni bildiradi iostream - kiritish va chiqarish funksiyalarini uzida jamlagan kutubxona using namespace std - ismlar fazosi standart nomlaridan foydalanishni anglatadi. int main - funksiyamizni tanasini bildiradi { } funskiyamiz bishlanishi va tugallanishini bildiradi cout - ekranga yozuv chiqarishni taminlaydi Sizga maslaxatim siz endi boshlayotgan bulsangiz xamda misol yechishni urnagayotgan bulsangiz dev c++ dasturidan foydalaning. chunki unda misol yechish uchun imkoniyatlar yetarli xamda boshlang'ichlar uchun kifoya qiladi. Eng asosiysi bepul tarqatiladi yani litsenziya shart emas.

2.1 C++ Builder 6 dasturlar tuzish. Masala: Tengtomoni uchburchakning elementlari quyidagi tartibda nomerlangan. 1-tomoni a, 2-ichki chizilgan aylananing radiusi R 1 =a* 3/6, 3-tashqi chizilgan aylananing radiusi R 2 =2*R 1, 4-yuzasi S=a 2 3/4. Shu elementlardan bittasi berilganda qolganlarini topuvchi programma tuzilsin. Ushbu oynaga biz misolni yechish uchun 2 button,1 ta edit,1 ta stringrid1,1 ta label 1 ta Memo1 ni olamiz va uni oynaga quydagicha joylashtiramiz #include <vcl.h> #include <math.h> #include <iostream.h> #pragma hdrstop #include "Unit1.h" #pragma package(smart_init)

#pragma resource "*.dfm" TUmirzoqovAbror *UmirzoqovAbror; fastcall TUmirzoqovAbror::TUmirzoqovAbror(TComponent* Owner) : TForm(Owner) { } void fastcall TUmirzoqovAbror::Button1Click(TObject *Sender) { float a,r,r,s; if (RadioButton1->Checked ==true) {a=strtofloat(edit1->text ); r=a*sqrt(3)/6; R=2*r; s=a*a*sqrt(3)/4; Memo1->Lines->Add("r="+FloatToStr(r)); Memo1->Lines->Add("R="+FloatToStr(R)); Memo1->Lines->Add("s="+FloatToStr(s));

} if (RadioButton2->Checked ==true) {r=strtofloat(edit1->text ); a=r*6/sqrt(3); R=2*r; s=a*a*sqrt(3)/4; Memo1->Lines->Add("a="+FloatToStr(a)); Memo1->Lines->Add("R="+FloatToStr(R)); Memo1->Lines->Add("s="+FloatToStr(s)); } if (RadioButton3->Checked ==true) {R=StrToFloat(Edit1->Text ); r=r/2; a=r*6/sqrt(3); s=a*a*sqrt(3)/4; Memo1->Lines->Add("a="+FloatToStr(a)); Memo1->Lines->Add("r="+FloatToStr(r)); Memo1->Lines->Add("s="+FloatToStr(s));

} if (RadioButton4->Checked ==true) {s=strtofloat(edit1->text ); a=sqrt(4*s/sqrt(3)) ; r=a*sqrt(3)/6; R=2*r; Memo1->Lines->Add("a="+FloatToStr(a)); Memo1->Lines->Add("r="+FloatToStr(r)); Memo1->Lines->Add("R="+FloatToStr(R)); } } Natija oynasi

Masala: parallipedning uchta tomoni berilgan parallipedning yuzasi va tola sirtini aniqlang V=a*b*c; S=2*(a*b+b*c+a*c) Ushbu masalani yechish uchun 5 ta edit 5 ta label va 1 ta button olinadi. Dasturning kod oynasi quydagicha b void fastcall TForm1::Button1Click(TObject *Sender) {int a,b,c,s,v; a=strtoint(edit1->text); b=strtoint(edit2->text); c=strtoint(edit3->text);

s=2*(a*b+b*c+a*c); v=a*b*c; Edit4 ->Text = IntToStr(s); Edit5 ->Text = IntToStr(v); Natija oynasi quydagicha korinishda bo ladi 2.2 CodeBlocks kompilyator dasturlar tuzish.

#include <iostream> using namespace std; int main() { int a[1000],b[1000]; int n,l,mx=0; cin>>n>>l; for (int i=0; i<n; i++) cin>>a[i]; for (int i=0; i<l; i++) { mx+=a[i]; b[i]=a[i]; } for (int i=0; i<n-l+1; i++) { int s=0; for (int j=i; j<l+i; j++)

{ s+=a[j]; } if(mx<s) { mx=s; int k=0; for (int j=i; j<l+i; j++) { b[k]=a[j]; k++; } } } for (int i=0; i<l; i++) cout<<b[i]<<" "; return 0;

#include <iostream> using namespace std; int main() { int a=5,b=5,c=8,d=5; if ((a==b)&&(b==c)) cout<<"4"; if ((a==b)&&(b==d)) cout<<"3"; if ((c==b)&&(b==c)) cout<<"1"; if ((a==c)&&(d==c)) cout<<"2"; return 0;}

0