Мавзу: Массивлар


-мисол. Массив элементларидан мусбатларининг сони ва суммасини хисоблаш дастури



Download 0,92 Mb.
bet2/2
Sana02.05.2022
Hajmi0,92 Mb.
#601780
1   2
Bog'liq
Си Массивлар 1

1-мисол. Массив элементларидан мусбатларининг сони ва суммасини хисоблаш дастури.

  • # include
  • # include
  • void main ( )
  • { int x[ ] = {-21,6,15,33,-7,-45,34,-22,17,31};
  • int s=0, n=0; clrscr ( );
  • for (int i = 0; i < 10; i++)
  • { if (x[i] < 0) continue;
  • s = s + x[i]; n++;}
  • cout << “s=”<< s << “n=”<
  • getch ( );
  • }

# include

  • # include
  • # include
  • void main ( )
  • { int x[10], s=0, i, n=0;
  • for (i = 0; i < 10; i++)
  • cin >> x[i];
  • for (i=0; i<10; i++)
  • { if (x[i] < 0) continue;
  • s + = x[i]; n++ ; }
  • cout << “s=”<< s << “n=”<
  • getch ( );
  • }

10та элементдан иборат массивнинг энг катта, энг кичик элементларини ва уларнинг урта кийматини хисоблаш дастури.

  • # include
  • # include
  • void main ( )
  • { float x[] = {1,2.23,5.6,-78,-7,-45.12,34.0,12,9,-1};
  • float s, min, max; int i; clrscr ( );
  • min = x[0]; max=x[0];
  • for (i=0; i<10; i++)
  • { if (min > x[i]) min = x[i];
  • if (max < x[i]) max = x[i]; }
  • s = (min + max) / 2; cout << “min=”<
  • cout <<”max=”<
  • cout <<”o’rta qiymat=”<

мисол. 6та элементдан иборат а ва в массивлари берилган. Уларни ўзаро қўшинг ва хар бир элементни 7 га купайтириб. янги с массивини ҳосил қилинг.

  • # include
  • # include
  • void main ( )
  • { int a[6] = {1,2,3,4,5,6},
  • b[6] = {7,8,9,10,11,12}, c[6];
  • for (int i=0; i<6; i++)
  • { c[i] = ( a[i] + b[i] ) *7;
  • cout <<”c=”<
  • getch ( ); }

20та ҳақиқий элементлардан иборат А массиви берилган. Жуфт индексли элементлардан алоҳида, тоқ индексли элементлардан алоҳида массив ҳосил қилинг.

  • # include
  • # include
  • void main ( )
  • { float a[20], b[10], c[10];
  • for (int i=0; i<20; i++)
  • cin >> a[i];
  • for (int i=0; i<10; i++)
  • { c[i] = a[2*i +1];
  • b[i] = a[2*i];
  • cout << ”c=” << c[i];
  • cout << ”b=” << b[i] <
  • getch ( );
  • }

. А ва В массивлари берилган. Янги С массивини қуйидагича ҳосил қилинг: А массивининг элементлари янги массивнинг тоқ элементлари, В массивининг элементлари эса янги массивнинг жуфт элементларини ташкил этади.

  • # include
  • # include
  • void main ( )
  • { float a[5], b[5], c[10]; int i;
  • for ( i=0; i<5; i++)
  • cin >> a[i] >> b[i];
  • for ( i=0; i< 5; i++)
  • { c[2*i+1] = b[i];
  • c[2*i] = a[i]; }
  • for (i = 0; i < 10; i++)
  • cout << ”c[” << i << ”]= ” << c[i] <
  • getch ( );
  • }
  • Топшириқ
  • «4»: Клавиатурадан 5 та элементдан иборат массивнинг қийматларини киритинг ва уларнинг ўрта арифметик қийматини топинг.
  • Мисол:
  • Бешта сон киритинг:
  • 4 15 3 10 14
  • ўрта арифметик қиймат 9.200
  • «5»: Клавиатурадан 5 та элементдан иборат массивнинг қийматларини киритинг ва уларнинг энг кичик қийматини топинг.
  • Мисол:
  • Бешта сон киритинг :
  • 4 15 3 10 14
  • минимал элемент 3
  • N константанинг қиймати ўзгарганда дастурнинг қолган қисми ўзгариши керак эмас!
  • !
  • Мавзу. Массивнинг максимал элементи
  • Мисол: Массивнинг максимал элементини топинг.
  • Алгоритм:
  • Псевдокод:
  • // фараз киламиз,A[0] элемент – энг катта
  • for ( i=1; i < N; i++ )
  • if ( A[i] > максимал )
  • // янги максимал элементни A[i] ёдда саклаймиз
  • Нега цикл i=1?
  • ?
  • Максимал элемент
  • Максимал элемент
  • max = A[0]; // A[0]– максимал элемент деб оламиз
  • iMax = 0;
  • for ( i=1; i < N; i++ ) // колганларни текширамиз
  • if ( A[i] > max ) { // янгисини топдик
  • max = A[i]; // A[i]ни ёдда саклаймиз
  • iMax = i; // i ни ёдда саклаймиз
  • }
  • Кушимча: максимал элементнинг индексини аниклаш?
  • кандай соддалаштириш мумкин?
  • ?
  • элементнинг iMax индекси(номери) буйича унинг кийматини A[iMax].доим аниклаш мумкин.Шунинг учун хамма жойда max ни A[iMax]га алмаштирамиз ва max узгарувчини олиб ташлаймиз.
  • A[iMax]
  • Тасодифий сонлар билан тулдириш
  • RAND_MAX – максимал тасодифий бутун сон (Купинча RAND_MAX = 32767)
  • [0,RAND_MAX] интервалдаги тасодифий бутун сон
  • x = rand(); // биринчи сон
  • x = rand(); // энди эса бошка сон
  • Кетма кетликдаги бошлангич кийматни аниклаш:
  • srand ( 345 ); // 345 дан бошлаймиз
  • #include // тасодифий сонлар
  • Берилган интервалдаги бутун сонлар
  • [0,N-1] интервалдаги бутун сонлар :
  • Мисоллар:
  • [a,b] интервалдаги бутун сонлар:
  • int random(int N) {
  • return rand()% N;
  • }
  • x = random ( 100 ); // интервал [0,99]
  • x = random ( z ); // интервал [0,z-1]
  • x = random ( z ) + a; // интервал [a,z-1+a]
  • x = random (b – a + 1) + a; // интервал [a,b]
  • Тасодифий сонлар билан тулдириш
  • #include
  • #include
  • main()
  • {
  • const int N = 10;
  • int A[N], i;
  • printf(«Бошлангич массив:\n");
  • for (i = 0; i < N; i++ ) {
  • A[i] = random(100) + 50;
  • printf("%4d", A[i]);
  • }
  • ...
  • }
  • int random(int N)
  • { return rand() % N; }
  • функция 0 дан то N-1 гача булган
  • Тасодифий сонни беради
  • Кандай интервал?
  • ?
  • Программа
  • #include
  • #include
  • main()
  • {
  • const int N = 5;
  • int A[N], i, iMax;
  • // [100,150]оралигидаги тасодифий сонлар билан тулдиради
  • // максимал элементни ва унинг номерини аниылаш
  • printf("\nМаксимал элемент A[%d] = %d", iMax, A[iMax]);
  • getch(); }
  • аввалги слайдларда
  • const нима беради?
  • ?
  • Задания
  • «4»: Заполнить массив из 10 элементов случайными числами в интервале [-10..10] и найти в нем максимальный и минимальный элементы и их номера.
  • Пример:
  • Исходный массив:
  • 4 -5 3 10 -4 -6 8 -10 1 0
  • максимальный a[4]=10
  • минимальный a[8]=-10
  • «5»: Заполнить массив из 10 элементов случайными числами в интервале [-10..10] и найти в нем два максимальных элемента и их номера.
  • Пример:
  • Исходный массив:
  • 4 -5 3 10 -4 -6 8 -10 1 0
  • максимальные a[4]=10, a[7]=8
  • Мавзу . Массивларни кайта ишлаш
  • Масала: Массив элементларини тескари тартибда жойланг
  • Алгоритм:
    • A[0] ва A[N-1], A[1] ва A[N-2], … ўрнини алмаштиринг
  • Псевдокод:
  • 3
  • 5
  • 9
  • 7
  • 7
  • 9
  • 5
  • 3
  • 0
  • 1
  • N-2
  • N-1
  • 0
  • 1
  • N-2
  • N-1
  • for ( i = 0; i < N; i++ )
  • // A[i] ва A[N-1-i]ўрнини алмаштиринг
  • индекслар суммаси N-1
  • нима нотўғри?
  • ?
  • ; i++ )
  • N / 2
  • Элементларнинг урнини алмаштириш?
  • 2
  • 3
  • 1
  • Масала: икки пиёладаги нарсаларнинг урнини алмаштириш.
  • Масала: хотира ячейкаларидаги маълумотлар урнини алмаштириш.
  • 4
  • 6
  • ?
  • 4
  • 6
  • 4
  • x
  • y
  • c
  • c = x;
  • x = y;
  • y = c;
  • x = y;
  • y = x;
  • 3
  • 2
  • 1
  • c узгарувчи ишлатмаса хам буладими?
  • ?
  • Программа
  • main()
  • {
  • const int N = 10;
  • int A[N], i, c;
  • // массивни тулдириш
  • // бошлангич массивни чоп этиш
  • for ( i = 0; i < N/2; i++ ) {
  • c = A[i];
  • A[i] = A[N-1-i];
  • A[N-1-i] = c;
  • }
  • // хосил булган массивни чоп этиш
  • }
  • Задания
  • «4»: Заполнить массив из 10 элементов случайными числами в интервале [-10..10] и выполнить инверсию отдельно для 1-ой и 2-ой половин массива.
  • Пример:
  • Исходный массив:
  • 4 -5 3 10 -4 -6 8 -10 1 0
  • Результат:
  • -4 10 3 -5 4 0 1 -10 8 -6
  • «5»: Заполнить массив из 12 элементов случайными числами в интервале [-12..12] и выполнить инверсию для каждой трети массива.
  • Пример:
  • Исходный массив:
  • 4 -5 3 10 -4 -6 8 -10 1 0 5 7
  • Результат:
  • 10 3 -5 4 -10 8 -6 -4 7 5 0 1
  • Циклический сдвиг
  • Задача: сдвинуть элементы массива влево на 1 ячейку, первый элемент становится на место последнего.
  • Алгоритм:
    • A[0]=A[1]; A[1]=A[2];… A[N-2]=A[N-1];
  • Цикл:
  • 3
  • 5
  • 8
  • 1
  • 9
  • 7
  • 0
  • 1
  • 2
  • 3
  • N-2
  • N-1
  • 5
  • 8
  • 1
  • 9
  • 7
  • 3
  • for ( i = 0; i < N-1; i ++) A[i] = A[i+1];
  • Что неверно?
  • ?
  • почему не N?
  • Программа
  • main()
  • {
  • const int N = 10;
  • int A[N], i, c;
  • // заполнить массив
  • // вывести исходный массив
  • c = A[0];
  • for ( i = 0; i < N-1; i ++)
  • A[i] = A[i+1];
  • A[N-1] = c;
  • // вывести полученный массив
  • }
  • Задания
  • «4»: Заполнить массив из 10 элементов случайными числами в интервале [-10..10] и выполнить циклический сдвиг ВПРАВО.
  • Пример:
  • Исходный массив:
  • 4 -5 3 10 -4 -6 8 -10 1 0
  • Результат:
  • 0 4 -5 3 10 -4 -6 8 -10 1
  • «5»: Заполнить массив из 12 элементов случайными числами в интервале [-12..12] и выполнить циклический сдвиг ВПРАВО на 4 элемента.
  • Пример:
  • Исходный массив:
  • 4 -5 3 10 -4 -6 8 -10 1 0 5 7
  • Результат:
  • -4 -6 8 -10 1 0 5 7 4 -5 3 10

Download 0,92 Mb.

Do'stlaringiz bilan baham:
1   2




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish