Yozuv va jadvallar. Yozuv bu turli toifadagi ma’lumotlarning tartibli ketma-ketligidir.Yozuv maydonlardan tashkil topadi. Har bir maydon o’z nomi va o’z toifasiga ega bolib, ular xotirada ketma-ket joylashadi. Yozuv uchun ajratiladigan xotira hajmi uning maydonlariga ajratilgan xotira hajmlari yig’indisidan kelib chiqadi.Yozuvlar C++ da quyidagicha e’lon qilinadi.
struct Guruh{
int t_r;
char fio[30];
float bali;
} talaba1, talaba2;
Bu erda Guruh nomli nostandart toifa yaratilib, bu toifaga tegishli 2 ta yozuv e’lon qildik. Shu yozuvlarga tegishli maydonlarga murojaat quyidagicha amalga oshiriladi:
talaba1.fio=”Ahmad”;
talaba2.bali=1.5;
Bu erda ko’rib turganingizdek,Guruh toifasida 2 ta yozuv yaratildi. Agar bu toifaga tegishli massiv yaratiladgan bo’lsa, yani yozuvlar massividan jadval xosil bo’ladi. 2 ta yozuvni solishtirishva o’zlashtirish mumkin, bunda ulaning mos maydonlari solishtiriladi yoki o’zlashtiriladi va maydonlarni alohida yozib ko’rsatish shart emas.
Misol.Talabalar ma’lumotlaridan iborat jadval berilgan bo’lsin.Javdalni ballar bo’yicha kamayish tartibida saralang.
# include
using namespace std;
int main(){
struct guruh{
char fio[30];
float ball;
};
int n; cout<<"n=";cin>>n;
guruh talabalar[n],sw;
for(int i=0;i
cin>>talabalar[i].fio;
cin>>talabalar[i].ball; }
for(int i=0;i
for(int j=i+1;j
if(talabalar[i].ball
sw=talabalar[i];
talabalar[i]=talabalar[j];
talabalar[j]=sw;
}
for(int i=0;i
cout<<"|"<
system("pause");
}
Misol.2 ta ishchilar ma’lumotlaridan iborat jadval berilgan.Har ikkala jadvalda ismlari takrorlangan ishchilardan yangi jadval hosil qiling.
# include
using namespace std;
int main(){
struct employer{
char fio[30];
char lavozim;
} ;
int n,m;
cout<<"1-bo'lim ishchilar soni n=";cin>>n;
cout<<"2-bo'lim ishchilar soni m=";cin>>m;
employer bir_bolim[n],ikki_bolim[m];
employer yangi[n+m];
for(int i=0;i
cin>>bir_bolim[i].fio>>bir_bolim[i].lavozim;
}
for(int j=0;j
cin>>ikki_bolim[j].fio>>ikki_bolim[j].lavozim;
}
int k=0;cout<<"------------mana-------------"<
for(int i=0;i
string s,s1;
s=bir_bolim[i].fio;
for(int j=0;j
s1=ikki_bolim[j].fio;
if(s==s1){yangi[k++]=bir_bolim[i];yangi[k++]=ikki_bolim[j];}
}}
for(int i=0;i
cout<<"|"<
}
Topshiriqlar.
1.
2.
3.
F funksiyani Xbosh. dan Xoxir. gacha bo’lgan intervalda dX qadam bilan hisoblang va jadval ko’rinishida ekranga chiqaring.
a, b, c – haqiqiy sonlar.
4.
F funksiyani Xbosh. dan Xoxir. gacha bo’lgan intervalda dX qadam bilan hisoblang va jadval ko’rinishida ekranga chiqaring.
a, b, c – haqiqiy sonlar.
5.
6. A(5) massiv berilgan. Juft elementlarining miqdori va yig’indisini toping.
7.Fayldan lotin harflariga oid bo’lgan matnlarni o’qib, undan unli harflar bilan boshlanadigan va shu harflar bilan yakunlanadigan so’zlarni ekranga chiqarib beruvchi dastur tuzilsin.
8.Matndagi S1-qatordagi “Burgut” so’zi bilan “Oq qush” o’rinlari almashtirilsin.
9.Sonli elementlardan tashkil topgan bir hadli massivda quyidagi amallar hisoblansin:
1) massivning manfiy elementlar yig’indisi;
2) massivning maksimal va minimal elementlari orasidagi ko’paytmasi.
Massiv o’sish tartibida joylashtirilsin.
10.Quyidagi maydonlardan tashkil topgan, STUDENT nomi bilan tuzilmani hosil qiling:
Familiya va inisiallari;
Guruh raqami;
O’zlashtirish darajasi (massiv 5ta elementdan iborat).
Navbatdagi amallarni bajaruvchi dasturni tuzing:
10 ta STUDENT toifasidagi tuzilmani klaviatura orqali massiv ma’lumotlarini kiriting;
Ro’yxatda guruh raqami o’sish tartibida bo’lishi shart;
O’rtacha bali 4.0 dan yuqori bo’lgan talabalar ro’yxati ekranga chiqarilsin.
Agar bunday o’zlashtirishga ega talabalar bo’lmasa, u holda ekranga mos xabar matnini chiqarilsin.
Do'stlaringiz bilan baham: |