Mavzu: C++builder 6 dasturida dinamik toifadagi ma’lumotlarni (KO‘rsatkichlar) ishlatish uslubiyatini o‘rganish


Download 15 Kb.
Sana26.05.2020
Hajmi15 Kb.
#110091
Bog'liq
2-6 dars

MAVZU: C++BUILDER 6 DASTURIDA DINAMIK TOIFADAGI MA’LUMOTLARNI (KO‘RSATKICHLAR) ISHLATISH USLUBIYATINI O‘RGANISH (SOHAGA DOIR MISOLLARDA).



Ishdan maqsad: C++ dasturlash tilining aralash toifasi. Aralash toifani e’lon qilish. Yozuv, yozuv elementlari. Birlashtirish operatorlari haqida ma’lumot berish. Talabalar olgan nazariy bilimlarini amaliyotda qo’llashi uchun bilim, ko’nikma va malaka hosil qilishdan iborat .
USLUBIY KO’RSATMALAR

Strukturalar bilan ishlash asoslari.

Aralash toifalarni birlashtirish

Bir necha xil toifadagi o‘zgaruvchilarni bitta nom bilan birlashtirib ishlatish struktura deyiladi. Strukturalar murakkab kattaliklarni o‘zaro bog’lab, yagona toifa ostida dastur tuzishda yordam beradi. Strukturalar quyidagicha ta’riflanadi:

struct struktura nomi

{


elementlar ta’rifi;

}

Struktura nomi ixtiyoriy (lotincha) simvollar bilan belgilanadi.



Misol uchun ombordagi mollarni tasvirlovchi struktura hosil qilamiz. Unda: mol nomi (char[10]); sotib olish narxi (long); ustiga qo‘yilgan narx, foiz(float); mollar soni (int); mol kelib tushgan sana (char[9]). Bu strukturani dasturda kuyidagicha ta’riflanadi:

struct ombor

{

char name[10]; // mol nomi 10ta simvoldan oshmaydi



long nn; // mol narxi

float f; // foizi

int i; // mollar soni

char date[9]; // sana 9ta simvoldan iborat

}

Strukturalar tarkibida ixtiyoriy toifadagi o‘zgaruvchilar, massivlar qatnashishlari mumkin.



Strukturalar ta’riflanganda konkret ro‘yxatni kiritish mumkin, ya’ni struct struktura nomi

{


elementlar ta’rifi;

} konkret ro‘yxat;

Masalan: talabalar ro‘yxati uchun struktura kosil kilish:

struct student

{ char name[10];

char fam[10];

int ty;} student1, student2,student3;

Bu holda student strukturali tip bilan birga 3ta konkret ro‘yxat kiritilgan va xar biri uchun ismi, familiyasi, tukilgan yili beriladi.

Strukturali tip ta’riflanganda struktura nomi ko‘rsatilmasdan, to‘kridan to‘kri konkret ro‘yxat ko‘rsatilishi kam mumkin:

struct


{

elementlar ta’rifi;

} konkret ro‘yxat;
Struktura elementlariga quyidagicha murojaat qilish mumkin:

struktura nomi. element nomi;

Bu yerda nuqta amali struktura elementiga murojaat qilish amali deyiladi. Bu amal qavs amaliga o‘xshab yuqori ustivorlikka egadir.

Masalan: student1.name; student2.ty; student3.fam;

student1.name = "Anvar"; student2.ty = 1990; student3.fam = "Solijonov";

Strukturalarni ishlatishda ko‘pincha typedef so‘zidan foydalaniladi. Bundan maqsad strukturadagi kattaliklardan yangi tip yaratib, undan dasturda keng foydalanish imkoniyatini yaratishdir. Uni foydalanuvchining (dasturchining) tipi deb yuritiladi. typedefda yangi nom ishlatiladi va shu nom keyinchalik boshqa o‘zgaruvchilarni belgilashda ishlatiladi.

Massivlarni ham struktura elementlari sifatida ishlatish mumkin. Massiv elementlarining son qiymatlarini initsalizatsiya qilish ham mumkin. Masalan:

struct { float a; int mas[4] } pp = { 5.34, {1,2,3,4}};


Masalan: guruhda 20ta talaba bor. Talabalarning familiyasi va informatika fanining 3ta modulidan olgan baholari berilgan. Shu fan bo’yicha qarzdor talabalar haqida ma’lumot beruvchi dastur tuzing.

# include

# include

int main ( )

{

typedef struct



{ char fam[15]; int mod1, mod2, mod3;} gr;

gr gr211_08[20]; int i, f; clrscr( );

cout <<"malumotlarni kiriting:\n";

for (i = 1; i<=20; i++)

{ cout <<"familiyasini kiriting: \n";

cin >>gr211_08[i].fam;

cout <<"ballarini kiriting:\n";

{ cin >> gr211_08[i].mod1;

cin >> gr211_08[i].mod2;

cin >> gr211_08[i].mod3;} }

f=0;

for(i=1; i<=20; i++)



if (gr211_08[i].mod1= =2 || gr211_08[i].mod2= =2 || gr211_08[i].mod3= =2)

{

cout <<"Qarzdor talaba:"<

f=f+1; }

cout <<"qarzdor talabalar soni:"<

getch(); }

Talaba haqida umumiy ma’lumot chiqaruvchi dastur tuzing:

# include

using namespace std;

struct talaba // talaba nomli struktura

{

char familiya[20]; //20 ta talabaning familiyasi turini simvolli deb oldik



char ism [20];

char guruh[25] ; // guruh butun turdagi o'zgaruvchi

float yosh;

char mutaxassislik[20];

char manzil[25];

};

istream& operator >> (istream& cin,talaba & t) //kiritish amalini qayta yuklash



{

cout <<"Familiyasini kiriting:"<

cin >> t.familiya;

cout <<"Ismini kiriting:"<

cin >> t.ism;

cout << "Guruhini kiriting:"<

cin>> t.guruh;

cout <<"Yoshini kiriting:"<

cin >> t.yosh;

cout <<"Mutaxassisligini kiriting:"<

cin >>t.mutaxassislik;

cout <<"Manzilini kiriting:"<

cin >>t.manzil;

return cin;

}

ostream& operator <<(ostream& cout, talaba t) // chiqarish amalini qayta yuklash



{ cout << "\nFamiliyasi:\t" << t.familiya;

cout << "\nIsmi:\t\t" << t.ism;

cout << "\nGuruhi:\t\t" << t.guruh;

cout << "\nYoshi:\t\t" << t.yosh;

cout << "\nMutaxassisligi:\t" << t.mutaxassislik;

cout << "\nManzili:\t" << t.manzil;

return cout;

}

int main ()



{ talaba t; // talaba sinfidagi o'bektni e'lon qilish

cin>>t;


cout<
return 0;}
Download 15 Kb.

Do'stlaringiz bilan baham:




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