11-ma’ruza. Ikki o‘lchovli massivlar, ularni e’lon qilish usullari va ularni dasturlash tilida ishlash mexanizmlari


Download 0.49 Mb.
Pdf ko'rish
Sana28.12.2022
Hajmi0.49 Mb.
#1023244
Bog'liq
11-ma\'ruza slayd



11-MA’RUZA.
 
IKKI O‘LCHOVLI MASSIVLAR
ULARNI E’LON QILISH USULLARI 
VA ULARNI DASTURLASH TILIDA 
ISHLASH MEXANIZMLARI
 



0-panel 
1-panel 
2-panel 
3-panel 
4-panel 
5-panel 
0-ustun 
1-ustun 
2-ustun 
0-satr 
1-satr 
IKKI OʻLCHAMLI MASSIVLAR 
Hozirgacha koʻrib chiqqan massivlar tokchadagi kitoblar 
singari edi. Uzunroq tokchada koʻproq kitob boʻlishi mumkin, 
qisqaroq javonda kamroq boʻlishi mumkin. Shunday qilib, kitob 
javon uzunligi uning imkoniyatlarini belgilaydigan yagona 
oʻlchovdir, ya’ni. javon bir oʻlchovli. Agar 9-rasmda koʻrsatilgan 
quyosh panellarini simulyatsiya qilish uchun massivdan 
foydalanish kerak boʻlsa nima boʻladi. Quyosh panellari, kitob 
javonlaridan farqli oʻlaroq, ikki oʻlchovga ega: uzunligi va kengligi. 
Quyosh panellari massivi 


 
Rasmda koʻrib turganingizdek oltita quyosh panellari ikki 
oʻlchovli tartibda joylashtirilgan: uchta ustunli ikki satr (qatorlar). 
Ammo siz ushbu tartibni har biri oʻzi uchta paneldan iborat 
boʻlgan ikkita elementdan iborat massiv deb oʻylashingiz mumkin; 
boshqacha qilib aytganda, massivlar qatori sifatida. C++ da ikki 
oʻlchovli massivlarni yaratishingiz mumkin, ammo faqat ikki 
oʻlchov bilan cheklanmaysiz. Ehtiyojingizga va dasturning 
xususiyatiga 
qarab 
xotirada 
koʻp 
oʻlchovli 
massivlarni 
yaratishingiz mumkin. 
Koʻp 
oʻlchovli 
massivlarni 
e'lon 
qilish 
va 
initsializatsiyalash. C++ tili har bir oʻlchovda ajratilishi kerak 
boʻlgan elementlar sonini koʻrsatib, koʻp oʻlchovli massivlarni e'lon 
qilishga imkon beradi. Shunday qilib, 3- rasmdagi quyosh 
panellarini aks ettiruvchi ikki oʻlchovli butun sonlar massivini 
quyidagicha e'lon qilishingiz mumkin: 
int Panel[2][3]; 


3-rasmda oltita panelning har biriga 0 dan 5 gacha boʻlgan 
identifikator berilgan. Agar biz butun sonli qatorni bir xil tartibda 
initsializatsiya qilsak, unda bu initsializatsiya quyidagicha boʻladi: 
int Panel [2][3] = {{0, 1, 2}, {3, 4, 5}}; 
Koʻrib turganingizdek, boshlangʻich sintaksis ikki oʻlchovli 
massivni ishga tushirishda ishlatiladigan sintaksisga oʻxshaydi. 
Agar massiv uchta qator va uchta ustundan iborat boʻlsa, uning 
e'lonlari va initsializatsiyasi quyidagicha boʻladi: 
int Array3[3][3] = {{-501, 206, 2017}, {989, 101, 206}, {303, 
456, 596}}; 
C ++ tili koʻp oʻlchovli massiv modelidan foydalanishga imkon 
berishiga qaramay, bunday massivlar xotirada hanuzgacha bir 
oʻlchovli sifatida saqlanadi. 
Kompilyator koʻp oʻlchovli massivni faqat bitta yoʻnalishda 
kengayadigan xotira maydoniga tushiradi. 


Agar istasak, xuddi shu solarPanellDs qatorini quyidagi tarzda 
ishga tushirishingiz mumkin - natija bir xil: 
int Panel[2] [3] = {0, 1, 2 , 3, 4, 5}; 
Biroq, avvalgi usul aniqroq, chunki u koʻp oʻlchovli massiv 
massivlar massivi ekanligini tasavvur qilishni va tushunishni 
osonlashtiradi. 
Koʻp oʻlchovli massiv elementlariga murojaat qilish. Koʻp 
oʻlchovli massivni massivlar qatori kabi koʻrib chiqaylik. Ilgari 
muhokama qilingan ikki oʻlchovli massiv uchta satr va uchta 
ustunni oʻz ichiga olganligi sababli, uni uchta elementdan iborat 
massiv deb oʻylashimiz mumkin, ularning har biri uchta butun 
sondan iborat. 
Shuning uchun, ushbu massivda butun songa kirish kerak 
boʻlganda, birinchi indeksdan butun sonlarni saqlaydigan satr 
sonini, ikkinchi indeksdan esa ushbu massivdagi ustun sonini 
koʻrsatish kerak. Quyidagi massivni koʻrib chiqaylik: 


int Array3[3][3] ={{-501, 206, 2017}, {989, 101, 206}, {303, 
456, 596}}; 
U har biri uchta butun sonni oʻz ichiga olgan uchta massiv 
sifatida qaralishi uchun initsializatsiya qilingan. Bu yerda 206 
qiymatiga ega butun element [0][1] pozitsiyasida, 456 qiymatga 
ega element esa [2] [1] pozitsiyada. 
Quyidagi misolda ikki oʻlchamli massivni e’lon qilish, uni 
toʻldirish va uning elementlariga murojaat qilish koʻrsatilgan. 
#include  
using namespace std; 
int main() 

const int M=3, N=2; 
int Array2 [M][N]; 
cout<<"Massivni toʻldiring"<
for(int i=0; i
for(int j=0; j


cout<
cin>>Array2[i][j]; 

cout<<"Massivning (1,1)-elementi:"<
return 0; 

 

Download 0.49 Mb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling