1-laboratoriya mashg’uloti 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:
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.
Massivlar.Massiv bu bir xil toifadagi elementlarning tartibli ketma-ketligidir. Massiv bir yoki ikki o’lchovli bo’lishi mumkin. Bir o’lchovli massivlar C++ da quyidagicha e’lon qilinadi:
[elementlar_soni]; Masalan, int a[12]; Ikki o’lchovli massivlar esa quyidagicha ifodalanadi:
[qatorlar_soni][ustunlar_soni]; Masalan, int a[2][3]; 1-misol. Massivni elyemyentlarini yig’indisini toping. Misolni yechilishi quyidagicha:
#include using std::cout; #include main() { float s,j; int i; s=0; float a[5]={2,3,4,-1,-5}; for (i=0; i<5; ++i) s = s + a[i]; cout<<"\n s = "< getch(); return 0; }
Natija:
S = 3
2-misol. Bir o’lchamli n ta elyemyentdan iborat massiv byerilgan. Quyidagilarni bajaring:
a) manfiy elyemyentlarning yig’indisini;
b) maksimal va minimal qiymatli elyemyentlar orasida joylashgan elyemyentlardan yangi massiv tuzing;
v) massiv elyemyentlarini o’sish tartibida joylashtiring.
Misolni dasturi: #include using namespace std; int main() { int x,y,n,h,a[1000],min,max; cin >> n; for(int i=0;i cin >> a[i]; int s=0; for(int i=0;i if(s!=0){ cout << "Manfiy elementlar yigindisi:"; cout << endl; cout << s; cout << endl; } else { cout << "Manfiy elementlari yoq;";cout << endl; } min=a[0];x=0; for(int i=0;i if(a[i] x=i; } max=a[0];y=0; for(int i=0;i if(a[i]>max) y=i; } cout << "maksimal va minimal elementlar orasidagi sonlar:"; if(y>x){ for(int i=x+1;i cout << endl; cout << a[i]; } } else { for(int i=y+1;i cout << endl; cout << a[i];} } cout << endl; min=a[0];int m=1; for(int j=0;j { for(int i=m;i if(min>=a[i]){ h=min; min=a[i];a[i]=h; } } a[j]=min; min=a[j+1]; m++;cout < } return 0; }