- Mavzu: Massivlar uchun umumiy algoritmlar
- Reja:
- Massivni to’ldirish;
- Nusxa ko’chirish;
- Elementni olib tashlash;
- Elementni almashtirish;
- Xulosa.
- for (int i = 0; i < size of values; i++)
- {
- values[i] = 0;
- }
- Kvadratlar massivini 0, 1, 4, 9, 16, va h.z sonlar bilan to‘ldiramiz. E'tibor bering, 0 indeksli element 02 ni , 1 indeksli element 12 va h.z ni o‘z ichiga oladi.
- for (int i = 0; i < size of squares; i++)
- {
- squares[i] = i * i;
- }
- Ikkita massivni ko‘rib chiqamiz:
- int squares[5] = { 0, 1, 4, 9, 16 };
- int lucky_numbers[5];
- Hozir aytaylik, siz birinchi massivdagi barcha qiymatlarni ikkinchisiga ko‘chirmoqchisiz. Quyidagi ifoda xato hisoblanadi:
- lucky_numbers = squares; // Error C++da siz bir massivni ikkinchisiga o‘tkaza olmaysiz. Uning o‘rniga siz barcha elementlarni ko‘chirish uchun sikldan foydalanishingiz kerak:
- for (int i = 0; i < 5; i++)
- {
- lucky_numbers[i] = squares[i];
- }
- Joriy miqdori o‘zgaruvchan joriy miqdorda saqlanovchi qisman to‘ldirilgan massiv miqdorini ko‘rib chiqamiz. Deylik, siz past indeksli elementni qiymatdan olib tashlamoqchisiz. Agar elementlar hech qanday aniq tartibda bo‘lmasa, bu vazifani amalga oshirish yengil kechadi. Shunchaki, oxirgi elementdan olib tashlangan elementni qaytadan yozing.So‘ng, miqdorni kuzatuvchi o‘zgaruvchini kamaytiring.
- values[pos] = values[current_size - 1];
- current_size--;
- Agar elementlar tartibi muhim bo‘lsa vaziyat yanada murakkablashadi. Bunday holda siz barcha elementlarni keyingi indeksi pastroq elementga almashtirishingiz kerak. So‘ng massivni miqdorini saqlagan holda o‘zgaruvchini kamaytirishingiz kerak.
- Quyidagi dastur shu bobning avvalida oldimizga qo‘ygan vazifa ya'ni, kiritish ketma - ketligida eng katta qiymatni belgilashni hal etadi.
- RAND_MAX – eng katta ixtiyoriy son (odatta RAND_MAX = 32767)
- [0,RAND_MAX] intervaldagi butun sonlar
- x = rand(); // birinchi son
- x = rand(); // endi boshqa
- Ketma-ketlikni boshlang’ich qiymatini kiritish:
- srand ( 345 ); // 345 dan boshlanadi
- #include // ixtiyoriy son
- [0,N-1] intervaldagi butun sonlar:
- Misollar:
-
- [a,b] intervaldagi sonlar:
- int random(int N) {
- return rand()% N;
- }
- x = random ( 100 ); // [0,99] interval
- x = random ( z ); // [0,z-1] interval
- x = random ( z ) + a; // [a,z-1+a] interval
- x = random (b – a + 1) + a; // [a,b] interval
- #include
- #include
- main()
- {
- const int N = 10;
- int A[N], i;
- printf(“Massiv:\n");
- for (i = 0; i < N; i++ ) {
- A[i] = random(100) + 50;
- cout<
- }...}
- int random(int N)
- { return rand() % N; }
Do'stlaringiz bilan baham: |