Chart komponenta xususiyati va hodisalari



Yüklə 0,51 Mb.
Pdf görüntüsü
səhifə1/2
tarix14.10.2023
ölçüsü0,51 Mb.
#155566
  1   2
DASTURLASH2 5-mustaqil ish



O’ZBEKISTON RESPUBLIKASI AXBOROT
TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI 
RIVOJLANTIRISH VAZIRLIGI 
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT
TEXNOLOGIYALARI UNIVERSITETI
QARSHI FILIALI
_________________KI_______________ FAKULTETI _______14-
22____________ GURUH TALABASINING 
DASTURLASH 
FANIDAN
5-MUSTAQIL ISH
Bajardi: Marqayev.Sh 
Qabul qildi: Nosirov.B 


Visual C++ ning grafik imkoniyatlari (grafik holat, tasvirlarni va funksiya grafiklarini 
qurish) 
REJA 
1. Chart komponentalari. 
2. Visual C++ muhitida ko'p oynali muhitni yaratish 
3.
Visual C++ muhitida turli sohaga oid masalalarni yechish uchun kichik loyihalarni 
loyihalash usullari. 
Chart komponenta 
xususiyati va hodisalari
. Bu komponenta Data tab bo‘limiga 
joylashgan bo‘lib, asosan ma’lumotlarni infografiklarni yaratish uchun ishlatiladi. 
Infografik uchun ma’lumotlar to‘plami kerak. 
Bu komponentaning xusussiyati va hodisalari boshqa komponentalarniki kabi bo‘lib, 
xuddi o‘shalar kabi bo‘limlarga bo‘lingan. Ularning maxsuslarini keltirib o‘tamiz. 
BorderSkin xususiyatlar gruppasi bo‘lib, unda komponentaning yangi niqobga solish 
mumkin. Niqob deganda, uning yangi ko‘rinishi inobatga olingan. Rang (color), rasm 
(image), stil (style), kengligi (width) kabi xususiyatlari mavjud. Bu xususiyatlarni 
o‘rnatish muammo keltirib chiqarmaydi. Oldingi o‘rganganlaringizda bunday 
xususiyatlardan uchun ishlatiladi. Infografik uchun ma’lumotlar to‘plami kerak. 
Bu komponentaning xusussiyati va hodisalari boshqa komponentalarniki kabi bo‘lib, 
xuddi o‘shalar kabi bo‘limlarga bo‘lingan. Ularning maxsuslarini keltirib o‘tamiz. 
1.
BorderSkin xususiyatlar gruppasi bo‘lib, unda komponentaning yangi niqobga 
solish mumkin. Niqob deganda, uning yangi ko‘rinishi inobatga olingan. Rang 
(color), rasm (image), stil (style), kengligi (width) kabi xususiyatlari mavjud. 
Bu xususiyatlarni o‘rnatish muammo keltirib chiqarmaydi. Oldingi 
o‘rganganlaringizda bunday xususiyatlardan foydalangansiz. SHuningdek 
asosiy niqob bu SkinStyle bo‘lib, komponentaning asosiy ko‘rinishini 
o‘zgartrish uchun xizmat qiladi. Uning mos qiymatlar ro‘yxati mavjud, shundan 
keraklisini tanlabolish mumkin. 


2.
Palette (palitra) – xususiyati yordamida komponentaning infografikani 
ko‘rsatadigan shaklini tanlash mumkin. Uning mos qiymatlar ro‘yxati mavjud. 
3.
PaletteCustomColors – bunda ham komponentaning infografikani 
ko‘rsatadigan shaklini tanlash mumkin. Ammo foydalanuvchi o‘zining rangi 
tanlashimi mumkin. Bunda maxsus muloqot oynasi aosida palitraga turli 
ranglarni qo‘shish mumkin. 
4.
Annotations – bunda komponentaga izohlarni yozish mumkin. Buning o‘zining 
xususiyatlari maxsus muloqot oynasi yordamida o‘rnatiladi. 
5.
ChartAreas – bu xususiyat orqali komponentaga bir nechata chart infografika 
joylashtirish mumkin. Buning ham o‘zi mos xususiyatlarini mos muloqot 
oynasi bilan o‘rnatish lozim. 
6.
Legends – infografikaga keltirilgan qiymatlarining joylashish maydoni. Buni 
ham maxsus muloqot oynasi asosida tahrir qilish mumkin 
7.
Series – bu xususiyat asosiy bo‘lib, infografikaning qiymatlarini belgilovchi, 
har bir qiymat tegishliligini bildiradi. Buning uchun maxsus mulovot oynasi 
mavjud. Bunga to‘liqroq to‘xtalib o‘tamiz. 
8.
ChartAreas – bu xususiyat orqali komponentaga bir nechata chart infografika 
joylashtirish mumkin. Buning ham o‘zi mos xususiyatlarini mos muloqot 
oynasi bilan o‘rnatish lozim. 
9.
Legends – infografikaga keltirilgan qiymatlarining joylashish maydoni. Buni 
ham maxsus muloqot oynasi asosida tahrir qilish mumkin 
10.
Series – bu xususiyat asosiy bo‘lib, infografikaning qiymatlarini belgilovchi, 
har bir qiymat tegishliligini bildiradi. Buning uchun maxsus mulovot oynasi 
mavjud. Bunga to‘liqroq to‘xtalib o‘tamiz. 
11.
Titles – komponentalarga joylashtirilgan infografikalarga sarlavha qo‘yish 
uchun ishlatiladi. Uning maxsus muloqot oynasi orqali ishlov berish orqali 
shrnatish mumkin. 
Series – bu komponentaga qiymatlarni qo‘shish va uni tasvirlash uchun xizmat qiladi. 
Komponentaning ichiga joylashtirilgan sohani tahrirlash uchun ishlatiladi. Unga 


bosganda quyidagi muloqot oynasi chiqadi. 
12.9-rasm. Tahrirlash oynasi. 
Bu oynda yangi qiymatlar maydoni qo‘shish uchun [Add] tugmasi va uni o‘chirish 
uchun [Remove] tugmasi ishlatiladi. Infografikaning asosiy xususiyatlarini boshqarish 
uchun o‘ng tomondagi xususiyatlar panelidan foydalanish mumkin. Unda 
infografikani taxhrirlash uchun zarur bo‘lgan barcha xususiyatlar bor. Ulardan biri bu 
ChartType bo‘lib, infografikaning turlarini belgilash uchun xizmat qiladi. Uning 
turlari quyidagi 12.10-rasmda keltirilgan. 
12.10-rasm. Infografikaning turlari 
SHuningdek, infografikaning ma’lumotlari, 
yozuvlari
, qiymatlari, maydoni, qiymat 
turlari, chegaralari bilan ishlash xususiyatlari xam muvjud. Odatda bu xususiyatlarni 
dasturlash orqali dastur fragmentlarida o‘rnatish fa foydalanish dasturchiga qulay 
hisoblanadi. Ammo vizual dusturlashning imkoniyatidan foydalanish uchun buni ham 
ishlatishni o‘rganish lozim. 
Funksiyalarni grafiklarini qurish. Infografika komponentasiga mos ravishda 
funksiyalarni grafikgini chizish usullari ko‘rib chiqamiz. 
Matematik funksiyalarni grafiklarini chizish uchun avval shu funksiyalarni bir sinfga 
yaratib olamiz. 
private value class MyFunction 

private: 
double _value; 
public: 
double getValuePow(double x) { 
return Math::Pow(x, 2); 

double getValueX4(double x){ 
return x*x*x*x; 



double getValuekxa(double x, int k, int a){ 
return k*x+a; 

}; 
Bu ko‘rinishda matematikaning barcha funksiyalarini yaratib olish yoki to‘g‘ridan 
to‘g‘ri foydalanish mumkin. 
Chart komponentasiga grafikni chizish uchun Form1_Load hodisasiga quyidagicha 
algoritmni yozamiz. 
chart1->Series->Clear(); 
Series^ series1 = gcnew Series(L"X^2 grafigi"); 
// rangni tanlash 
series1->Color = Color::Blue; 
series1->IsVisibleInLegend = true; 
series1->IsXValueIndexed = true; 
// infografikani turini tanlash 
series1->ChartType = SeriesChartType::Line; 
// qiymatlar qatlamini qo`shish 
chart1->Series->Add(series1); 
// 
qiymatlarni
 
MyFunction^ func = gcnew MyFunction(); 
for (double i = 0; i < 10; i++) { 
series1->Points->AddXY(i, func->getValuePow(i)); 

Agar dasturni ishlatsak
, bir funksiyaning grafigini chizish imkoniyatini beradi. 
12.11-rasm. funksiyaning grafigi. 
Bir vaqtning o‘zida bir nechta funksiyaning grafiklarini chizish uchun yuqorida 
aniqlangan sinfdan foydalanib, Form1_Load hodisasiga quyidagicha algoritmni 
yozamiz. 
chart1->Series->Clear(); 
Series^ series1 = gcnew Series(L"Cos(x)"); 
Series^ series2 = gcnew Series(L"Sin(x)"); 


Series^ series3 = gcnew Series(L"kx+a"); 
// rangni tanlash 
series1->Color = Color::Blue; 
series2->Color = Color::Red; 
series3->Color = Color::Green; 
// infografikani turini tanlash 
series1->ChartType = SeriesChartType::Spline; 
series2->ChartType = SeriesChartType::Spline; 
series3->ChartType = SeriesChartType::Spline; 
// qiymatlar qatlamini qo`shish 
chart1->Series->Add(series1); 
chart1->Series->Add(series2); 
chart1->Series->Add(series3); 
// qiymatlarni 
MyFunction^ func = gcnew MyFunction(); 
for (double i = 0; i <= 100; i++) { 
series3->Points->AddXY(i, func->getValuekxa(i*0.01,1,0)); 
series1->Points->AddXY(i, Math::Cos(i)); 
series2->Points->AddXY(i, Math::Sin(i)); 

chart1->Series->Clear(); 
Series^ series1 = gcnew Series(L"Cos(x)"); 
Series^ series2 = gcnew Series(L"Sin(x)"); 
Series^ series3 = gcnew Series(L"kx+a"); 
// rangni tanlash 
series1->Color = Color::Blue; 
series2->Color = Color::Red; 
series3->Color = Color::Green; 
// infografikani turini tanlash 
series1->ChartType = SeriesChartType::Spline; 
series2->ChartType = SeriesChartType::Spline; 
series3->ChartType = SeriesChartType::Spline; 
// qiymatlar qatlamini qo`shish 
chart1->Series->Add(series1); 
chart1->Series->Add(series2); 
chart1->Series->Add(series3); 
// qiymatlarni 


MyFunction^ func = gcnew MyFunction(); 
for (double i = 0; i <= 100; i++) { 
series3->Points->AddXY(i, func->getValuekxa(i*0.01,1,0)); 
series1->Points->AddXY(i, Math::Cos(i)); 
series2->Points->AddXY(i, Math::Sin(i)); 

Agar dasturni ishlatsak, bir funksiyalarning grafigini chizish imkoniyatini beradi. 
12.12-rasm. Funksiyalarning grafigi. 
Gistagramma grafiklarini chizish uchun massivlardan yoki ixtiyoriy to‘plamlardan 
foydalanish mumkin. Buning uchun 3 ta massiv olamiz, Form1_Load hodisasiga 
quyidagicha algoritmni yozamiz 
chart1->Series->Clear(); 
Title^ title = gcnew Title("Sotilgan texnikalar soni "); 
chart1->Titles->Add(title); 
Series^ series1 = gcnew Series(L"Telefon"); 
Series^ series2 = gcnew Series(L"Kompyuter texnikasi"); 
Series^ series3 = gcnew Series(L"Avtomashina"); 
// rangni tanlash 
series1->Color = Color::Blue; 
series2->Color = Color::Red; 
series3->Color = Color::Green; 
// infografikani turini tanlash 
series1->ChartType = SeriesChartType::Column; 
series2->ChartType = SeriesChartType::Column; 
series3->ChartType = SeriesChartType::Column; 
// qiymatlar qatlamini qo`shish 
chart1->Series->Add(series1); 
chart1->Series->Add(series2); 
chart1->Series->Add(series3); 
// qiymatlarni 
array^ arr1 = {30,20,56,80,85}; 
array^ arr2 = {50,70,50,65,75}; 
array^ arr3 = {80,50,50,30,45}; 
for (int i = 0; i < arr1->Length; i++) { 


series3->Points->AddXY(i, arr3[i]); 
series1->Points->AddXY(i, arr2->GetValue(i)); 
series2->Points->AddXY(i, arr1->GetValue(i)); 

chart1->Series->Clear(); 
Title^ title = gcnew Title("Sotilgan texnikalar soni "); 
chart1->Titles->Add(title); 
Series^ series1 = gcnew Series(L"Telefon"); 
Series^ series2 = gcnew Series(L"Kompyuter texnikasi"); 
Series^ series3 = gcnew Series(L"Avtomashina"); 
// rangni tanlash 
series1->Color = Color::Blue; 
series2->Color = Color::Red; 
series3->Color = Color::Green; 
// infografikani turini tanlash 
series1->ChartType = SeriesChartType::Column; 
series2->ChartType = SeriesChartType::Column; 
series3->ChartType = SeriesChartType::Column; 
// qiymatlar qatlamini qo`shish 
chart1->Series->Add(series1); 
chart1->Series->Add(series2); 
chart1->Series->Add(series3); 
// qiymatlarni 
array^ arr1 = {30,20,56,80,85}; 
array^ arr2 = {50,70,50,65,75}; 
array^ arr3 = {80,50,50,30,45}; 
for (int i = 0; i < arr1->Length; i++) { 
series3->Points->AddXY(i, arr3[i]); 
series1->Points->AddXY(i, arr2->GetValue(i)); 
series2->Points->AddXY(i, arr1->GetValue(i)); 

Agar dasturni ishlatsak, Gistagramma grafigini chizish imkoniyatini beradi. 


12.13-rasm. Gistagramma 
grafiklarini chizish
 
Grafiklarini alohida sohasha chizish uchun massivlardan yoki ixtiyoriy to‘plamlardan 
foydalanish mumkin. Buning uchun 3 ta massiv olamiz, Form1_Load hodisasiga 
quyidagicha algoritmni yozamiz 
chart1->Series->Clear(); 
ChartArea^ chartArea1 = gcnew ChartArea(); 
ChartArea^ chartArea2 = gcnew ChartArea(); 
ChartArea^ chartArea3 = gcnew ChartArea(); 
chartArea1->Name = "1"; 
chartArea2->Name = "2"; 
chartArea3->Name = "3"; 
this->chart1->ChartAreas->Add(chartArea1); 
this->chart1->ChartAreas->Add(chartArea2); 
this->chart1->ChartAreas->Add(chartArea3); 
Title^ title = gcnew Title("Sotilgan texnikalar soni "); 
chart1->Titles->Add(title); 
Series^ series1 = gcnew Series(L"Telefon"); 
Series^ series2 = gcnew Series(L"Kompyuter texnikasi"); 
Series^ series3 = gcnew Series(L"Avtomashina"); 
// rangni tanlash 
series1->Color = Color::Blue; 
series2->Color = Color::Red; 
series3->Color = Color::Green; 
// infografikani turini tanlash 
series1->ChartType = SeriesChartType::SplineArea; 
series2->ChartType = SeriesChartType::SplineRange; 
series3->ChartType = SeriesChartType::Spline; 
series1->ChartArea = chartArea1->Name; 
series2->ChartArea = chartArea2->Name; 
series3->ChartArea = chartArea3->Name; 
// qiymatlar qatlamini qo`shish 
chart1->Series->Add(series1); 
chart1->Series->Add(series2); 
chart1->Series->Add(series3); 
// qiymatlarni 
array^ arr1 = {30,20,56,80,85}; 
array^ arr2 = {50,70,50,65,75}; 


array^ arr3 = {80,50,50,30,45}; 
for (int i = 0; i < arr1->Length; i++) { 
series3->Points->AddXY( i, arr3[i]); 
series1->Points->AddXY( i, arr2->GetValue(i)); 
series2->Points->AddXY( i, arr1->GetValue(i)); 

series3->Color = Color::Green; 
// infografikani turini tanlash 
series1->ChartType = SeriesChartType::SplineArea; 
series2->ChartType = SeriesChartType::SplineRange; 
series3->ChartType = SeriesChartType::Spline; 
series1->ChartArea = chartArea1->Name; 
series2->ChartArea = chartArea2->Name; 
series3->ChartArea = chartArea3->Name; 
// qiymatlar qatlamini qo`shish 
chart1->Series->Add(series1); 
chart1->Series->Add(series2); 
chart1->Series->Add(series3); 
// qiymatlarni 
array^ arr1 = {30,20,56,80,85}; 
array^ arr2 = {50,70,50,65,75}; 
array^ arr3 = {80,50,50,30,45}; 
for (int i = 0; i < arr1->Length; i++) { 
series3->Points->AddXY( i, arr3[i]); 
series1->Points->AddXY( i, arr2->GetValue(i)); 
series2->Points->AddXY( i, arr1->GetValue(i)); 

Dastur fragmentini tahlil qilish orqali yangi infografika sohalarni qo‘shish va ularni 
qiymatlar o‘plami bilan bog‘lashni ko‘rishinig mumkin. Agar dasturni ishlatsak, 
Gistagramma grafigini chizish imkoniyatini beradi. 
12.14-rasm. Bitta Chart ga bir nechta sohani joylashtirish. 
Chart komponentasi yordamida foydlanuvchining ixtiyoriy ma’lumotlarini 
infografikasini yaratish mumkin. Bu juda katta imkoniyatli komponenta hisoblanadi. 
Buni xammasini o‘rganish uchun ko‘proq amaliyot qilish lozim. YUqorida uning 
ba’zi imkoniyatlarini keltirgan holda komponentaning xususiyatlari va hodisalari 
bo‘yicha nazariy va amaliy ma’lumotlarni keltirdik. 



Yüklə 0,51 Mb.

Dostları ilə paylaş:
  1   2




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin