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] ёдда саклаймиз
- 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 узгарувчини олиб ташлаймиз.
- Тасодифий сонлар билан тулдириш
- 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(); }
- «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], … ўрнини алмаштиринг
- Псевдокод:
- for ( i = 0; i < N; i++ )
- // A[i] ва A[N-1-i]ўрнини алмаштиринг
- Элементларнинг урнини алмаштириш?
- Масала: икки пиёладаги нарсаларнинг урнини алмаштириш.
- Масала: хотира ячейкаларидаги маълумотлар урнини алмаштириш.
- 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];
- Цикл:
- for ( i = 0; i < N-1; i ++) A[i] = A[i+1];
- 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
Do'stlaringiz bilan baham: |