1-laboratoriya mashguloti


Download 82.13 Kb.
bet1/3
Sana15.11.2023
Hajmi82.13 Kb.
#1777077
  1   2   3
Bog'liq
1-laboratoriya mashg’uloti Statik ma\'lumotlar tuzilmalarini o\'rg-fayllar.org


xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">
1-laboratoriya mashguloti

Statik ma'lumotlar tuzilmalarini o'rganish
Ishdan maqsad: Statik marganish va ularni tadqiq qilish.
Qolumotlar tuzilmalarini yaratish va ularga doir misollarning dasturini ishlab chiqish.
Ish tartibi:

  • Tajriba ishi nazariy marganish;

  • Berilgan topshiriqning algoritmini ishlab chiqish;

  • C++ dasturlash muhitida dasturni yaratish;

  • Natijalarni tekshirish;

  • Hisobotni tayyorlash va topshirish.

Nazariy qism.
Maliqliklari olgan tuzilmaga aytiladi.Statik tuzilmalarni kolchovli bolchovli massivlar C++ da quyidagicha elchovli massivlar esa quyidagicha ifodalanadi:
[qatorlar_soni][ustunlar_soni];
Masalan, int a[2][3];


1-misol. Massivni elyemyentlarini yiglchamli n ta elyemyentdan iborat massiv byerilgan. Quyidagilarni bajaring:
a) manfiy elyemyentlarning yigsish 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;
}
Vektorlar. Vektor bu bir xil toifadagi elementlarning tartibli ketma ketligi bolchami dastur bajarilishi davomida osh vektor
const int size = 8;
const int value = 1024;
vector vec1(size);//8 ta elementga ega, elementlar qiymatlari 0 ga teng
vectorvec2(size,value);//8 ta elementga ega, elementlar qiymatlari 1024 ga teng
inta[4] = { 0, 1, 1, 2 };
vector vec3(a,a+4);//4 ta elementga ega, elementlar qiymatlari a massivinikiga teng
vector vec4(vec2);//vec2 ning nusxasi
Vektorlarning massivga nisbatan qulayligi haqida quyidagilarni bayon qilmoqchimiz:



  • Vektorlar bilan ishlash uchun standart kutubxona funksiyalari mavjud botamiz:

  • test.at(i) - test[i] kabi yozuv bilan bir xil, faqat bunda agar i-element mavjud borsatmaydi;

  • test.asign(n,m)boshqa vektorning boshi va oxirini kolgan elementlarni ushbu vektorga kiritadi;

  • test.front()oxirgi elementga murojaat;

  • test.begin()vektor oxiri iteratori(oxirgi elementidan keying adresni kovektorni tozalash;

  • test.erase(i)yokitest.erase(start,end)idagi elementlarni ovektordagi elementlar sonini aniqlaydi;

  • test.swap(test2) - test va test2 vektorlar elementlarini almashtiradi;

  • test.insert(a,b) - test vektoriga iterator korsatadi;

  • test.insert(a,n,b)idagi elementlarni a dan oldin kiritadi.

  • begin() va end() iteratorlari mos ravishdaxotirada vektorning birinchi elementini va oxirgi elementidan keyingi adresni korinda iterator nimaligiga aniqlik kiritsak. Iterator bi birorta orsatkich hisoblanadi. Iterator bizga kerak qiymatlarni qayerdaligini biladi va uning qiymatini bizga chiqarib beradi. Itaratorlar asosan konteynerlar bilan ishlashda qorsatayotgan element quyidagicha olinadi.


    cout<<*cur<
    Bu erda tushunarliki, * belgisi cur iteratorni emas, u korsatadi.


    cur++; // keying elementga otish

    Vektor elementlarinni iterator bilan ekranga chiqarishni kolgan vektorni siklsiz solishtirish mumkin. Bunda ularning mos elementlari qiymatlari solishtiriladi. Masalan:



#include
#include
using namespace std;
int main()
{
vector array1(3);
array1[0] = 4;
array1[1] = 2;
array1[2] = 1;
vector array2(3);
array2[0] = 4;
array2[1] = 2;
array2[2] = 1;
// vektorlarni solishtirish
if (array1 == array2) {
cout << "array1 == array2" << endl;
}
return 0;
}

  • Vektor elementlarini siklsiz ekranga chiqarish mumkin:

#include
#include
#include
using namespace std;
int main()
{
vector array1;
array1.insert(array1.end(), 4);
array1.insert(array1.end(), 3);
array1.insert(array1.end(), 1);
copy( array1.begin(), // vektor boshi iteratori
array1.end(), // vektor oxiri iteratori
ostream_iterator(cout," ") //chiqarish potoki iteratori
);
return 0;
}

  • Vectorlar yordamida ikki orsatyapti

    // 4-el.dan oldin 3 marta -1ni kiritamiz:
    v.insert(it, 3, -1);
    // v vektor el.lari 0 10 11 -1 -1 -1 12 33 1 2 3 4
    // v vektorning 5 chiramiz
    it = v.begin() + 4;
    v.erase(it);
    // v vektor el.lari 0 10 11 -1 -1 12 33 1 2 3 4
    v.clear();//v vektorni oplamlar.
    Toladi. Tochirish, elementlar sonini aniqlash, boplamni C++ da quyidagicha eplamga element kiritish
    }
    s.insert(42); // 42 tochiramiz
    }
    // set::size() funksiyasi unsigned int toifasida qiymat qaytargani uchun uni int toifasiga oplamda push_back() funksiyasi yoq. Shu sababli toplam elementlari yigplam bilan ishlashning afzalligi tezlikdir.Ayniqsa, qidiruvda.Set::find() funksiyasi 1 ta argumentga ega va uning qaytaradigan qiymati yoki topilgan elementni koladi.


    set s;
    ...
    if(s.find(42) != s.end()) {
    // 42 mavjud
    }
    else {
    // 42 mavjud emas
    }
    Tochirish uchun erase() funksiyasidan foydalaniladi.
    set s;
    ...
    s.insert(54);
    ...
    s.erase(29);
    s.erase(s.find(57));
    Bu funksiyaning oraliqli kolgan elementlar //ochirilmaydi)

    }
    else {
    // it2 iteratorni bitta element keying suramiz
    // set::iterator uchun += operatori qo //ishlatilishi mumkin
    it2++;
    s.erase(it1, it2);
    }
    Tolon qilishning huddi vektordagi kabi oraliqli konstruktori ham mavjud:


    int data[5] = { 5, 1, 4, 2, 3 };
    set S(data, data+5);
    Misol.Matn faylida berilgan soplam xosil qiling.Toq";

    system("pause");
    }
    Misol.Satrdagi belgilarning toqligini aniqlash dasturi.


    #include
    #include
    #include
    using namespace std;
    int main()
    {
    set cs;
    for(int i='A';i<='Z';i++) cs.insert(i);
    string str="A1bZzh2;";
    for(int i=0;i
    if(cs.find(str[i])!=cs.end())
    cout<
    system("pause");
    return 0;
    }

    Download 82.13 Kb.

    Do'stlaringiz bilan baham:
  1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling