Масала: Клавиатурадан массивни 5 та элементини киритинг ва уларни барчасини 2 га кўпайтиринг ҳамда ҳосил бўлган янги массивни чиқаринг.
олдинги слайддаги
http://acm.tuit.uz
05:03
Вазифа
«4»: Клавиатурадан массивни 5 та элементини киритинг ва уларни ўрта арифметигини топинг.
Мисол:
5 та сон киритинг:
4 15 3 10 14
ўрта арифметиги 9.200
«5»: Клавиатурадан массивни 5 та элементини киритинг ва уларни энг кичигини топинг.
Мисол:
5 та сон киритинг :
4 15 3 10 14
энг кичиги 3
http://acm.tuit.uz
05:03
Энг катта элемент
Масала: Массивни энг катта элементни топинг.
Алгоритм:
Псевдокод:
// энг катта элемент деб A[0] – ни оламиз
for ( i=1; i < N; i++ )
if ( A[i] > энг каттаси)
// A[i] нинг янги энг катта элементини сақлаш
Нима учун цикл i=1 дан бошланяпди?
?
http://acm.tuit.uz
05:03
Энг катта элементи
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]
05:03
Тасодифий сонлар билан тўлдириш
RAND_MAX – энг катта ихтиёрий бутун сон (одатда RAND_MAX = 32767)
[0,RAND_MAX] интервалдаги бутун сонлар
x = rand(); // биринчи сон
x = rand(); // энди бошқа сон
Кетма-кетликни бошланғич қийматини ўрнатиш:
srand ( 345 ); // 345 дан бошланади
#include // ихтиёрий сон
http://acm.tuit.uz
05:03
Берилган интервалдаги бутун сонлар
[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] интервал
http://acm.tuit.uz
05:03
Тасодифий сонлар билан тўлдириш
#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; }
Функция 0 дан N-1 гача бўлга ихтиёрий сонларни чиқаради
Қандай интервал?
?
http://acm.tuit.uz
Дастур
#include
#include
main()
{
const int N = 5;
int A[N], i, iMax;
// [100,150] ихтиёрий сонларни киритинг
//энг катта элемент ва уни номерини топинг
printf("\nEng katta element A[%d] = %d", iMax, A[iMax]);
getch();
}
Олдинги слайддаги
Const нима беради?
?
http://acm.tuit.uz
05:03
Вазифа
«4»: Массивни [-10..10] оралиқдаги 10 та сон билан тўлдиринг. Энг катта ва энг кичик элементини ҳамда уларни номерини топинг.
Мисол:
Жорий массив:
4 -5 3 10 -4 -6 8 -10 1 0
энг каттаси a[4]=10
энг кичиги a[8]=-10
«5»: [-10..10] оралиқдаги 10 та сон билан тўлдиринг. Энг катта иккита элементи ва уни номерини топинг.