Olimpiada masalalari


-misol. Chap tomonida o‘zidan kichik elementlar, o‘ng tomonda esa o‘zidan kattalari joylashgan “o‘rta”



Yüklə 0,83 Mb.
səhifə31/34
tarix30.03.2023
ölçüsü0,83 Mb.
#91326
1   ...   26   27   28   29   30   31   32   33   34
Olimpiada masalalari

196-misol. Chap tomonida o‘zidan kichik elementlar, o‘ng tomonda esa o‘zidan kattalari joylashgan “o‘rta” elementni topish dasturini tuzing. (Elementlarning o‘rnini almashtirish protsedurasi va “o‘rta” elementni aniqlash protsedurasidan foydalaning).
197-misol. Endi oldimizga qo‘yilgan maqsad shundan iboratki, biz “o‘rta” dasturini shunday o‘zgartirishimiz kerakki, u nafaqat “o‘rta” elementni aniqlasin, balki shu usuldan foydalangan holda sonli massivni tartiblasin.


198. Bir o‘lchovli massivda 0,1,2 elementlari bor. Ularni birinchi uchta o‘ringa o‘sib borish tartibida ko‘chiring.
#include
using namespace std;
void main()
{
const int n = 10;
int A[n], c;

for (int i = 1; i <= n; i++)


{
A[i] = rand() % 10;
cout << A[i] << " ";
}

for (int i= 1; i <= n; i++)


{
if (A[i] == 0)
{
c = A[1];
A[1] = A[i];
A[i] = c;
}
if (A[i] == 1)
{
c = A[2];
A[2] = A[i];
A[i] = c;
}
if (A[i] == 2)
{
c = A[3];
A[3] = A[i];
A[i] = c;
}
}
cout << "Natija\n";
for (int i = 1; i <= n; i++)
cout << A[i] << " ";

return;
}



199. Inson 1 dan 1000 gacha bo‘lgan sonlarning qaysi birini o‘ylaganini 10 ta savol yordamida aniqlovchi dasturni tuzing. Har bir savol “O‘ylangan son haqiqatdan ham k dan kattami?” ko‘rinishida bo‘lishi kerak. Bunda k aniq son. Insonning javoblari - bu 1 (Ha) va 0 (Yo‘q). Ikkiga bo‘lish g‘oyasini qo‘llang (“bo‘lib yubor va hukmronlik qil”).


200. Ikkita tartiblangan a(n) va b(m) massiv berilgan. Ushbu massiv elementlaridan tartiblangan c(n+m) massiv hosil qiling, ya’ni ikkita tariblangan massivni bitta tartiblangan massivga birlashtiring.

201. Massivni nolga teng elementlarini tashlab yuborgan holda ixchamlang. Nollar massivning oxirgi joylariga qo‘yilsin.

#include


using namespace std;
void main()
{
const int n = 75;
int A[n], i=1, c;

for (int i = 1; i <= n; i++)


{
A[i] = rand() % 10;
cout << A[i] << " ";
}

for (int j = 1; j <= n; j++)
{
if (A[j] == 0)
{
for (int i = j; i <= n - 1; i++)
{
c = A[i];
A[i] = A[i + 1];
A[i + 1] = c;
}
}
}

cout << "\n Natija:\n";
for (int i = 1; i <= n; i++)
cout << A[i] << " ";
}
202. Tasodifiy sonlar funksiyasi yordamida tuzilgan ikkita tartiblangan bir o‘lchovli massivlarda o‘xshash elementlarning sonini aniqlang. (Massivni tasodifiy sonlar funksiyasi yordamida tuzish, kamayish bo‘yicha tartiblash, so‘ngra esa solishtirish kerak).
#include
using namespace std;
void sort(int n, int *A)
{
int k;
for (int i = 1; i <= n - 1; i++) //Massivni saralash jarayoni
for (int j = 1; j <= n - 1; j++)
if (A[j]>A[j + 1])
{
k = A[j];
A[j] = A[j + 1];
A[j + 1] = k;
}
return;
}
int control(int *A, int *B, int n)
{
int S = 0;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
{
if(A[i] == B[j])
S++;
}
return S;
}
void main()
{
const int n = 500;
int A[n], B[n], S1;

for (int i = 1; i <= n; i++)


{
A[i] = rand() % 100;
B[i] = rand() % 100;
}
cout << "Massiv\n";
for (int i = 1; i <= n; i++)
{
cout << A[i] << " " << B[i]< }
sort(n, A);
sort(n, B);
S1 = control(A, B, n);
cout << "Natija: " << S1 << endl;
}
203. A[N,M] massiv berilgan. Barcha mavjud to‘g‘ri burchakli qism massivlar bo‘yicha to‘g‘ri burchakli qism massivdagi elementlarning maksimal yig‘indisini topish kerak.


Yüklə 0,83 Mb.

Dostları ilə paylaş:
1   ...   26   27   28   29   30   31   32   33   34




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin