logo

C++ tilining grafik tartibida ishlash asoslari

Yuklangan vaqt:

12.08.2023

Ko'chirishlar soni:

0

Hajmi:

2360.087890625 KB
Mavzu:  C++ tilining grafik tartibida ishlash asoslari
MUN DA RIJ A
   KIRISH… … … … … … … … … … … … … … … … … … … … … … … … … … ...       3
I BOB C++ TILIDA  GRA FIKA  BILA N  ISHLA SH VOSITA LA RI ….. 6
1.1. C++   tilida   grafika   bilan   ishlovchi   dasturlash
muhitlari……………. 6
1.2. C++   tilida   grafika   bilan   ishlashda   asosiy   kutubxonalar.
…………… 12
II  BOB C++   TILIDA   GRA FIK   IN TERFEY S   Y A RA TISH
TEX N OLOGIY A LA RI ………………………………………….. 18
2.1 Borland   C++   Builderda   oddiy   grafik   interfeyslar
yaratish…………. 18
2.1 Visual   Studio   2017   C++   kodlari   orqali   interfeys
yaratish…….…… 22
X ulosa ………………………………………………………………………… 34
Foy dalanilgan adabiy ot lar ro‘y xat i ………………………………………… 35
1 KIRISH
  C++   dasturlash   tilining   yaratilishi   haqida   ma`lumot.   C++   dasturlash   tili   C
dasturlashtiligaasoslangan. C dasturlashtilio`z navbatida B va BCPL dasturlashgan
tillaridan   kelib   chiqqan.   BCPL   -   1967   yilda   Martin   Richards   tomonidan   o`ylab
topilgan bo`lib, operatsion tizimlarni yaratish uchun mo`ljallangan. Ken Thompson
o`zining   B   tilida   BCPL   ning   ko`p   xossalarini   yaratishga   harakat   qilgan   va   B
dasturlash   tilida   asosan   operatsion   tizimning   birinchi   variantlarini   yozgan.   BCPL
ham, B ham tipsiz til bo`lgan. 
Ya`ni   o`zgaruvchilarning   ma`lum   bir   tipi   bo`lmagan   -   har   bir   o`zgaruvchi
kompyuter   xotirasida   faqat   bir   bayt   joy   egallagan.   O`zgaruvchini   qanday   sifatda
ishlatish esa, ya`ni butun sonmi, haqiqiy sonmi yoki harfmi, dasturchining vazifasi
bo`lgan. C tilini Dennis Ritchie B tiliga asoslanib yaratdi va ilk bor C tilini 1972
yili Bell Laboratoriyasida, DEC PDP-11 kompyuterida qo`lladi. C o`zidan oldingi
B   va   BCPL   tillarining   juda   ko`p   muhim   tomonlarini   o`z   ichiga   olish   bilan   bir
qatorda o`zgaruvchilarni tiplashtiradi va turli yangiliklar kiritilgan. Boshlanishda C
asosan UNIX tizimlarida keng tarqaldi. C mashina arxitekturasi bilan tez muloqot
qiluvchi   dasturlash   tilidir.   1983   yilda,   C   tili   keng   tarqalganligi   sababli,   uni
standartlash harakati boshlandi. 
Buning  uchun Amerika  Milliy Standartlar  Komiteti  (ANSI)   qoshida  X3J11
texnik   komitet   tuzildi.   1989   yilda   ushbu   standart   qabul   qilindi.   Standartni   dunyo
bo`yicha   keng   tarqatish   maqsadida   1990   yilda   ANSI   va   Dunyo   Standartlar
Tashkiloti   (ISO)   hamkorlikda   C   ning   ANSI/ISO   9899:1990   standartini   qabul
qilishdi. Shuning uchun C da yozilgan dasturlar mayda o`zgarishlar yoki umuman
o`zgarishlarsiz   juda   ko`p   kompyuter   platformalarida   ishlaydi.   C++   1980   -yillar
boshida   Bjarne   Stroustrup   tomonidan   C   ga   asoslangan   tarzda   tuzildi.   C++   juda
ko`p   imkoniyatlarni   o`z   ichiga   olgan,   lekin   eng   asosiysi   u   ob`yektlar   4   asosida
dasturlashga imkon beradi. Dasturlarni  tez va sifatli yozishga hozirgi kunda katta
ahamiyat   berilmoqda.   Buni   ta`minlash   uchun   ob`yektli   dasturlash   g`oyasi   ilgari
surildi.   Xuddi   1970   -   yillar   boshida   strukturali   dasturlash   kabi,   dasturlarni
2 hayotdagi jismlarni modellashtiruvchi ob`yektlar orqali tuzish dasturlash sohasida
inqilob qildi. 
C++   dan   tashqari   boshqa   ko`p   ob`yektli   dasturlashga   yo`naltirilgan   tillar
mavjud.   C++   esa   gibrid   tildir.   Unda   C   ga   o`xshab   strukturali   dasturlash   yoki
yangicha, ob`yektlar bilan dasturlash mumkin. Yangicha deyishimiz ham nisbiydir.
Ob`yektli dasturlash falsafasi paydo bo`lganiga ham yigirma yildan oshyapti. C++
funksiya   va   ob`yektlarning   juda   katta   kutubxonasiga   ega.   Ya`ni   C++   tilida
dasturlashni o`rganish ikki qismga bo`linadi. Birinchisi bu C++ ni o`zini o`rganish,
ikkinchisi   esa   C++   ning   standart   kutubxonasidagi   tayyor   ob`ekt-funksiyalardan
foydalanishni   o`rganishdir.   C++   alfaviti.   C++   tilida   buyruqlar   va   so`zlar,   barcha
elementlar C++ tilining alfavitida yoziladi. Alfavitga quyidagi simvollar kiradi.
  •   Katta   va   kichik   lotin   alfavit   harflari   (A,   B,   …   Z,   a,   b,   …   z),   pastga
chiziqcha belgisi (_) (harflar bilan barobar yozilganda); 
• arab raqamlar: 0 dan 9 gacha; 
• Maxsus simvollar; masalan, +, *, { , &; 
•   Ko`rinmaydigan   simvollar   (“Umumlashgan   bo`shliq   simvollari”).
Leksemalarni   o`zaro   ajratish   uchun   ishlatiladigan   simvollar   (masalan,   bo`shliq,
tabulyatsiya, yangi qatorga o`tish belgilari). 
C++   alfaviti   aslida   kompyuterdagi   barcha   belgilarni   qabul   qiladi.   Chunki
standartda 5 uning alfavitini barcha belgilar to`plami deb qabul qilingan. Shuning
uchun   izohlarda,   satrlarda   va   simvolli   o`zgarmaslarda   boshqa   literallar,   masalan,
rus harflarini ishlatilishi mumkin. C++ tilida olti xil turdagi leksemalar ishlatiladi:
erkin   tanlanadigan   va   ishlatiladigan   identifikatorlar,   xizmatchi   so`zlar,
o`zgarmaslar (const), amallar, ajratuvchi belgilar.
C++   funksiya   va   ob'yektlarning   boy   kutubxonasiga   ega.   Bundan   kelib   chiqadiki
C++   dasturlash   tilini   o'rganish   2   qismga   bo'linadi:   dastlab,   C++   tili   sintaksisi
o'rganiladi   va   shundan   so'ng   uning   asosiy   kutubxonalari   birma-bir   ko'rib   chiqib,
3 yodlash   lozim   bo'ladi.   Bundan   ko'rinib   turibdiki,   bu   til   juda   katta   hajmni   o'z
qamroviga oladi.
C++   tilining   egasi   yo'q   u   hech   kimga   tegishli   emas.   Bu   til   С   tilidan   kelib
chiqgani   uchun   bosh   harf   С,   ++   esa   bu   tildagi   qiymatni   bittaga   ko'tarish   belgisi
hisoblanadi va bu belgi C++ dasturlash tilida paydo bo'ldi.
C++   dasturlash   tili   kompilyatsiya   qilinadigan   til   hisoblanadi   bu   degani   yozilgan
kod oldin mashina tiliga o'giriladi va keyin ishga tushiriladi.
4 I BOB.  C++ TILIDA  GRA FIKA  BILA N  ISHLA SH VOSITA LA RI
1.1. C++ tilida grafika bilan ishlovchi dasturlash muhitlari
C ++   Builder   -   bu   RAD   ilovalarini   ishlab   chiqishda   oson   bo'lgan   to'liq
kengaytiriladigan   dasturiy   mahsulotdir.   C++   Builder   C++   tilida   turli   sohalarda
dasturiy   ta'minot   ishlab   chiqish   imkonini   beruvchi   optimallashtirilgan   IDE
(Integrated development environment, ya’ni Integratsiyalashgan rivojlanish muhiti)
dasturlash muhitini o'z ichiga oladi.
C++ Builder - bu STL, MFC, VCL, CLX va boshqalar kabi kutubxonalarga
ega   bo'lgan   keng   qamrovli   kompleks.   Bundan   tashqari,   kompilyator,   muharrir,
kodni   tuzatuvchi   va   ishlab   chiqish   uchun   foydali   bo'lgan   boshqa   ko'plab
komponentlar   mavjud.   Ilovalarni   ishlab   chiqish   jarayoni   Delphi   ga   o'xshaydi,
shuning   uchun   Delphi   uchun   ishlab   chiqilgan   komponentlarning   aksariyati   hech
qanday   o'zgartirishlar   va   daflarsiz   C   ++   Builder   ga   integratsiya   qilinishi
mumkin.   C++ Builder-da komponentlarning aksariyati Delphi-dan kelgan.   Buning
yordamida   Delphida   yozilgan   kodni   minimal   bilim   bilan   C++   Builder   ga
aylantirish mumkin.
C++ Builderda yulib olib tashlash komponentlari va o'rnatilgan WYSIWYG
interfeys   muharriri   yordamida   vizual   ilovalarni   ishlab   chiqishni   soddalashtirish
imkonini beruvchi juda ko'p vositalar mavjud.
Dastlab, C ++ Builder dasturiy mahsulotini ishlab chiqish Borland Software
tomonidan   amalga   oshirildi   va   hozirgi   vaqtda   Embarcadero   Technologies,   uning
CodeGear bo'limi.
Embarcadero   C++   Builder   -   bu   Windows,   Android   va   iOS   kabi   tizimlar
uchun   chiroyli   va   qulay   foydalanuvchi   interfeysi   bilan   kichikdan   kattagacha
ilovalarni   ishlab   chiqish   uchun   rivojlangan   kross-platformali   dasturiy
vositadir.   Embarcadero   C++   Builderning   so‘nggi   versiyalari   Windows   va
FireMonkey   (FMX)   uchun   yuqori   samarali   mahalliy   ilovalarni   yaratish   imkonini
beruvchi VCL ramkasini o‘z ichiga oladi.
Dizayn.
5 • Windows   uchun   VCL   bilan   tezkor   dastur   ishlab   chiqish,   beqiyos   mahalliy
ishlashni ta'minlaydi.
 Drag-and-drop texnologiyasi istalgan komponentlarni ariza shakliga o‘tkazish
imkonini beradi.
 Turli sertifikatlangan sheriklardan komponentlarni kengaytirish imkoniyati.
 O'zaro platformali loyihalar uchun FMX texnologiyasi.
 Vizual vositalar yordamida ma'lumotlar manbalarini foydalanuvchi interfeysi
elementlariga tezda bog'lash uchun qulay LiveBindings konstruktori.
 Live   On-Device   Preview   real   vaqt   rejimida   ishlab   chiqilgan   ilova   dizaynini
tekshirish va baholash imkonini beradi.
 Kompyuterlar, planshetlar va smartfonlar uchun yuqori DPI ruxsatini qo'llab-
quvvatlaydigan sezgir dizaynni ishlab chiqish.
Kodlash (dastur matni).
• Windows,   Android   va   iOS   uchun   tez   va   optimallashtirilgan   C++
kompilyatorlari.
 Code Insight ilovani ishlab chiqish jarayonini soddalashtiradi.
 DBMSni   keng   ko'lamli   qo'llab-quvvatlash:   InterBase,   Oracle,   PostgreSQL,
DB2,   SQLite,   MySQL,   SQL   Server,   SQL   Anywhere,   Firebird,   Access,
Advantage DB, Informix, MongoDB.
 Kod yozishda qulay o'rnatilgan maslahatlar.
 Mashhur Boost, Eigen va ZeroMQ kutubxonalari bilan integratsiya.
 Ishlab   chiquvchilar   hamjamiyatining   asboblari   va   kutubxonalari   to'plamini
kengaytirish qobiliyati.
 Versiyalarni boshqarishni qo'llab-quvvatlash - Git, Subversion va Mercurial.
Nosozliklarni tuzatish.
• Birlashtirilgan   vositalar   to'plami   ilovalarni   ishlab   chiqish   vaqtini   sezilarli
darajada   qisqartirishi   va   dizayn   vositalarini,   kompilyatorni   va   tuzatuvchini
yagona muhitda birlashtirishi mumkin.
 Shartli   to'xtash   nuqtalari   ma'lum   joylarda   yoki   belgilangan   shart   yuzaga
kelganda dastur bajarilishini to'xtatib turish imkonini beradi.
6  Kodning   bajarilishi   ketma-ketligini   kuzatish   va   aniqlash   uchun   qulay
qo'ng'iroqlar stekini tahlil qilish.
 Kodni tuzatish paytida o'zgaruvchilar qiymatini tezda tekshiring.
Microsoft   C++   (MSVC)   Visual   Studio   –   bu   integratsiyalashgan   ishlab
chiqish   muhitining   (IDE)   bir   qismi   sifatida   boshqa   tillarga  o'xshash   ko'plab   oyna
va vositalardan foydalanadi.  
IDE   dagi   umumiy   vositalardan   tashqari,   Visual   Studio   MSVC   da   mahalliy
kodni ishlab chiqish uchun maxsus vositalar mavjud.  
Aslini   olganda,   project   bajariladigan   dastur   yoki   kutubxonaga   o'rnatilgan
tasvirlar va ma'lumotlar fayllari kabi manba kodli fayllar va resurslar to'plamidir.
Visual Studio sizga IntelliSense, ko'rish va disk raskadrovkani to'liq qo'llab-
quvvatlashni   ta'minlaydigan   har   qanday   loyiha   tizimlari   yoki   maxsus   qurish
vositalaridan foydalanish imkonini beradi:
 MSBuild     -   Visual   Studio   uchun   mahalliy   loyiha   tizimi.   Agar   siz   asosiy
menyudan   Fayl   >   Yangi   >   Loyiha   ni   tanlasangiz   ,   mavjud
MSBuild   loyihasi   shablonlari   ro‘yxati   paydo   bo‘ladi   ,   ular   yordamida   siz
bir   zumda   turli   maqsadlar   uchun   C++   ilovalarini   ishlab   chiqishni
boshlashingiz mumkin.
1.1- rasm .  Yangi   loyiha   yaratish
Agar   mavjud   CMake   loyihalari   yoki   boshqa   loyiha   tizimidan
foydalanmasangiz, bu andozalar ko'p hollarda yangi loyihalar yaratish uchun
mos keladi.  
 CMake     - bu C++ Desktop ish yukini o'rnatganingizda Visual Studio IDEga
integratsiyalangan   platformalararo   qurish   tizimi.   Siz   yangi   loyihalar   uchun
7 CMake   loyihasi   shablonidan   foydalanishingiz   yoki   oddiygina
CMakeLists.txt fayli bilan jildni ochishingiz mumkin.  
 Boshqa barcha C++ tuzilma tizimlari, shu jumladan bo'sh fayllar to'plamlari,
Open   Folder   funksiyasi   orqali   qo'llab-quvvatlanadi.   Tayyor   dasturini
chaqirish   va   disk   raskadrovka   seanslarini   sozlash   uchun   oddiy   JSON
fayllarini yaratishingiz mumkin.  
Versiyalarni   boshqarish   tizimlari   bir   nechta   ishlab   chiquvchilarning   ishini
muvofiqlashtirishga,   tugallanmagan   komponentlarni   ishchi   koddan   ajratishga,
shuningdek manba kodini zaxiralashga imkon beradi.    
1.1.2-rasm. Visual Studio Team Explorer oynasi
Git-ni Azure-dagi omborlar bilan integratsiya qilish haqida ko'proq ma'lumot
olish   uchun   Azure   Repos   va   Visual   Studio   bilan   kod   almashishga   qarang.   Gitni
GitHub   bilan   integratsiya   qilish   haqida   ko'proq   ma'lumot   olish   uchun   Visual
Studio va GitHub: Better Together ga qarang.
Kutubxonalarni   olish.   Uchinchi   tomon   kutubxonalarini   olish   va   o'rnatish
uchun   vcpkg   paket   menejeridan   foydalaning.   Katalogda   hozirda   1700   dan   ortiq
ochiq kodli kutubxona paketlari mavjud.
Konstruktorlar bilan foydalanuvchi interfeyslarini yaratish.  Agar ilovangiz
foydalanuvchi   interfeysiga   ega   bo'lsa,   uni   tugmalar,   ro'yxatlar   va   hokazo   kabi
boshqaruv   elementlari   bilan   tezda   to'ldirish   uchun   dizaynerdan   foydalanishingiz
mumkin.Agar   siz   boshqaruvni   asboblar   oynasi   oynasidan   dizayn   yuzasiga   sudrab
8 olib   borsangiz,   Visual   Studio   avtomatik   ravishda   resurslarni   yaratadi   va   ushbu
elementning   ishlashi   uchun   zarur   bo'lgan   kod.   Shundan   so'ng   siz   boshqaruvning
ko'rinishini   va   voqealarga   qanday   javob   berishini   belgilaydigan   o'z   kodingizni
yozishingiz mumkin.
Kod   yozish.   Loyiha   yaratilgandan   so'ng,   uning   barcha   fayllari   Solution
Explorer   oynasida ko'rsatiladi.  
1.1.3-rasm. Solution Explorer oynasi
Kod muharriri maxsus C++ manba kodli matn protsessoridir.   U kodni o'qish
va tushunishni osonlashtirish uchun til kalit so'zlari, usul va o'zgaruvchilar nomlari
va boshqa kod elementlarini ta'kidlaydi.   Shuningdek, u kodni qayta tiklash va turli
fayllar   o'rtasida   navigatsiya   qilish   vositalarini   va   kod   qanday   tuzilganligi   haqida
asosiy ma'lumotlarni taqdim etadi.  
Resurslarni   qo'shish   va   tahrirlash.   Windows   dasturi   yoki   DLL
odatda   dialog oynalari, piktogrammalar, tasvirlar, lokalizatsiya qilinadigan satrlar,
ekranlar,   ma'lumotlar   bazasiga   ulanish   satrlari   yoki   har   qanday   ixtiyoriy
ma'lumotlar kabi   resurslarni o'z ichiga oladi.   Visual Studio resurslarni qo'shish va
tahrirlash vositalarini o'z ichiga oladi.  
Menyu   satridan   “ Build   >   Build   Solution”   ni   tanlang   yoki   loyihani
kompilyatsiya qilish va ulash uchun   “ CTRL+SHIFT+B”  tugmalarini bosing.  
9 1.1.4- rasm .  Dastur   natijasi
Bundan tashqari, kompilyator (cl.exe) va NMAKE va LIB kabi qurish bilan
bog'liq   boshqa   ko'plab   mustaqil   vositalardan   to'g'ridan-to'g'ri   buyruq   satridan
foydalanishingiz mumkin.  
Nosozliklarni   tuzatish.   Nosozliklarni   tuzatishni   boshlash
uchun   F5   tugmasini   bosing   .   Har   bir   belgilangan   to'xtash   nuqtasida   bajarish
to'xtatiladi   ( F9 ).   Siz  kodni   satr   bo'yicha  bajarishingiz   mumkin  ( F10 ),  belgilangan
o'zgaruvchilar   yoki   registrlarning   qiymatlarini   ko'rishingiz   va   ba'zi   hollarda   hatto
kodga   o'zgartirishlar   kiritishingiz   va   qayta   kompilyatsiya   qilmasdan   tuzatishni
davom ettirishingiz mumkin.
  Quyidagi   rasmda   to'xtash   nuqtasida   tugatilgan   disk   raskadrovka   seansi
ko'rsatilgan.  
1.1.5-rasm. Disk raskadrovka seansi
10 1.2. C++ tilida grafika bilan ishlashda asosiy kutubxonalar
C++ uchun grafik kutubxonalar UI ilovalarini ishlab chiqishni imkon qadar
tez va qulay qilish imkonini beradi.   Keling, bularning asosiysini ko‘rib chiqaylik:
SFML .
SFML (Simple and Fast Multimedia Library) – bu C++ uchun eng qulay va
tezkor   grafik   kutubxonalardan   biridir.   Uning   shubhasiz   afzalligi   -   bu   tilni   bilish
darajasi   va  rivojlanish   qulayligi   uchun   minimal   talablar:   bir   necha   kun   ichida  siz
to'liq to'liq dastur yozishingiz mumkin. 
Masalan,   birinchi   grafik   ilovasi   "SFML   ishlaydi!"   bir   daqiqada   yozish
mumkin.   Yana   bir   afzalligi   kross-platforma:   SFML   Windows,   Linux   (faqat   X11,
Wayland   emas)   va   Mac   OS   ostida   ishlaydi,   uni   Android   va   iOS   uchun   chiqarish
rejalashtirilgan.
SFML   kutubxonasidan   asosan   kichik   startaplar   va   o'yinlar   sevimli
mashg'ulot   bo'lgan   dasturchilar   foydalanadi.   Dasturning   grafik   qismini   ishlab
chiqish katta hajmdagi kod yozishni talab qilmasligi sababli SFML kichik jamoalar
orasida mashhurdir.
Qt .
Qt   -   bu   tezkor   va   oson   GUI   dizayni   uchun   vositalar   to'plami.   Albatta,   siz
ham   bu   erda   o'yin   yozishingiz   mumkin   -   nega   emas?   -   lekin   Qt   dasturchilarni
11 asosan   tez,   qulay,   moslashuvchan   va   kross-platforma   bo'lgani   uchun   o'ziga
tortadi.   Qt   ko'p   jihatdan   hatto   SFML   dan   ham   oshib   ketdi:   kutubxona   Windows,
Linux   va   Mac   OS-da,   shuningdek   mobil   platformalarda   -   Windows   Mobile,
Android va iOS-da mavjud.
Qt C++ ni MOC (Meta Object Compiler) bilan kengaytiradi va qo'shimcha
funktsiyalarni (signallar va uyalar kabi) taqdim etadi. Shuningdek, u pullik qo'llab-
quvvatlash   xizmatiga   (shuningdek,   pullik   litsenziyaga)   ega.   Qt   uchun   IDElarning
katta   tanlovi   mavjud:   QtDesigner,   QtCreator,   QDevelop,   Edyuk,   shuningdek,
Visual Studio, Eclipse va XCode bilan integratsiya.
Cairo .
Cairo   -   bu   Linux,   Windows   va   Mac   OS   uchun   vektorli   renderlash
kutubxonasi.   Masalan,   Mozilla   kabi   yirik   loyiha   Gecko   brauzeri   dvigatelida
Cairodan   foydalanadi.   Cairo   shuningdek,   ba'zi   operatsion   tizimlar   (MorphOS,
AmigaOS)   va   ilovalar   (InkScape,   Synfig,   Graphite)   asosida   joylashgan.
Kutubxonadan   foydalanganda,   rus   tilidagi   resurslarning   etishmasligiga   tayyor
bo'ling.
Cocos2D-X .
Cocos 2 D - X   kross   –   bu   platforma   kutubxonasi   mobil   o ' yinlarni   ishlab
chiqishni   soddalashtirish   uchun   mo ' ljallangan .   Qt   bilan   bir   xil   platformalarni
qo ' llab - quvvatlaydi .  Afzalliklar   orasida   Cocos   Creator   kutubxonasi   asosida   alohida
o ' yin   dizaynerining   mavjudligi ,   foydalanish   qulayligi   va   yaratilishini   ta ' kidlash
kerak   .   Dvigatelga   asoslangan   o ' yinlar   ro ' yxati   barcha   mavjud   platformalarda
ishlaydigan   dunyoga   mashhur   BADLANDni   o ' z   ichiga   oladi .
12 Agar   siz   o'yin   yaratishda   katta   hajmdagi   grafik   va   animatsiya   bilan
ishlashingiz   kerak   bo'lsa,   unda   Cocos2D-X   o'rniga   Unity-dan   foydalangan
ma'qul.   Unity   Photoshop,   Maya   yoki   Blender   kabi   vositalar   bilan   muammosiz
integratsiya   qilish   qobiliyatiga   ega.   Cocos2D-X   da   barcha   grafikalar   tashqaridan
qo'shiladi va koddan havola qilinadi.
Juse.
Juce   -   bu   C++   da   ilovalar   va   plaginlarni   yaratish   uchun   platformalararo
ramka.
Juce haqida juda ko'p hujjatlar mavjud, lekin rus tilida emas.   Shuning uchun
siz   “C++   da   JUCE   4.2.x   bilan   dasturlash:   JUCE   kutubxonasi   yordamida   oddiy
misollar   bilan   platformalararo   multimedia   ilovalarini   yaratish”   kitobini   yuklab
olishingiz mumkin .
Juce   audio   plaginlarini   yaratish   uchun   o'rash   interfeyslari   to'plami   uchun
audio dasturiy ta'minot ishlab chiqaruvchilari orasida ko'proq mashhur.
wxVidjetlar .
wxWidgets   GUIni ko'rsatish uchun eng ommobopdir, lekin ayni paytda eng
mashhur grafik kutubxonalardan biridir.   Uning asosiy afzalligi ishlashdir.   QT faqat
13 tugmalar   va   aylantirish   panellari   kabi   elementlar   uchun   past   darajadagi   koddan
foydalansa-da, wxWidgetlar tizimga xos bo'lib, barcha elementlarni tizim uslubiga
iloji boricha yaqinroq ko'rsatishga imkon beradi.
WxWidgetsning   muhim   xususiyati,   iloji   boricha,   operatsion   tizim
interfeysining   "mahalliy"   grafik   elementlaridan   foydalanishdir.   Bu   ko'plab
foydalanuvchilar   uchun   muhim   afzallikdir,   chunki   ular   ma'lum   bir   muhitda
ishlashga odatlanib qolishadi va dasturlarning interfeysidagi o'zgarishlar ko'pincha
ularning ishida qiyinchiliklarga olib keladi.
SDL 2.0
SDL   -   bu   ilovalar   (asosan   o'yinlar)   yozish   uchun   mo'ljallangan   o'zaro
platformali   2D   kutubxona.   Windows,   Linux,   Mac   OS,   shuningdek,   Android,
Windows   Mobile   va   iOS   qo'llab-quvvatlanadi.   Kutubxonaning   afzalliklari   -
tezkorlik,   ishonchlilik   va   foydalanish   qulayligi.   Shuningdek,   kutubxonada   tovush
bilan   ishlash   uchun   professional   vositalar   mavjud   -   bu   yirik   loyihalarni   ishlab
chiqishda katta ortiqcha.
wxWidgetlar bilan birlashadi va OpenGL bilan yaxshi integratsiyalashgan.
Habr-da chop etilgan   darslarning   butun turkumi mavjud.
GTK+ .
14 Ehtimol,   eng   mashhur   grafik   kutubxonalardan   biri.   GTK+   -   bu   ko'plab
tizimlarda keng qo'llaniladigan grafik ramka. U dastlab GIMP komponenti sifatida
ishlab   chiqilgan,   ammo   birinchi   barqaror   versiya   chiqarilgandan   beri   20   yil
davomida u yuzlab boshqa ilovalarda qo'llanilgan.
Endi GTK + - bu bir xil QT dan kam bo'lmagan to'liq huquqli grafik ramka.
U turli dasturlash tillarini qo'llab-quvvatlaydi va rivojlanishda davom etmoqda.
O'z vaqtida kutubxona Qt ga muqobil ravishda yaratilgan bo'lib, u pullik edi.
GTK+   C   tilini   qo‘llab-quvvatlaydigan   kam   sonli   ramkalardan   biridir.   Kutubxona
kross-platformadir,   biroq   Linuxdagi   dasturlar   Windows   yoki   Mac   OS’ga
qaraganda mahalliyroq ko‘rinadi, degan fikr bor (GTK+ hatto KDE-da ham yaxshi
qo‘llab-quvvatlanadi). 
FLTK.
FLTK   ("fulltic"   deb   talaffuz   qilinadi)   -   bu   Windows,   Linux   (X11)   va   Mac
OS   da   ishlaydigan   grafik   kutubxona.   OpenGL-dan   foydalangan   holda   3D
grafiklarni   qo'llab-quvvatlaydi   va   o'rnatilgan   GLUT   simulyatoriga
ega.   Interfeyslarni yaratish uchun o'rnatilgan dastur mavjud - FLUID.  
Nana .
Nana   -   zamonaviy   C++   uslubidagi   o'zaro   platformali   GUI   dasturlash
kutubxonasi   .   Qo'llab-quvvatlanadigan   tizimlar:   Windows,   Linux   (X11)   va   Mac
OS   (eksperimental).   C++   11\17-ni   qo'llab-quvvatlash   zamonaviy   C++
funksiyalaridan   foydalanish   imkonini   beradi:   lambdalar,   aqlli   ko'rsatkichlar   va
standart   kutubxona.   Bu   ramka   emasligi   sababli,   Nanadan   foydalanish   dastur
arxitekturasiga ta'sir qilmaydi.
15 II  BOB. C++ TILIDA  GRA FIK IN TERFEY S Y A RA TISH
TEX N OLOGIY A LA RI
2.1. Borland C++ Builderda oddiy grafik interfeyslar yaratish
Dastur   ishlashi   jarayonida   xotiradan   kamroq   joy   egallashi   dasturning   tez
ishlashiga   olib   keladi.   Bu   muammolar   dasturdagi   o'zgaruvchilar   sonini
kamaytirish, yoki o'zgaruvchilar saqlanadigan yacheyka hajmini kamaytirish orqali
erishiladi.
Borland   C++   Builder   da   butun   va   haqiqiy   sonlarni   e'lon   qilish   uchun   bir   nechta
toifalar mavjud. Ular bir - biridan kompyuter xotirasida qancha hajm egallashi va
qabul qiluvchi qiymatlar oralig'i bilan farq qiladi.
Butun sonlar;
unsigned short int 0 ..65535 2 bayt
short int   –32768..32767 2 bayt
unsigned long int   0..42949667295 4 bayt
long int   –2147483648..2147483647 4 bayt
int   (16 razryadli) –32768..32767 2 bayt
int   (32 razryadli) –2147483648..2147483647 4 bayt
unsigned int   (16 razryadli)0..65535 2 bayt
unsigned int   (32 razryadli)0..42949667295 4 bayt
Haqiqiy sonlar:
float   1.2 Е –38..3.4 Е 38 4 bayt
double   2.2 Е –308..1.8 Е 308 8 bayt
long double   (32 razryadli) 3.4e-4932..-3.4e4932 10 bayt
Mantiqiy ifoda:
bool true   yoki   false   1 bayt
Belgilar:
char   0..255 1 bayt
void   2 yoki 4
16 Har   xil   toifadagi   o'zgaruvchilar   kompyuter   xotirasida   turli   xajmdagi
baytlarni egallaydi. Xattoki bir toifadagi o'zgaruvchilar ham qaysi kompyuterda va
qaysi   operatsion   sistemada   ishlashiga   qarab   turli   o'lchamdagi   xotirani   egallashi
mumkin.
Borland   C++   Builder   da   ixtiyoriy   toifadagi   o'zgaruvchilarning   o'lchamini   sizeof
funksiyasi   orqali   aniqlash   mumkin.   Bu   funksiyani   o'zgarmasga,   biror   toifaga   va
o'zaruvchiga   qo'llash   mumkin.  Toifalarni   kompyuter   xotirasida   egallagan   xajmini
aniqlash.
Borland C++ Builder da dasturi:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit1->Text=sizeof(char);
Edit2->Text=sizeof(bool);
Edit4->Text=sizeof(int);
Edit5->Text=sizeof(float);
Edit6->Text=sizeof(double);
Edit7->Text=sizeof(long double);
}
NATIJA:
Matemetik   funksiyalardan   dasturda   foydalanish   uchun   math.h   sarlavha
faylini progarmmaga qo'shish kerak. #include <math.h>
1. abs(x) - butun sonlar uchun /x/
2. fabs(x) - haqiqiy sonlar uchun
3. labs(x) - uzun butun son uchun
4. Pow(x,y)-x y
17 5. sqrt(X)-ildiz(X)
6. ceil(x)-haqiqiy toifadagi x o'zgaruvchisi qiymatini unga eng yaqin katta 
butun songa aylantiradi.
7. floor(x)-haqiqiy toifadagi x o'zgaruvchisi qiymatini unga eng yaqin kichik 
butun songa aylantiradi.
8. cos(x)-x burchak kosinusini aniqlash. x radian o'lchovida.
9. sin(x)-x burchak sinusini aniqlash. x radian o'lchovida.
10 exp(x)-e x
11. log(x)-x sonining natural logarifmini qaytaradi.
12. log10(x)-x sonining 10 asosli logarifmini qaytaradi.
1 - Misol:  n va m natural sonlari berilgan. n sonini m soniga bo'lib, qoldiqni
aniqlovchi dastur tuzilsin.
Borland C++ Builder da dasturi:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int a,n,m;
n=StrToFloat(Edit1->Text);
m=StrToFloat(Edit2->Text);
a=n%m;
Edit3->Text=FloatToStr(a);
}
NATIJA:
2  -  Misol:   n  va  m   natural   sonlari   berilgan.  n  sonini   m   soniga  bo'lib,  butun
qismini aniqlovchi dastur tuzilsin.
Borland C++ Builder da dasturi:
18 void __fastcall TForm1::Button1Click(TObject *Sender)
{
int a,n,m;
n=StrToFloat(Edit1->Text);
m=StrToFloat(Edit2->Text);
a=n/m;
Edit3->Text=FloatToStr(a);
}
NATIJA:
3 - misol.  a sonini b soniga bo`lib 2 xona aniqlikda chiqarish.
Borland C++ Builder da dasturi:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int a,n,m;
n=StrToFloat(Edit1->Text);
m=StrToFloat(Edit2->Text);
a=n/m;
Edit3->Text=FloatToStr(a);
}
NATIJA:
19 4 - misol.  Butun sonni bo'lish.
Borland C++ Builder da dasturi:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int a,b;
a=StrToFloat(Edit1->Text);
b=StrToFloat(Edit2->Text);
Edit3->Text=FloatToStr((float(a))/(float(b)));
Edit4->Text=FloatToStr(a/b);
}
NATIJA:
20 2.2. Visual Studio 2017 C++ kodlari orqali interfeys yaratish
Internetda   "Windows   Forms   Application"   orqali   Visual   Studio   2010   da
grafik ilovalarni  yaratish qanchalik oson ekanligini  ko'rsatadigan ko'plab videolar
mavjud.   VS2015   va   VS2017da   yangi   boshlanuvchilar   uchun   vositalar
qiyinlashdi.   Ilovani   bir   necha   usulda   yaratishingiz   mumkin,   eng   oddiyi   "CLR
Empty Project" orqali.   Ushbu maqola yangi boshlanuvchilar uchun mo'ljallangan,
ammo   u   o'quvchi   "Salom   dunyo"   konsol   ilovalarini   yaratishda   hech   qanday
muammo yo'qligini taxmin qiladi.
Avvalo   C++   da   grafik   dastur   yaratish   uchun   qanday   komponentlar
o‘rnatilishi   kerakligini   sanab   o‘tamiz.   Ulardan   uchtasi   bor,   barchasi   "C++
yordamida ish stolini ishlab chiqish" bo'limiga tegishli:
 VC++ 2017 v141 asboblar to'plami (x86,x64)
 Desktop C++ x86 va x64 uchun Windows 10 SDK (10.0.15063.0)
 C++/CLI-ni qo'llab-quvvatlash
Birinchi   ikkitasi   C++   da   har   qanday   dastur   yaratish   uchun,   uchinchisi
dasturning   grafik   qobig'ini   yaratish   uchun   kerak.   Ushbu   mavzuni   o'rganish
davomida men yana yigirmata odamni bog'ladim  - ulardan yangi boshlanuvchilar
uchun foyda yo'q.
21 Rivojlanish muhitini o'rnatgandan so'ng, Fayl > Yangi > Loyiha...   (   ^+N   ) ga
o'ting,   paydo   bo'lgan   oynada   O'rnatilgan   >   Visual   C++   >   CLR   >   CLR   bo'sh
loyihasini qidiring.
Quyidagi   maydonlar   bunday   dasturlar   uchun   an'anaviy   tarzda
to'ldirilgan.   Loyiha nomida bo'sh joylarga ruxsat bermaslik yaxshiroqdir, aks holda
kodda keyinroq aqlli bo'lishingiz kerak bo'ladi.
  Ilovaga   asosiy   shakl   qo'shishingiz   kerak.   Ushbu   maqsadga   erishishning
ikkita ekvivalent usuli mavjud.
Birinchisi:   “Yechim   tadqiqotchisi”da   loyiha   nomini   sichqonchaning   o‘ng
tugmasi bilan bosing, ochiladigan kontekst menyusida   Qo‘shish > Yangi element...
Ikkinchi   yo‘l:   asosiy   menyuda   Loyiha   >   Yangi   element   qo‘shish   yoki   shunchaki
^+A  bosing.    
 
Ko'rsatilgan oynada   Visual C++ > UI > Windows Form
22 Dasturning asosiy shakli yaratildi.   Ba'zi kompyuterlarda 0x8000000A xatosi
hozirda paydo bo'lishi mumkin, bu holda siz shunchaki yorliqni yopishingiz kerak.
Ushbu   xato   Visual   Studio   2015   dan   beri   yaxshi   ma'lum.   Siz   uning
muhokamasini, masalan, Microsoft web-saytida link1 , link2 , link3 da o'qishingiz
mumkin.   Ko'rinishidan,   Visual   Studio   ishlab   chiqish   jamoasi   bu   xatoni   bu   haqda
nayzalarni sindirish uchun jiddiy deb hisoblamaydi.
Lekin   forma   yaratishning   o‘zi   yetarli   emas,   uni   yaratilayotgan   dasturga
to‘qish   kerak.   Buni   amalga   oshirish   uchun   "Yechim   Explorer"   da   loyiha   nomini
o'ng tugmasini bosing va ochilgan kontekst menyusidan "   Xususiyatlar   "ni tanlang.
Ochilgan oynada ikkita narsani  bajaring. Bog'lovchi  > Tizim > Quyi tizim,
ochiladigan ro'yxatdan "   Windows (/ SUBSYSTEM: WINDOWS)   " ni tanlang
23 Bog'lovchi > Kengaytirilgan > Kirish nuqtasi.   Bo'sh maydonga 
"   asosiy   "   (tirnoqsiz)   kiriting: 
MyForm.cpp   faylini   muharrirda   ochish   uchun   "Solution   Explorer"   da   ikki
marta bosing.   Unga matndan nusxa ko'chiring:
#include "MyForm.h"
using namespace System;
using namespace System::Windows::Forms;
[STAThread]
void main(array<String^>^ args) {
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
    Project1::MyForm form;
    Application::Run(%form);
}
Project1   ni   loyihangiz   nomi   bilan   almashtirish   orqali.   (Endi   nega   avvalroq
loyiha   nomidagi   bo shliqlardan   foydalanishni   tavsiya   qilmaganim   tushunarliʻ
bo ldi?)	
ʻ
24 Ajoyib,   hamma   narsa   tayyor!   Endi   biz   loyihani   tuzamiz   va   uni   ishga
tushiramiz.   Agar siz ilgari 0x8000000A ni ochgan bo'lsangiz, unda eng tezkor usul
Visual Studio ni qayta ishga tushirish va undagi loyihani qayta yuklashdir.   Bundan
tashqari, xato hech narsada ko'rinmaydi.
  Yangi   yaratilgan   formamizga   yangi   elementlar   qo'shish   uchun   bizga
Toolbox paneli kerak.   Qisqa tugmachani eslab qolish foydalidir   ^!X
Shaklda   elementlarni   joylashtirish   bilan   ishlash   qiyinchiliklarga   olib
kelmasligi   kerak.   Bu   yerda   hamma   narsa   CodeBlocks   yoki   wxDev-C++   da
wxWidgetlarga   qaraganda   qulayroq   ishlaydi.   Men   hech   qanday   nosozliklarni
sezmadim.
Yangi   yaratilgan   interfeys   elementining   xususiyatlarini   o'zgartirish   uchun
uni   sichqonchaning   o'ng   tugmasi   bilan   bosing   va   mos   ravishda   kontekst
menyusidan "Xususiyatlar" ni tanlang.
Keling,   tugmani   amalda   sinab   ko'raylik.   Keling,   shunday   qilaylikki,   uning
nomi bilan aqlli matnli oyna paydo bo'ladi.   Shakldagi elementni ikki marta bosish
allaqachon   yozilgan   shablon   bilan   kod   muharririni   chaqiradi.   Jingalak   qavslar
ichiga buyruq qo'shing
25        MessageBox::Show("Hello World",
        "My heading", MessageBoxButtons::OKCancel,
        MessageBoxIcon::Asterisk);
Endi ishga tushiramiz va tekshiramiz!
Agar   u   to'satdan   boshlamasa,   unda   birinchi   navbatda   ochiladigan   ro'yxatda
nima   o'rnatilganligini   tekshiramiz.   U   asboblar   panelida   (asosiy   menyu
ostida)   joylashgan .   Bu   Release   (debug emas)   bo'lishi kerak.
  Visual Studio 2017 da grafik ilovalarni yaratishning muqobil usullari.
1.   UWP   (Universal  Windows Platfrom ilovasi)   - Windows 10, Windows 10
Mobile   va   Microsoft   kompaniyasining   shunga   o'xshash   eng   zamonaviy
platformalarida   ishlay   oladigan   universal   ilovalar.   Platforma   Windows   Runtime
dasturining   kengaytmasi   sifatida   yaratilgan.   Hammasi   yaxshi   bo'lardi,   lekin   bu
ilovalar Windowsning eski versiyalarida, hatto sakkiztasida ham ishlay olmaydi.
2.   Windows Desktop Application   - taxminan bir xil VS2015 da u "Win32
Project"   deb   nomlangan   va   VS2010   da   "Windows   Forms   Application".   Endi
eskirgan  deb atash   mumkin  bo'lgan  texnologiya.   VS2010 da  bu grafik dasturlarni
yaratishning oson va qulay usuli edi.   Ammo keyin Microsoft yigitlari yangi ishlab
chiquvchilarni zamonaviyroq texnologiyalarga tortishga qaror qilishdi.   VS2015 va
VS2017 da ushbu vositadan foydalanganda dastur yaratiladi, uni ishga tushirish va
ko'rish mumkin.   Ammo bu ilovada tugmalar va boshqa komponentlarni sudrab olib
boradigan tayyor asosiy shakl mavjud emas.  
 
26 Visual  Studioda GUI ishlab chiqish hujjatlarini  o'qiyotganda doimo qoqilib
ketadigan bir nechta texnologiyalar haqida umumiy ishlanma haqida bir necha so'z.
ATL   (Active   Template   Library)   -   bu   COM   komponentlarini   yozishni
soddalashtirish   uchun   mo'ljallangan   C++   shablon   sinflari   to'plami.
MFC   (Microsoft   Foundation   Classes)   -   bu   professional   ishlab   chiquvchilarga   ish
stoli   ilovalarini   yaratishda   yordam   beradigan   ob'ektlar   kutubxonasi.   ATL   ning
yanada   murakkab   va   chiroyli   versiyasiga   o'xshash   narsa.   ATL   va   MFC   yaxshi
narsalar bo'lib, ular yordamida grafik ilovalarni ham yaratishingiz mumkin.   Lekin
bular mavzuni chuqur bilishni talab qiluvchi vositalardir.
IncrediBuild   -   bu   qo'shimcha   kompyuterlarni   ulash   orqali   ilovalarni
kompilyatsiya   qilish   va   yig'ishni   tezlashtirish   texnologiyasi.   Bu   grafik
interfeyslarni yaratish usullariga bevosita taalluqli emas.
  Misol.   Oddiy grafik kalkulyator uchun kod quyida ko'rsatilgan:
C++   GUI   Kalkulyator   ilovasi.   Windows   formasini   muvaffaqiyatli
yaratganingizdan   so'ng,   endi   siz   kalkulyator   ilovasini   loyihalashtirasiz   va   buning
27 uchun formaga ba'zi tugmalar va matn qutilarini qo'shishingiz kerak.   Matn qutisini
qo'shish uchun o'ng tomondagi paneldagi asboblar panelini bosing va matn qutisini
qidiring.   Shaklga matn  qutisini   qo'shish  uchun  matn qutisini  bosing  va  uni  forma
ustiga qo'yib yuboring.  
U   qo'shilgandan   so'ng,   siz   Xususiyatlar   ->   Shriftlarni   bosish   orqali   matn
maydonining   o'lchamini   sozlashingiz   va   uni   o'zingizning   talablaringizga   muvofiq
sozlashingiz mumkin.
Xuddi   shunday,   siz   boshqa   matn   qutisini   yaratishingiz   va   uning   hajmi   va
shriftini sozlashingiz mumkin.   Ikkita matn qutisini yaratishingiz kerak, chunki siz
28 ikkita   raqam   yoki   raqamni   hisoblashni   xohlaysiz.   Siz   matn   qutisini   qayta
yaratishingiz   yoki   birinchisini   nusxalashingiz   va   uni   shaklga   joylashtirishingiz
mumkin.      
Keyin   ikkala   matn   qutisi   orasiga   operator   sifatida   teg   qo'shishingiz
mumkin.   Yorliqni qo'shish uchun siz yana asboblar qutisiga o'tishingiz va u yerdan
yorliqni   qo'shishingiz,   uni   shriftlardan   sozlashingiz   va   uning   ichidagi   matnni
xususiyatlar ichidagi matn variantidan yozishingiz mumkin.
Sozlagandan so'ng, shakl rasmda ko'rsatilganidek bo'ladi.
Endi bu kalkulyatorga qo‘shish, ko‘paytirish va hokazo kabi tugmalar kerak
bo‘ladi. Tugmani qo‘shish uchun asboblar qutisiga bosing va u yerdan tugmalarni
qo‘shing.   Matn   qutilaridan   farqli   o'laroq,   tugmani   bosish   va   uni   qo'lda   sozlash
orqali   shunchaki   o'lchamini   o'zgartirishingiz   mumkin.   Lekin   matnni   o'zgartirish
uchun siz xususiyatlar -> matnga o'tishingiz va matnni yozishingiz kerak, bu holda
siz + belgisini yozishingiz kerak.
Xuddi   shunday,   ayirish,   ko'paytirish   va   bo'lish   uchun   yana   uchta   tugmani
qo'shishingiz kerak bo'ladi.
29 Xususiyatlarda   matn   rangini   ham   o'zgartirishingiz   mumkin.   Natijani
ko'rsatish   uchun   hisoblangan   natija   ko'rsatiladigan   shaklga   teg   qo'shing   va   uni
Natija deb nomlang.
Kalkulyatorning   tartibi   bajarilganidek,   endi   siz   unga   funksionallikni
qo'shasiz.
Tugmalarga   funksiya   qo'shish   uchun   siz   ushbu   tugmalar   yoki   teglarning
haqiqiy nomlarini bilishingiz kerak.   Ismlarni tugmani yoki yorliqni bosish va keyin
xususiyatlarni   bosish   orqali   topish   mumkin,   shuning   uchun   nom   xususiyatlar
tepasida   ko'rsatiladi.   Masalan,   quyidagi   rasmda   matn   qutisi   nomi
ko'rsatilgan.   Xuddi shunday, tugmalar nomlari tugma1, tugma2, tugma3, tugma 4.
Endi funksiyani qo'shish uchun qo'shish tugmasini (+) ikki marta bosing.  
Qo'shish   tugmasini  ikki   marta  bosgandan  so'ng,   u Myform.h faylini  ochadi
va   siz   ushbu   qo'shish   tugmasi   uchun   hodisa   ishlov   beruvchisini   yaratishingiz
kerak, uning haqiqiy nomi button1.
30 Ushbu   (+)   tugmani   bosish   orqali   qo'shishni   amalga   oshirishingiz   kerak,
shuning uchun quyidagi kodni yozamiz.
Bu   y erda   siz   natijani   saqlaydigan   o'zgaruvchan   chiqishni   e'lon
qildingiz.   TextBox1 matn maydonining nomi va strelka operatori ob'ekt a'zolariga
kirish   imkonini   beradi.   O'q   operatori   Text   ga   ishora   qilmoqda,   bu   siz   textBox1
matnini   o'zgartirishingiz   kerakligini   anglatadi.   Xuddi   shunday,   siz   buni   textBox2
uchun qilishingiz va ikkalasini ham qo'shishingiz kerak.
Bilasizmi,   textBox   ichiga   nima   yozsangiz,   matn   bo'ladi   yoki   satr   bo'lishi
mumkin va siz satrlarni qo'sha olmaysiz.   Shunday qilib, siz ushbu satrlarni  butun
sonlarga   aylantirishingiz   kerak.   System::Convert::ToInt16   satrni   butun   songa
aylantiradi.
Matnni   ko'rsatish   uchun   Natija   yorlig'ining   haqiqiy   nomini   yozing,   ya'ni
label2.   Bu erda siz yana matnga ishora qiluvchi strelka operatoridan foydalanasiz,
chunki siz matnni o'zgartirish va chiqishni chop etishni xohlaysiz.
Natija   yoki   chiqishni   chop   etish   uchun   System::Convert::ToString(chiqish)
yordamida   butun   sonni   satrga   aylantiring,   chunki   siz   allaqachon   hisoblashni
bajargansiz.
Mahalliy   Windows   tuzatuvchisi   tugmasini   bosish   va   shakldagi   qiymatlarni
qo'shish orqali kod yaxshi ishlayotganligini ham tekshirishingiz mumkin.
31 Qo shish   (+)   tugmasi   funksiyasini   qo shdingiz.ʻ ʻ   Xuddi   shunday,   siz   ayirish
tugmasini ikki marta bosishingiz va buning uchun ham xuddi shunday qilishingiz
kerak,   lekin   faqat   belgilar   boshqacha   bo'ladi.   Xuddi   shunday,   barcha   tugmalar
uchun bir xil harakatlar bajarilishi kerak.
Xuddi shunday, siz ko'paytirish va bo'lish tugmalari uchun buni qilasiz.
Buni   tugatganingizdan   so'ng,   uni   ishga   tushirib,   keyin   kalkulyatorda
qo'shish,   ayirish,   ko'paytirish,   bo'lish   amallarini   bajarish   orqali   uning   yaxshi
ishlayotganligini tekshirishingiz mumkin.  
Agar   barcha   operatsiyalar   yaxshi   ishlayotgan   bo'lsa,   bu   C++   GUI
kalkulyatori ilovasi yaratilganligini anglatadi.
32 Xulosa
C++ GUI  yoki C++ grafik foydalanuvchi  interfeysi  ilovasini  ishlab chiqish
uchun sizga   C++ GUI   ilovasini   qo‘llab-quvvatlaydigan IDE  kerak.  GUI   ilovasini
yaratish uchun siz  Visual  Studio 2019 dan foydalanishingiz kerak, chunki  u C++
GUI ilovasi uchun yaxshiroq mos keladi. 
Grafik   foydalanuvchi   interfeysi   (GUI)   -   ekranning   grafik   komponentlari
(oynalar) ko'rinishida foydalanuvchi uchun mavjud bo'lgan  barcha tizim ob'ektlari
va   funktsiyalarini   taqdim   etishga   asoslangan   foydalanuvchining   elektron
qurilmalar   bilan  o'zaro  aloqasi   uchun  vositalar  tizimi,  piktogrammalar,  menyular,
tugmalar, ro'yxatlar va boshqalar).
Ko'pincha   GUI   interfeysi   elementlari   metaforalar   asosida   amalga   oshiriladi
va   ularning   maqsadi   va   xususiyatlarini   aks   ettiradi,   bu   esa   o'qimagan
foydalanuvchilarga   elektron   qurilmalarni   tushunish   va   ulardan   foydalanishni
osonlashtiradi .
Grafik   foydalanuvchi   interfeysi   foydalanuvchi   interfeysining   bir   qismi
bo'lib,   vizuallashtirilgan   ma'lumotlar   darajasida   foydalanuvchi   o'zaro   ta'sirini
belgilaydi.
33 Foy dalanilgan adabiy ot lar ro‘y xat i
1. Bjarne   Stroustrup.   Programming:   Principles   and   Practice   Using   C++   (2 nd
Edition). Person Education, Inc. 2014. second printing, January 2015.
2. Harry   Hariom   Choudhary,   Bjarne   M   Stroustrup.   C++   Programming
Professional.: Sixth Best Selling Edition for Beginner's & Expert's 2014.
3. Bjarne   Stroustrup.The   C++   Programming   Language,   4th   Edition.   Person
Education, Inc. 2013. Third printing, April 2014.
4. Nazirov Sh.A., Qobulov R.V., Bobojanov M.R., Raxmanov Q.S. С va С++ tili.
“Voris-nashriyot” MCHJ, Toshkent 2013. 488 b.
5. Horstmann,   Cay   S.   C++   for   everyone   /   Cay   S.   Horstmann.   Printed   in   the
United States of America - 2nd ed. 2010. – P. 562.
6. Horton I. - Beginning Visual C++ 2012 / I.Horton. Published simultaneously in
Canada. – 2012. –P. 988.
Internet resurslar
1.  http://www.stroustrup.com/4th.html  
2.  http://www.cplusplus.com/  
3.  http://acm.tuit.uz/  - dasturiy yechim to g riligini avtomatik testlovchi tizimʼ ʼ
4.  http://acm.tuit.uz/forum/  
5.  http://acm.timus.ru/   – dasturlarni testlovchi tizim
6.  http://codeforces.com/   - dasturiy yechim to g riligini avtomatik testlovchi tizim	
ʼ ʼ
34

Mavzu: C++ tilining grafik tartibida ishlash asoslari MUN DA RIJ A KIRISH… … … … … … … … … … … … … … … … … … … … … … … … … … ... 3 I BOB C++ TILIDA GRA FIKA BILA N ISHLA SH VOSITA LA RI ….. 6 1.1. C++ tilida grafika bilan ishlovchi dasturlash muhitlari……………. 6 1.2. C++ tilida grafika bilan ishlashda asosiy kutubxonalar. …………… 12 II BOB C++ TILIDA GRA FIK IN TERFEY S Y A RA TISH TEX N OLOGIY A LA RI ………………………………………….. 18 2.1 Borland C++ Builderda oddiy grafik interfeyslar yaratish…………. 18 2.1 Visual Studio 2017 C++ kodlari orqali interfeys yaratish…….…… 22 X ulosa ………………………………………………………………………… 34 Foy dalanilgan adabiy ot lar ro‘y xat i ………………………………………… 35 1

KIRISH C++ dasturlash tilining yaratilishi haqida ma`lumot. C++ dasturlash tili C dasturlashtiligaasoslangan. C dasturlashtilio`z navbatida B va BCPL dasturlashgan tillaridan kelib chiqqan. BCPL - 1967 yilda Martin Richards tomonidan o`ylab topilgan bo`lib, operatsion tizimlarni yaratish uchun mo`ljallangan. Ken Thompson o`zining B tilida BCPL ning ko`p xossalarini yaratishga harakat qilgan va B dasturlash tilida asosan operatsion tizimning birinchi variantlarini yozgan. BCPL ham, B ham tipsiz til bo`lgan. Ya`ni o`zgaruvchilarning ma`lum bir tipi bo`lmagan - har bir o`zgaruvchi kompyuter xotirasida faqat bir bayt joy egallagan. O`zgaruvchini qanday sifatda ishlatish esa, ya`ni butun sonmi, haqiqiy sonmi yoki harfmi, dasturchining vazifasi bo`lgan. C tilini Dennis Ritchie B tiliga asoslanib yaratdi va ilk bor C tilini 1972 yili Bell Laboratoriyasida, DEC PDP-11 kompyuterida qo`lladi. C o`zidan oldingi B va BCPL tillarining juda ko`p muhim tomonlarini o`z ichiga olish bilan bir qatorda o`zgaruvchilarni tiplashtiradi va turli yangiliklar kiritilgan. Boshlanishda C asosan UNIX tizimlarida keng tarqaldi. C mashina arxitekturasi bilan tez muloqot qiluvchi dasturlash tilidir. 1983 yilda, C tili keng tarqalganligi sababli, uni standartlash harakati boshlandi. Buning uchun Amerika Milliy Standartlar Komiteti (ANSI) qoshida X3J11 texnik komitet tuzildi. 1989 yilda ushbu standart qabul qilindi. Standartni dunyo bo`yicha keng tarqatish maqsadida 1990 yilda ANSI va Dunyo Standartlar Tashkiloti (ISO) hamkorlikda C ning ANSI/ISO 9899:1990 standartini qabul qilishdi. Shuning uchun C da yozilgan dasturlar mayda o`zgarishlar yoki umuman o`zgarishlarsiz juda ko`p kompyuter platformalarida ishlaydi. C++ 1980 -yillar boshida Bjarne Stroustrup tomonidan C ga asoslangan tarzda tuzildi. C++ juda ko`p imkoniyatlarni o`z ichiga olgan, lekin eng asosiysi u ob`yektlar 4 asosida dasturlashga imkon beradi. Dasturlarni tez va sifatli yozishga hozirgi kunda katta ahamiyat berilmoqda. Buni ta`minlash uchun ob`yektli dasturlash g`oyasi ilgari surildi. Xuddi 1970 - yillar boshida strukturali dasturlash kabi, dasturlarni 2

hayotdagi jismlarni modellashtiruvchi ob`yektlar orqali tuzish dasturlash sohasida inqilob qildi. C++ dan tashqari boshqa ko`p ob`yektli dasturlashga yo`naltirilgan tillar mavjud. C++ esa gibrid tildir. Unda C ga o`xshab strukturali dasturlash yoki yangicha, ob`yektlar bilan dasturlash mumkin. Yangicha deyishimiz ham nisbiydir. Ob`yektli dasturlash falsafasi paydo bo`lganiga ham yigirma yildan oshyapti. C++ funksiya va ob`yektlarning juda katta kutubxonasiga ega. Ya`ni C++ tilida dasturlashni o`rganish ikki qismga bo`linadi. Birinchisi bu C++ ni o`zini o`rganish, ikkinchisi esa C++ ning standart kutubxonasidagi tayyor ob`ekt-funksiyalardan foydalanishni o`rganishdir. C++ alfaviti. C++ tilida buyruqlar va so`zlar, barcha elementlar C++ tilining alfavitida yoziladi. Alfavitga quyidagi simvollar kiradi. • Katta va kichik lotin alfavit harflari (A, B, … Z, a, b, … z), pastga chiziqcha belgisi (_) (harflar bilan barobar yozilganda); • arab raqamlar: 0 dan 9 gacha; • Maxsus simvollar; masalan, +, *, { , &; • Ko`rinmaydigan simvollar (“Umumlashgan bo`shliq simvollari”). Leksemalarni o`zaro ajratish uchun ishlatiladigan simvollar (masalan, bo`shliq, tabulyatsiya, yangi qatorga o`tish belgilari). C++ alfaviti aslida kompyuterdagi barcha belgilarni qabul qiladi. Chunki standartda 5 uning alfavitini barcha belgilar to`plami deb qabul qilingan. Shuning uchun izohlarda, satrlarda va simvolli o`zgarmaslarda boshqa literallar, masalan, rus harflarini ishlatilishi mumkin. C++ tilida olti xil turdagi leksemalar ishlatiladi: erkin tanlanadigan va ishlatiladigan identifikatorlar, xizmatchi so`zlar, o`zgarmaslar (const), amallar, ajratuvchi belgilar. C++ funksiya va ob'yektlarning boy kutubxonasiga ega. Bundan kelib chiqadiki C++ dasturlash tilini o'rganish 2 qismga bo'linadi: dastlab, C++ tili sintaksisi o'rganiladi va shundan so'ng uning asosiy kutubxonalari birma-bir ko'rib chiqib, 3

yodlash lozim bo'ladi. Bundan ko'rinib turibdiki, bu til juda katta hajmni o'z qamroviga oladi. C++ tilining egasi yo'q u hech kimga tegishli emas. Bu til С tilidan kelib chiqgani uchun bosh harf С, ++ esa bu tildagi qiymatni bittaga ko'tarish belgisi hisoblanadi va bu belgi C++ dasturlash tilida paydo bo'ldi. C++ dasturlash tili kompilyatsiya qilinadigan til hisoblanadi bu degani yozilgan kod oldin mashina tiliga o'giriladi va keyin ishga tushiriladi. 4

I BOB. C++ TILIDA GRA FIKA BILA N ISHLA SH VOSITA LA RI 1.1. C++ tilida grafika bilan ishlovchi dasturlash muhitlari C ++ Builder - bu RAD ilovalarini ishlab chiqishda oson bo'lgan to'liq kengaytiriladigan dasturiy mahsulotdir. C++ Builder C++ tilida turli sohalarda dasturiy ta'minot ishlab chiqish imkonini beruvchi optimallashtirilgan IDE (Integrated development environment, ya’ni Integratsiyalashgan rivojlanish muhiti) dasturlash muhitini o'z ichiga oladi. C++ Builder - bu STL, MFC, VCL, CLX va boshqalar kabi kutubxonalarga ega bo'lgan keng qamrovli kompleks. Bundan tashqari, kompilyator, muharrir, kodni tuzatuvchi va ishlab chiqish uchun foydali bo'lgan boshqa ko'plab komponentlar mavjud. Ilovalarni ishlab chiqish jarayoni Delphi ga o'xshaydi, shuning uchun Delphi uchun ishlab chiqilgan komponentlarning aksariyati hech qanday o'zgartirishlar va daflarsiz C ++ Builder ga integratsiya qilinishi mumkin. C++ Builder-da komponentlarning aksariyati Delphi-dan kelgan. Buning yordamida Delphida yozilgan kodni minimal bilim bilan C++ Builder ga aylantirish mumkin. C++ Builderda yulib olib tashlash komponentlari va o'rnatilgan WYSIWYG interfeys muharriri yordamida vizual ilovalarni ishlab chiqishni soddalashtirish imkonini beruvchi juda ko'p vositalar mavjud. Dastlab, C ++ Builder dasturiy mahsulotini ishlab chiqish Borland Software tomonidan amalga oshirildi va hozirgi vaqtda Embarcadero Technologies, uning CodeGear bo'limi. Embarcadero C++ Builder - bu Windows, Android va iOS kabi tizimlar uchun chiroyli va qulay foydalanuvchi interfeysi bilan kichikdan kattagacha ilovalarni ishlab chiqish uchun rivojlangan kross-platformali dasturiy vositadir. Embarcadero C++ Builderning so‘nggi versiyalari Windows va FireMonkey (FMX) uchun yuqori samarali mahalliy ilovalarni yaratish imkonini beruvchi VCL ramkasini o‘z ichiga oladi. Dizayn. 5