2.Massivlatning qanday ko`rinishlari mavjud
Massivlarning 2 xil ko‘rinishi mavjud:
1. Bir o‘lchamli 2. Ikki o‘lchamli
Massivning elementiga bir indeks orqali murojaat qilish mumkin bo’lgan massiv bir o’lchamli deyiladi. Bir o’lchamli massivni elon qilish quyidagicha bo’ladi:
< [elementlar_soni ]
={boshlangich qiymatlar};
Quyidagi massivlarni elon qilishga bir necha misollar keltirilgan:
1)float a[5]; 2)int m[3]; 3)bool b[10];
1) a elementlari haqiqiy sonlarda iborat bolgan, 5 ta elementdan tashkil topgan massiv. Indekslari esa 0 dan 4 gacha bolgan sonlar
•Float a [5];massiv elementlari a[0] a[1] a[2] a[3] a[4]
•Qiymati 4 -7 15 5.5 3
2) m elementlari butun sonlardan iborat bolgan, 3 ta elementdan tashkil topgan massiv. Indekslari esa 0 dan 2 gacha bo`lgan sonlar.
•Int m[3]; massiv elementlari m[0] m[I] m[2]
•Qiymat 2 -17 6
•Xotirada joylashishi [ 0x22ffI0 0x22ffI4
0x22ffI8
Massiv elementlariga murojat qilish oddiy ozgaruvchilarga murojat qilishdan biroz farq qiladi. Massiv elementiga murojat qilish uning indeksi orqali boladi
•A[1]=10; a massivning indeksi 1 bolgan elementi 10 qiymat ozlashtirsin
•Cin>>a[2] ; a massivning indeksi 2 bolgan elementi kiritilsin;
•Cout<3) b elementlari mantiqiy qiymatlardan (true , false ) iborat bolgan 10 ta elementdan tashkil topgan massiv. Indekslari esa 0 dan 9 gacha bolgan sonlar
C++ da massiv indeksi 0 dan boshlanadi C++ da massiv 0- indeksi elementga ornatilgan korsatkich xisoblanadi. Shuning uchun ixtiyoriy i- elementga murojat a[i] yoki **(a+i) orqali bolishi mumkin.Massivni e’lon qilishda uning elementlariga boshlangich qiymat berish mumkin va buning bir necha usuli mavjud. Olchami ko’rsatilgan massivni to’liq initsializatsiya qilinadi. 4
•Int k [5] ={ 2, 3, 7, 8, 6,};
Bu yerda 5 ta elementdan iborat bo’lgan k massivi e’lon qilingan va massivning barcha elementlariga boshlangich qiymat berilgan.Olchami ko’rsatilgan massivini to’liqmas initsializatsiyalash.
•Int k[5] = {2, 3, 7};
Bu yerda 5 ta elementdan iborat bolgan k massivi elon qilingan va massivning dastlabki 3 ta elementlariga boshlangich qiymat berilgan.O`lchami korsatilmagan massivni toliq initsializatsiyalash.
• Int k [ ] = { 2, 3, 7, 8, 6,} ;
Shuni takidlash lozimki, agar massiv o’lchami ko’rsatilmasa, uni to’liq initsializatsiyalash shart. Bu xolda massiv o’lchami kompilyatsiya jarayonida massiv elementlari soniga qarab aniqlanadi. Bu yerda massiv o’lchami 5 ga teng.
4 ) Olchami ko’rsatilgan massivning barcha elementlariga boshlangich qiymat 0 berish kerak:
•Int k [5] = { 0 };
Bir olchamli massivlar uchun ishlatilgan ozgaruvchilar, bir xil jinsdagi berilganlarni hotirada saqlash uchun foydalaniladi. Ikki olchamli massivlarda esa satr va ustunlar orqali bir xil jinsdagi qiymatlarni ikki olchamli ozgaruvchilar ichida saqlash uchun foydalaniladi.
Ikki olchamli statik massivlarni elon qilish.
Toifa massiv_nomi [massiv_satrlar_soni]
[massiv_ustunlar_soni];
Ikki olchamli massivlarni elon qilishda, bir o‘lchamlidan farqi, massiv nomidan keyin qirrali qavs ichida ikkita qiymat yozilganligidir. Bulardan birinchisi, satrlar sonini ikkinchisi esa ustunlar sonini bildiradi. Yani ikki olchamli massiv elementiga ikkta indeks orqali murojat qlinadi. Ikki olchamli massivlar matematika kursidan malum bo‘lgan matritsalarni eslatadi.
Massiv tarkibida elementlar mavjud bo’ladi. Massivning eng ko’pi bilan ketishi mumkin bo’lgan elementlar soni uning o’lchamini bildiradi. Massivning elementi turgan o’rni uning indeksi deyiladi. Massivning elementiga uning indeksi orqali murojaat qilinadi. Massivning indeksi sifatida butun sonlar xizmat qiladi. Har bir massiv o’zining individual nomiga ega bo’lishi kerak, ya’ni bir xil nomdagi massivlar bo’lmaydi. Ularning nomi oldin e’lon qilingan oddiy o’zgaruvchi nomi bilan ustma-ust tushmasligi kerak.
Statik massivlarni e’lon qilishning umumiy ko’rinishi quyidagicha:
[ ]={boshlang’ich qiymatlar}
5
Bunda {boshlang’ich qiymatlar} albatta bo’lishi kerak. Misollar:
int [ ]A={1,4,3,1};
string[ ] B = { “olma”, “gilos”, “anor”};
double[ ] C = { 0.005, 1.234, 12.5, 13.5, 10.6 };
Yuqoridagi massivlarda massivning o’lchami uning initsializatsiya qismida qatnashgan elementlar soni bilan aniqlanadi. C++ tilida xuddi C++ da bo’lgani kabi element indeksi 0 dan boshlanadi. A[0] indeksli element 1 ga teng, B[1] indeksli element esa “gilos” ga teng va h.
Aytib o’tganimizdek, C++ tilida massivlar xotiradan unumli foydalanish maqsadida massivlarni dinamik tarzda e’lon qilishga kelishib olingan. Dinamik tarzda massivni e’lon qilishning umumiy ko’rinishi quyidagicha:
[ ] =new [o’lcham]
Bu yerda new operatori ga mos ravishda xotiradan joy ajratadi
Dinamik massivlarni e’lon qilishga doir misollar:
n = Convert.ToInt32(Console.ReadLine());
int [ ] M1 = new int [10];
float [ ] M2 = new float [100];
double [ ] M3 = new double [n];
M1 va M2 nomli massivlarning elementlari uchun 10 va 100 ta joy ajratilgan. Ular ham dinamik massiv hisoblanadi. M3 massiv uchun xotiradan qancha joy ajratish foydalanuvchining o’ziga havola qilingan, ya’ni n o’zgaruvchisi klaviaturadan kiritiladi, bu o’zgaruvchi qiymati esa M3 massiv o’lchami sifatida qabul qilinadi. M3 massiv dinamik massivga yorqin misoldir.
Dinamik massiv o’lchami ham statik massiv kabi aniqlanishi lozim, faqat bunda u dastur ishlashi davomida anqlanishi bilan static massivdan farq qiladi.
Indekslar massiv elementlariga murojat qilish uchun ishlatiladi. Indeks massivdagi element sonini bildiradi .Massivdagi to’rtinchi elementga murojat qilish uchun biz 3 indeksidan foydalanishimiz kerak. Misol uchun :num[3]. Massiv elementlarining qiymatlarini olish va o’rnatish uchun indekslardan foydalanamiz.
int[ ] nums=new int [4];
nums[0]=1;
nums[1]=2; 6
nums[2]=3;
nums[3]=5;
Console.ReadLine(nums[3]); //5
Va bizda faqat 4 ta element uchun belgilangan massiv mavjud bo’lgani uchun , masalan oltinchi elementni qo’llay olmaymiz nums[5]=5;. Agar biz buni qilishga harakat qilsak biz IndexOutOfRangeException-ni olamiz.
3.Massivlarning C++ dagi ko‘rinishi
Statik massivlar elementlar oldindan aniqlanadi. Buning uchun sikl operatorlariga murojaat qilamiz. Masalan, quyidagi misolda dinamik massivga qiymat berish hamda uning elementlarini chop etish amallar ko’rsatilgan. Biz massiv elementlari bilan ishlashimiz uchun for sikl operatori kerak buladi:
using System;
internal class ArrayExample
{
private static void Main()
{
int[ ] A = new int[10];
int i;
for (i = 0; i < 10; i = i + 1)
A[i] = i;
for (i = 0; i < 10; i = i + 1)
Console.WriteLine(‘A[‘ + i + ’]: ’ + A[i]);
}
}
Bu dasturda A massivning elementlari sifatida i ning qiymatlari kelmoqda. Xuddi shunday massiv elementlarini klaviatura orqali ham kiritish mumkin. Buning uchun quyidagi kodni ko’raylik:
using System;
internal class ArrayExample
{
private static void Main()
{
int[ ] A = new int[10];
int i; 7
for (i = 0; i < 10; i = i + 1)
A[i] = Convert.ToInt32(Console.ReadLine());
for (i = 0; i < 10; i = i + 1)
Console.WriteLine(‘A[‘ + i + ’]: ’ + A[i]);
}
}
Massiv elementlari qiymatlaridan foydalanishga doir quyidagi sodda misolni ko’rib chiqaylik.
Men Shahbozga judayam qiziqarli matematik masala berdim. Masala sharti quyidagicha: Men unga 10 ta son aytaman ularning yig’indisini topib 10 ga bo’lishi kerak buladi. Keyin Shahboz menga shu kodni yozib berdi. Sizham bu kodni o’z kompyuteringizda tekshirib kuring.
using System;
internal class Average
{
private static void Main()
{
int[ ] A = new int[10];
int i;
double S = 0;
Console.WriteLine("Sonlarni kiriting");
for (i = 0; i < 10; i = i + 1)
A[i] = Convert.ToInt32(Console.ReadLine());
for (i = 0; i < 10; i++)
S += A[i];
S = S / 10;
Console.WriteLine(S);
}
}
O’lchami ko`rsatilgan massivningbarcha elementlariga boshlang`ich qiymat 0 berish.
8
#include
Using namespace std;
Int main (){
Int a[10] = {0};
//massivning barcha elementlariga 0 qiymat berish
For (int i= 0; i<10; i++)
Cout <<”a[“<Retun 0;
Do'stlaringiz bilan baham: |