Massivlar Massiv – bir XIL tipdagi elementlar guruhi bo‘lib, bitta umumiy nom va xotiraga EGA



Download 1,39 Mb.
Sana25.01.2022
Hajmi1,39 Mb.
#409163
Bog'liq
Massivlar

  • Massiv tushunchasi. Statik massivlar. Dinamik massivlar.
  • 21:29
  • Massivlar
  • Massiv – bir xil tipdagi elementlar guruhi bo‘lib, bitta umumiy nom va xotiraga ega.
  • Xossalari:
  • Barcha elementlari bitta tipga ega
  • Massiv bitta nomga ega
  • Barcha elementlar xotirada ketma-ket joylashtirilgan
  • Misollar:
  • o‘quvchilar ro‘yxati
  • ko‘p qavatli uydagi xonadonlar
  • shahardagi universitetlar
  • Yil bo‘yicha havoning temperaturasi
  • 21:29
  • Massivlar
  • 5
  • 10
  • 15
  • 20
  • 25
  • 0
  • 1
  • 2
  • 3
  • 4
  • A
  • massiv
  • 2
  • 15
  • massiv elementi NOMERI
  • (INDEKS)
  • A[0]
  • A[1]
  • A[2]
  • A[3]
  • A[4]
  • massiv elementi
  • QIYMATI
  • A[2]
  • massiv elementi NOMERI (INDEKS) : 2
  • massiv elementi
  • QIYMATI: 15
  • C++ da massiv elementlari NOLdan boshlanadi!
  • !
  • 21:29
  • Massivlarni e’lon qilish
  • Nima uchun e’lon qilinadi ?
    • Massiv nomini aniqlash uchun
    • Massiv tipini aniqlash uchun
    • Elementlar sonini aniqlash uchun
    • Xotiradan joy ajratish uchun
    • Misol:
  • O‘lchamni konstanta orqali kiritish:
  • nomi
  • Massiv o‘lchami (elementlar soni)
  • Elementlar tipi
  • int A [ ];
  • const int N = 5;
  • N
  • int A [ 5 ];
  • 21:29
  • Massivlarni e’lon qilish
  • Misollar:
  • int X[10], Y[10];
  • float zz, A[20];
  • char s[80];
  • Boshlang‘ich qiymatlarni berish:
  • int A[4] = { 8, -3, 4, 6 };
  • float B[2] = { 1. };
  • char C[3] = { 'A', '1', 'Ю' };
  • qolganlari nolga teng!
  • Agarda boshlang‘ich qiymatlar berilmagan bo‘lsa, elementlari ixtiyoriy keraksiz qiymat olishi mumkin!
  • !
  • 21:29
  • Nima noto‘g‘ri?
  • 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.;
  • Massiv chegarasidan chiqish
  • (ma’lumotlar xotiradan o‘chiriladi)
  • int X[4];
  • X[2] = 4.5;
  • Kasr qismi olib tashlanadi
  • (xatolik yo‘q)
  • float B[2] = { 1., 3.8, 5.5 };
  • int A[2] = { 1, 3.8 };
  • float
  • 21:29
  • Massivlar
  • E’lon qilish:
  • Klaviaturadan kiritish:
  • Element bo‘yicha amallar :
  • Ekranga chiqarish:
  • 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
  • 21:29
  • Dastur
  • #include
  • #include
  • main()
  • {
  • const int N = 5;
  • int A[N], i;
  • // массив элементларини киритиш
  • // массивларни қайта ишлаш
  • // натижаларни чиқариш
  • getch();
  • }
  • Masala: Klaviaturadan massivni 5 ta elementini kiriting va ularni barchasini 2 ga ko‘paytiring hamda hosil bo‘lgan yangi massivni chiqaring.
  • oldingi slayddagi
  • 21:29
  • Vazifa
  • «4»: Klaviaturadan massivni 5 ta elementini kiriting va ularni o‘rta arifmetigini toping.
  • Misol:
  • 5 ta son kiriting:
  • 4 15 3 10 14
  • o‘rta arifmetigi 9.200
  • «5»: Klaviaturadan massivni 5 ta elementini kiriting va ularni eng kichigini toping.
  • Misol:
  • 5 ta son kiriting :
  • 4 15 3 10 14
  • eng kichigi 3
  • 21:29
  • Masala: Massivni eng katta elementni toping.
  • Algoritm:
  • // eng katta element deb A[0] – ni olamiz
  • for ( i=1; i < N; i++ )
  • if ( A[i] > eng kattasi)
  • // A[i] ning yangi eng katta elementini saqlash
  • 21:29
  • Tasodifiy sonlar bilan to‘ldirish
  • RAND_MAX – eng katta ixtiyoriy butun son (оdatda RAND_MAX = 32767)
  • [0,RAND_MAX] intervaldagi butun sonlar
  • x = rand(); // birinchi son
  • x = rand(); // endi boshqa son
  • Ketma-ketlikni boshlang‘ich qiymatini o‘rnatish :
  • srand ( 345 ); // 345 dan boshlanadi
  • #include // ixtiyoriy son
  • 21:29
  • Tasodifiy sonlar bilan to‘ldirish
  • #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; }
  • Funktsiya 0 dan N-1 gacha bo‘lga ixtiyoriy sonlarni chiqaradi
  • Dastur
  • #include
  • #include
  • main()
  • {
  • const int N = 5;
  • int A[N], i, iMax;
  • // [100,150] ixtiyoriy sonlarni kiriting
  • //eng katta element va uni nomerini toping
  • printf("\nEng katta element A[%d] = %d", iMax, A[iMax]);
  • getch();
  • }
  • Oldingi slayddagi
  • Const nima beradi?
  • ?
  • 21:29
  • Massivni teskari yozish
  • Мasala: massiv elementlarini teskari tartibda chiqaring (inversiyani qo‘llang).
  • Аlgoritm:
    • Joylarini almashtir 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] o‘rinlarini almashtirish
  • N-1 индекслар суммаси
  • Nimasi noto‘g‘ri?
  • ?
  • ; i++ )
  • N / 2
  • 21:29
  • Qanday almashtirish mumkin?
  • 2
  • 3
  • 1
  • Masala: Ikkita piyolani o‘rnini almashtirish.
  • Маsala: Ikkita katakni xotiradagi joyini almashtirish.
  • 4
  • 6
  • ?
  • 4
  • 6
  • 4
  • x
  • y
  • c
  • c = x;
  • x = y;
  • y = c;
  • x = y;
  • y = x;
  • 3
  • 2
  • 1
  • C siz ham amalga oshirish mumkin?
  • ?
  • 21:29
  • Dastur
  • main()
  • {
  • const int N = 10;
  • int A[N], i, c;
  • // Massivni to‘ldirish
  • // joriy massivni kiritish
  • for ( i = 0; i < N/2; i++ ) {
  • c = A[i];
  • A[i] = A[N-1-i];
  • A[N-1-i] = c;
  • }
  • // olingan massivni chiqarish
  • }
  • 21:29
  • har bir o‘zgaruvchining nomi (massiv) bo‘ladi, o‘sha nom vositasida unga murojaat qilinadi.
  • o‘lchami oldindan ma’lum (dastur tuzayotganda aniqlanadi)
  • xotira e’lon qilinganda ajratiladi
  • dastur ishlash davomida o‘lchamni o‘zgartirish mumkin emas.
  • int x, y = 20;
  • float z, A[10];
  • char str[80];
  • Dinamik berilganlar
  • o‘lchami oldindan noaniq, dastur ishlashi davomida aniqlanadi.
  • xotira dastur ishlash davomida ajratiladi.
  • Muammo:
  • agar berilganlarning nomi bo‘lmasa ularga qanday murojaat qilamiz?
  • Yechim:
  • xotiradagi adresi orqali.
  • Muammo: 1) qanday o‘zgaruvchilarda adresni saqlash mumkin ?
  • 2) adreslar bilan qanday ishlanadi?

Massiv toifasi *massiv nomi; Masalan: float *a, *b; Bunda haqiqiy sonlardan tashkil topgan a nomli bir o‘lchovli massiv e’lon qilinmoqda. Massiv uzunligi new protsedurasi yordamida aniqlanishi lozim. Masalan, a=new float[4] ; Bunda a nomli massiv uchun operativ xotiradan 0 dan 3 gacha bo‘lgan 4 ta joy ajratilmoqda.

  • 21:29
  • 21:29
  • ni hisoblash dasturini tuzing.
  • #include
  • #include
  • using namespace std;
  • int main ()
  • {
  • float *x, *y, a; int i,n;
  • cout<<"a="; cin>>a;
  • cout<<"n="; cin>>n;
  • x=new float[n]; y=new float[n];
  • cout<
  • for (i=0; i
  • cout<<"x["<>x[i];}
  • for (i=0; i
  • {
  • y[i]=pow(sin(x[i]),2)+3*a;
  • cout<<"y["<
  • }
  • return 0;
  • }
  • Masala. Massiv o‘lchamini kiriting va uning elementlarini kiriting. Massivni tartiblang va uni ekranga chiqaring.
  • Muammo :
  • massiv o‘lchami oldindan ma’lum emas.
  • yechish usullari :
    • Xotirani ortig‘i bilan ajratish
    • Xotirani o‘lchov aniq bo‘lganda keragicha ajratish.
  • Algoritm:
    • Massiv o‘lchovini kiritish;
    • Xotira ajratish ;
    • Massiv elementlarini kiritish;
    • Massivni tartiblash va ekranga chiqarish;
    • Massivni xotiradan o‘chirish.
  • Dastur
  • #include
  • void main()
  • {
  • int *A, N;
  • printf (“Massiv o’lchovini kiriitng > ");
  • scanf ("%d", &N);
  • A = new int [N];
  • if ( A == NULL ) {
  • printf(“хотира ажратишда муаммо");
  • return;
  • }
  • for (i = 0; i < N; i ++ ) {
  • printf ("\nA[%d] = ", i+1);
  • scanf ("%d", &A[i]);
  • }
  • ...
  • delete pI;
  • }
  • delete A;
  • A = new int [N];
  • Dinamik xotira ajratish
  • Xotirani o‘chirish
  • for (i = 0; i < N; i ++ ) {
  • printf ("\nA[%d] = ", i+1);
  • scanf ("%d", &A[i]);
  • }
  • oddiy massiv kabi ishlaydi!
  • if ( A == NULL ) {
  • printf(“xotira ajratish muammo");
  • return;
  • }
  • tekshir
  • 21:29

Download 1,39 Mb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©www.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