Mavzu: C++builder 6 dasturida dinamik toifadagi ma’lumotlarni (KO‘rsatkichlar) ishlatish uslubiyatini o‘rganish
Download 15 Kb.
|
2-6 dars
- Bu sahifa navigatsiya:
- USLUBIY KO’RSATMALAR Strukturalar bilan ishlash asoslari. Aralash toifalarni birlashtirish
- Talaba haqida umumiy ma’lumot chiqaruvchi dastur tuzing
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 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:"< cout <<"qarzdor talabalar soni:"< getch(); }
# include using namespace std;
struct talaba // talaba nomli struktura {
char familiya[20]; //20 ta talabaning familiyasi turini simvolli deb oldik 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 << "\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 () cin>>t;
|
ma'muriyatiga murojaat qiling