1 - - - > Statik ma'lumotlar tuzilmalarini o'rganish
Ishdan maqsad: Statik ma’lumotlar tuzilmasini o‘rganish va ularni tadqiq qilish.
Qo‘yilgan masala: C++ tilida statik toifadagi ma’lumotlar tuzilmalarini yaratish va ularga doir misollarning dasturini ishlab chiqish.
Ish tartibi:
Tajriba ishi nazariy ma’lumotlarini o‘rganish;
Berilgan topshiriqning algoritmini ishlab chiqish;
C++ dasturlash muhitida dasturni yaratish;
Natijalarni tekshirish;
Hisobotni tayyorlash va topshirish.
Nazariy qism.
Ma’lumotlar tuzilmasi (MT)ni quyidagicha tasniflash mumkin.
Statik tuzilma deb dastur bajarilishi mobaynida elementlari soni yoki ular orasidagi bog’liqliklari o’zgaruvchan bo’lgan tuzilmaga aytiladi.Statik tuzilmalarni ko’rib chiqamiz.
<="" i=""><="" i=""><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. 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<<"|"<
}
Do'stlaringiz bilan baham: |