11-ameliy prezentaciya
.pdf11-AMELIY SABAQ
KÓP ÓLSHEMLI MASSIVLERDI JÁRIYALAW HÁM OLARDÍŃ ELEMENTLERINE BAYLANÍSLARDÍ SHÓLKEMLESTIRIWGE TIYISLI MÁSELELER
SHESHIW
Jumıstıń maqseti: Kóp ólshemli massivlerdi járiyalaw. Olardıń
elementlerine baylanıslardı shólkemlestiriw.
Teoriyalıq bólim: C++ tilinde massivler elementiniń tipine sheklewler qoyılmaydı, biraq bul tipler shekli ólshemdegi obyektlerdiń tipi bolıwı kerek. Sebebi, kompilyator massivtiń yadtan qansha orın (bayt) iyelewin esaplay alıwı
kerek. Ásirese, massiv komponentası massiv bolıwı múmkin (vektorlar-
vektorı), nátiyjede matrica dep atalıwshı eki ólshemli massiv payda boladı.
Eger matricanıń elementi de vektor bolsa, úsh ólshemli massivler – kub
payda boladı. Usı jol menen sheshilip atırǵan máselege baylanıslı túrde qálegen
ólshemdegi massivlerdi jaratıw múmkin.
Ámeliy bólim.
C++ tilinde biz kóp ólshemli massiv retinde belgili massivti dúze alamız. Mısalı:
int x[3][4];
Bunda x, eki ólshemli massiv bolıp tabıladı. Ol eń kóbi 12 elementti saqlay aladı. Bul massivti tómende kórsetilgendey 3 qatardan ibarat keste retinde qarastırıwǵa boladı hám hár qatarda 4 baǵana bar.
C++ baǵdarlamalastırıwdaǵı eki ólshemli massivtiń elementleri
Úsh ólshemli massivlerde usıǵan uqsas jumıs isleydi. Mısalı,
float x[2][4][3];
Bul massiv x maksimum 24 elementti uslay aladı. Massivtegi elementlerdiń ulıwma sanın onıń ólshemlerin kóbeytiw arqalı biliwge boladı:
2 x 4 x 3 = 24
Kóp ólshemli massiv inicializaciyası
Ádettegi massiv sıyaqlı, biz kóp ólshemli massivti bir neshe usıl menen inicializaciyalaymız.
1. Eki ólshemli massiv inicializaciyası
int test[2][3] = {2, 4, 5, 9, 0, 19};
Joqarıda atalǵan usıl artıqmashılıqqa iye emes. Bul massivti birdey massiv elementleri menen inicializaciyalawdıń jaqsı usılı tómende keltirilgen:
int test[2][3] = { {2, 4, 5}, {9, 0, 19}};
Bul massivte 2 qatar hám 3 baǵana bar, sonlıqtan bizde hárqaysısı 3 elementten ibarat eki qatar elementler bar.
C++ te eki ólshemli massivtiń inicializaciyası
2. Úsh ólshemli massivtiń inicializaciyası:
int test[2][3][4] = {3, 4, 2, 3, 0, -3, 9, 11, 23, 12, 23, 2, 13, 4, 56, 3, 5, 9, 3, 5, 5, 1, 4, 9};
Bul úsh ólshemli massivti inicializaciyalawdıń jaqsı usılı emes. Bul massivti inicializaciyalawdıń jaqsı usılı tómendegishe:
int test[2][3][4] = {
{{3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2} },
{{13, 4, 56, 3}, {5, 9, 3, 5}, {5, 1, 4, 9} }
};
Usı úsh ólshemli massivtiń ólshemlerine itibar beriń. Birinshi ólshemniń mánisi 2. Sonıń menen, birinshi ólshemdi quraytuǵın eki element:
1-element = { {3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2} } 2-element = { {13, 4, 56, 3}, {5, 9, 3, 5}, {5, 1, 4, 9} }
Ekinsh ólshemniń 3 mánisi bar. Birinshi ólshem elementleriniń hárqaysısında úsh element bar ekenin este saqlań:
1-element ushın {3, 4, 2, 3}, {0, -3, 9, 11} hám {23, 12, 23, 2}. 2-element ushın {13, 4, 56, 3}, {5, 9, 3, 5} hám {5, 1, 4, 9}.
Sońında int, ekinshi ólshem elementleriniń hárqaysısınıń ishinde tórt san bar:
{3, 4, 2, 3} {0, -3, 9, 11}
...... ...
...... ...
1-mısal: Eki ólshemli massiv:
//Barlıq elementlerdi kórsetiw
//eki ólshemli massiv
#include <iostream> using namespace std;
int main() {
int test[3][2] = {{2, -5}, {4, 0}, {9, 1}};
//for ciklın paydalanıw
//massivtiń qatarları
for (int i = 0; i < 3; ++i) {
// massiv baǵanaları
for (int j = 0; j < 2; ++j) {
cout << "test[" << i << "][" << j << "] = " << test[i][j] << endl;
}
}
return 0;
}
Kodtı iske qosıw:
Nátiyje:
test[0][0] = 2 test [0][1] = -5 test [1][0] = 4 test [1][1] = 0 test [2][0] = 9 test [2][1] = 1
Joqarıda keltirilgen mısalda biz int test atalǵan eki ólshemli massivti inicializaciyaladıq. 3 qatar hám 2 baǵana bar. Bunda massiv elementlerin kórsetiw ushın for ciklın qollandıq
dáslepki sırtqı cikl i==0 den i==2 massiv qatarı
dáslepki ishki cikl j==0 den j==1 massiv baǵanaları
Sońında biz hárbir iteraciyada massiv elementlerin basıp shıǵaramız.