Массивлар Массив – бир хил типдаги элементлар гуруҳи бўлиб, битта умумий ном ва хотирага эга. Хоссалари



Download 0,98 Mb.
bet1/4
Sana23.02.2022
Hajmi0,98 Mb.
#122680
  1   2   3   4
Bog'liq
Massiv

  • Массив тушунчаси. Статик массивлар. Кўрсаткичлар. Кўрсаткичларни ўзлаштириш. Динамик массивлар.
  • 05:03
  • Массивлар
  • Массив – бир хил типдаги элементлар гуруҳи бўлиб, битта умумий ном ва хотирага эга.
  • Хоссалари:
    • Барча элементлари битта типга эга
    • Массив битта номга эга
    • Барча элементлар хотирада кетма-кет жойлаштирилган
  • Мисоллар:
    • ўқувчилар рўйхати
    • кўп қаватли уйдаги хонадонлар
    • шаҳардаги университетлар
    • Йил бўйича ҳавонинг температураси
  • http://acm.tuit.uz
  • 05:03
  • Массивлар
  • 5
  • 10
  • 15
  • 20
  • 25
  • 0
  • 1
  • 2
  • 3
  • 4
  • A
  • массив
  • 2
  • 15
  • массив элементи НОМЕРИ
  • (ИНДЕКС)
  • A[0]
  • A[1]
  • A[2]
  • A[3]
  • A[4]
  • массив элементи
  • ҚИЙМАТИ
  • A[2]
  • массив элементи НОМЕРИ (ИНДЕКС) : 2
  • массив элементи
  • ҚИЙМАТИ: 15
  • С++ да массив элементлари НОЛдан бошланади!
  • !
  • http://acm.tuit.uz
  • 05:03
  • Массивларни эълон қилиш
  • Нима учун эълон қилинади?
    • Массив номини аниқлаш учун
    • Массив типини аниқлаш учун
    • Элементлар сонини аниқлаш учун
    • Хотирадан жой ажратиш учун
  • Мисол:
  • Ўлчамни константа орқали киритиш:
  • номи
  • Массив ўлчами (элементлар сони)
  • Элементлар типи
  • int A [ ];
  • const int N = 5;
  • N
  • int A [ 5 ];
  • http://acm.tuit.uz
  • 05:03
  • Массивларни эълон қилиш
  • Мисоллар:
  • int X[10], Y[10];
  • float zz, A[20];
  • char s[80];
  • Бошланғич қийматларни бериш:
  • int A[4] = { 8, -3, 4, 6 };
  • float B[2] = { 1. };
  • char C[3] = { 'A', '1', 'Ю' };
  • қолганлари нолга тенг!
  • Агарда бошланғич қийматлар берилмаган бўлса, элементлари ихтиёрий кераксиз қиймат олиши мумкин!
  • !
  • http://acm.tuit.uz
  • 05:03
  • Нима нотўғри?
  • int N = 10;
  • float A[N];
  • const int
  • int X[4.5];
  • int A[10];
  • A[10] = 0;
  • float X[5];
  • int n = 1;
  • X[n-2] = 4.5;
  • X[n+8] = 12.;
  • Массив чегарасидан чиқиш
  • (маълумотлар хотирадан ўчирилади)
  • int X[4];
  • X[2] = 4.5;
  • Каср қисми олиб ташланади
  • (хатолик йўқ)
  • float B[2] = { 1., 3.8, 5.5 };
  • int A[2] = { 1, 3.8 };
  • float
  • http://acm.tuit.uz
  • 05:03
  • Массивлар
  • Эълон қилиш:
  • Клавиатурадан киритиш:
  • Элемент бўйича амаллар:
  • Экранга чиқариш:
  • const int N = 5;
  • int A[N], i;
  • cout<<“Massivni 5 ta elementini kiriting:\n”;
  • for( i=0; i < N; i++ ) {
  • cout<<"A[i] = ", i ;
  • cin>> A[i] ;
  • }
  • A[0] =
  • A[1] =
  • A[2] =
  • A[3] =
  • A[4] =
  • 5
  • 12
  • 34
  • 56
  • 13
  • for( i=0; i < N; i++ ) A[i] = A[i]*2;
  • cout<<“Natija:\n”;
  • for( i=0; i < N; i++ ) cout<< A[i]<<“ ”;
  • Natija:
  • 10 24 68 112 26
  • http://acm.tuit.uz
  • 05:03
  • Дастур
  • #include
  • #include
  • main()
  • {
  • const int N = 5;
  • int A[N], i;
  • // массив элементларини киритиш
  • // массивларни қайта ишлаш
  • // натижаларни чиқариш
  • getch();
  • }
  • Масала: Клавиатурадан массивни 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 та сон билан тўлдиринг. Энг катта иккита элементи ва уни номерини топинг.
  • Мисол:
  • Жорий массив:
  • 4 -5 3 10 -4 -6 8 -10 1 0
  • энг каттаси a[4]=10, a[7]=8
  • http://acm.tuit.uz
  • 05:03
  • Массивни тескари ёзиш
  • Масала: массив элементларини тескари тартибда чиқаринг (инверсияни қўлланг).
  • Алгоритм:
    • Жойларини алмаштир 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
  • N-1 индекслар суммаси
  • Нимаси нотўғри?
  • ?
  • ; i++ )
  • N / 2
  • http://acm.tuit.uz
  • 05:03
  • Қандай алмаштириш мумкин?
  • 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 сиз ҳам амалга ошириш мумкин?
  • ?
  • http://acm.tuit.uz
  • 05:03
  • Дастур
  • 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;
  • }
  • // олинган массивни чиқариш
  • }
  • http://acm.tuit.uz
  • 05:03
  • Вазифа
  • «4»: Массивни [-10..10] оралиқдаги ихтиёрий 10 сон билан тўлдиринг. Массивни иккига бўлган ҳолда 1-чи ва 2-чи ярмида инверция амални бажаринг.
  • Масалан:
  • Kiruvchi massiv:
  • 4 -5 3 10 -4 -6 8 -10 1 0
  • Natija:
  • -4 10 3 -5 4 0 1 -10 8 -6
  • «5»: Массивни [-12..12] оралиқдаги ихтиёрий 12 сон билан тўлдиринг. Ҳар бир тўртта элементи устида инверция амалини бажаринг.
  • Масалан:
  • Kiruvchi massiv:
  • 4 -5 3 10 -4 -6 8 -10 1 0 5 7
  • Natija:
  • 10 3 -5 4 -10 8 -6 -4 7 5 0 1
  • http://acm.tuit.uz
  • 05:03
  • Циклли суриш
  • Масала: Массив элементларини битта катак чапга суринг, биринчи элемент охирги элемент ўрнига тушсин.
  • Алгоритм:
    • 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 эмас?
  • http://acm.tuit.uz
  • 05:03
  • Дастур
  • 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;
  • // натижавий массивни чиқаринг
  • }
  • http://acm.tuit.uz
  • 05:03
  • Вазифа
  • 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 -5 3 10 -4 -6 8 -10 1 0 5 7
  • Натижа:
  • 1 0 5 7 4 -5 3 10 -4 -6 8 -10
  • http://acm.tuit.uz
  • 05:03
  • Статик берилганлар
  • ҳар бир ўзгарувчининг номи (массив) бўлади, ўша ном воситасида унга мурожаат қилинади.
  • ўлчами олдиндан маълум (дастур тузаётганда аниқланади)
  • хотира эълон қилинганда ажратилади
  • дастур ишлаш давомида ўлчамни ўзгартириш мумкин эмас.
  • int x, y = 20;
  • float z, A[10];
  • char str[80];
  • http://acm.tuit.uz
  • Динамик берилганлар
  • ўлчами олдиндан ноаниқ, дастур ишлаши давомида аниқланади.
  • хотира дастур ишлаш давомида ажратилади.
  • Муаммо:
  • агар берилганларнинг номи бўлмаса уларга қандай мурожаат қиламиз?
  • Ечим:
  • хотирадаги адреси орқали.
  • Муаммо: 1) қандай ўзгарувчиларда адресни сақлаш мумкин ?
  • 2) адреслар билан қандай ишланади?
  • http://acm.tuit.uz

Download 0,98 Mb.

Do'stlaringiz bilan baham:
  1   2   3   4




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