3.1 Struktura
Ma‘lumki, biror predmet sohasidagi masalani yechishda undagi obyektlar bir
nechta, har xil turdagi parametrlar bilan aniqlanishi mumkin. Masalan, tekislikdagi
nuqta haqiqiy turdagi x-absissa va y -ordinata juftligi - (x,y) ko‗rinishida beriladi.
Talaba haqidagi ma‘lumotlar – satr turidagi talaba familiyasi, ismi va sharifi,
mutaxassislik yo‗nalish, talaba yashash adresi, butun turdagi tug‗ilgan yili, o‗quv
bosqichi, haqiqiy turdagi reyting bali, mantiqiy turdagi talaba jinsi haqidagi
ma‘lumot va boshqalardan shakllanadi.
С++ tilida bir yoki har xil turdagi berilganlarni jamlanmasi struktura deb
nomlanadi. Struktura foydalanuvchi tomonidan aniqlangan berilganlarning yangi
turi hisoblanadi. Struktura quyidagicha aniqlanadi:
struct // struktura nomi
43
{
<1-tur> <1-nom>; // 1-maydonni e‟lon qilish
<2-tur> <2-nom>; // 2-maydonni e‟lon qilish
. . .
; // n-maydonni e‟lon qilish
};
Masalan,
struct Date
{
int year;
char month, day;
};
Masala, Book nomli struktura yarating. Book o‗z ichiga quyidagi maydonlarni
olsin:
• Muallif (satr);
• Nomi (satr);
• Nashr qilingan yili (butun son);
• Kitob beti (butun son).
Struktura ko‗rinishi quyidagicha bo‗ladi:
struct Book {
char author[40]; // muallif, satrli
char title[80]; // nomi, satrli
int year; // nashr qilingan yil, butun son
int pages; // varaqlar soni, butun son
};
Demak biz Book nomli struktura yaratdik. Demak, bu struktura asosida yangi
o‗zgaruvchilarni e‘lon qilish mumkin.
Book b; // bu yerda xotira ajratiladi!
Book b1 = {“Yu. Golosinskiy", “Ingliz tili … ", 2010,
576};
Bunda b va b1 o‗zgaruvchilar e‘lon qilingan. Ularni tiplari esa Book. B ni hali
qiymati ma‘lum emas, lekin b1 ning qiymatlari berilgan.
44
Bundan tashqari struktura maydonlarini quyidagicha ham to‗ldirish mumkin:
Dastur orqali
Klaviatura orqali
strcpy (b.author,
"Yu.Golosinskiy");
strcpy (b.title,
“Ingliz tili … " );
b.year = 2010;
b.pages = 576;
printf (“Muallif");
gets (b.author);
printf (“Kitob nomi");
gets (b.title);
printf (“Nashr qilingan
yili, Betlar soni");
scanf ("%d%d", &b.year,
&b.pages);
Demak, berilganlar asosida kutubxonadagi kitoblarni ma‘lumotlarini saqlovchi
kichkina dasturcha tuzamiz. Uning dasturi quyidagicha:
#include
#include
using namespace std;
struct Book {
char author[40]; // muallif, satrli
char title[80]; // nomi, satrli
int year; // nashr qilingan yil, butun son
int pages; // varaqlar soni, butun son
};
void Kutubxona(Book); // Funksiyani e'lon qilish
int main() // asosiy dastur
{
Book b;
printf ("Muallifi " ); gets(b.author );
printf ("Kitob nomi " ); gets(b.title );
printf ("Nashr qilingan yili varaqlar soni");
scanf ("%d%d", &b.year, &b.pages);
Kutubxona(b);
}
void Kutubxona(Book b) // Funksiya kodi
{
cout << "Kitob muallifi: " << b.author << endl;
cout << "Kitob nomi: " << b.title << endl;
cout << "Nashr qilingan yili: " << b.year <<
endl;
cout << "Betlar soni: " << b.pages ;
getch();
}
Do'stlaringiz bilan baham: |