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 qadam-
baqadam 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.
Do'stlaringiz bilan baham: |