Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

12-ameliy prezentaciya

.pdf
Скачиваний:
0
Добавлен:
22.12.2023
Размер:
494.51 Кб
Скачать

12-AMELIY SABAQ

KÓP ÓLSHEMLI MASSIVLER BOYÍNSHA ÁMELLER.

Jumıstıń maqseti:

Kóp ólshemli massivler boyınsha ámeller orınlaw, funkciya hám massivler boyınsha C++ baǵdarlamalastırıw tilinde baǵdarlama dúziw.

Ámeliy bólim:

Tómendegi programmada 10 dana pútin sannan ibarat dinamikalıqalıq massiv jaratıw, oǵan mánis beriw hám óshiriw ámelleri orınlanǵan.

#include <iostream.h> #include <alloc.h> int main()

{

int *pVector;

if((pVector = (int*)malloc(10 * sizeof(int))) == NULL)

{

cout << ”yad jeterli emes!!!”; return 1;

}

//ajıratılǵan yad aymaǵın toltırıw for(int i = 0; i < 10; i++)

*(pVector + i) = i; //vektor elementlerin shıǵarıw for(int i = 0; i < 10; i++)

cout << *(pVector + i) << endl; //ajıratılǵan yad bólegin óshiriw free(pVector);

return 0;

}

Keyingi programmada ólshemli haqıyqıy sanlar massiviniń bas dioganalınan joqarıda jaylasqan elementler qosındısın esaplaw máselesi

sheshilgen.

#include <iostream.h>

#include <alloc.h>

int main()

{

int n;

float *pMatr, s = 0;

cout << ”A(n,n): n = ”; cin >> n;

if((pMatr

=(float*)malloc(n

*n

*

sizeof(float)))==NULL)

 

 

 

{

 

 

 

cout << ”yad jeterli emes!!!”; return 1;

}

for(int i = 0; i < n; i++) for(int j = 0; j < n; j++)

cin >> *(pMatr + i * n + j); for(int i = 0; i < n; i++) for(int j = i + 1; j < n; j++) s += *(pMatr + i * n + j);

cout << ”Matrica bas diagonalınan joqaridaǵi“; cout << ”elementler qosındısı S = ” << s << endl; return 0;

}

new operatorı járdeminde, massivke yad ajıratıwda obyekt tipinen keyin kvadrat qawıs ishinde obyektler sanı kórsetiledi. Máselen, pútin tiptegi 10 dana sannan ibarat massivke orın ajıratıw ushın

pVector = new int[10];

ańlatpası jazılıwı kerek. Buǵan qarama-qarsı túrde, bul usılda ajıratılǵan yadtı bosatıw ushın

delete [] pVector;

kórsetpesin beriw kerek boladı.

Eki ólshemli dinamikalıq massivti payda etiw ushın

int **a;

kórinisindegi «kórsetkishke kórsetkish» isletiledi.

Dáslep massiv qatarları sanına qarap kórsetkishler massivine dinamikalıq yadtan orın ajıratıw kerek:

a = new int *[m] //bul jerde m massiv qatarları sanı

Sońınan, hár bir qatar ushın tákirarlaw operatorı járdeminde yad ajıratıw hám olardıń baslanǵısh adreslerin a massiv elementlerine jaylastırıw zárúr boladı:

for(int i = 0; i < m; i++)

a[i] = new int[n]; //n baǵanalar sanı

Sonı aytıp ótiw kerek, dinamikalıq massivtiń hár bir qatarı yadtıń túrli orınlarında jaylasıwı múmkin.

Eki ólshemli massivti óshiriwde aldın massivtiń hár bir elementi (qatarı), keyin ala massivtiń ózi joq qılınadı (óshiriledi):

for(i = 0; i < m; i++) delete []a[i];

delete []a;

Matricanı vektorǵa kóbeytiw máselesi ushın dinamikalıq massivlerden paydalanıwǵa mısal:

int main()

{

int n, m; int i, j; float s;

cout << ”\nn = ”; cin >> n; //matrica qatarları sanı cout << ”\nm = ”; cin >> m; //matrica baǵanaları sanı float *b = new float[m];

float *c = new float[n];

//kórsetkishler massivke yad ajıratıw float **a = new float *[n];

for(i =0; i <n; i++) //hár bir qatar ushın

a[i] = new float[m]; //dinamikalıq yad ajıratıw for(j = 0; j < m; j++)

cin >> b[j]; for(i = o; i < n; i++) for(j = 0; j < m; j++) cin >> a[i][j]; for(i = 0; i < n; i++)

{

for(j = 0, s = 0; j < m; j++) s += a[i,j] * b[j]; c[i] = s;

}

for(i = 0; i < n; i++)

cout << ”\tc[“ << i << ”]=” << c[i]; delete []b; delete []c;

for(i = 0; i < n; i++) delete []a[i]; delete []a; return 0;

}

Соседние файлы в предмете Программирование на C++