Скачиваний:
6
Добавлен:
20.05.2024
Размер:
218.22 Кб
Скачать

5-Lekciya. Sanlı klaslar menen islew. Sanlı klaslar hám olar menen islew

(complex, vallaray, slice, gslice h.t.b).

Jobası:

1.Complex sanlı klass hám funksiyaları.

2.Vallaray sanlı klass hám funksiyaları.

3.Slice hám gslice sanlı klass hám funksiyaları.

4.Qosımsha sanlı klasslar.

Complex sanlı klass hám funksiyaları.

C++ standart kitapxanasındaǵı kompleks sanlar klası obyekt modelinen paydalanıwdıń jaqsı úlgisi bolıp tabıladı. Arifmetikalıq ámellerdiń qayta anıqlaw sebepli bul klass obyektleri ornatılǵan maǵlıwmat tiplerinen birine tiyisli sıyaqlı qollanıladı.

Sonıń menen bir qatarda, dástúriy arifmetikalıq ózgeriwshiler hám kompleks sanlar bir waqtıniń ózinde qálegen ámellerde qatnasıwı múmkin. Esletpe: Bul jerde kompleks sanlar matematikasına tiyisli sóz emes.

Mısal:

Bul klastı qollanıw ushın complex tema (kitapxana) fayl qosılıwı kerek. Tómendegi kishi programma fragmentine qarań:

#include<complex> //...

complex<double> a; complex<double> b; //...

complex<double> c=a*b+a/b;

Kompleks hám arifmatikalıq ámeller óz-ara sheriklikte orınlanadı:

complex<double> a;

complex<double> complex_obj=a+3.14159;

Kompleks tiplerdi arifmetikalıq tipler menende jaratıw hám olar ushın operator = di qollanıwǵa boladı:

complex<double> complex_obj; double dval=3.14159; complex_obj=dval;

//...

int ival=3 ; complex_obj=ival ;

Vallary

Bul sanlı mánislerdiń massivlerine arnalǵan kitapxana hám bul kitapxana vallaray klasın hám onıń járdemshi klasları menen funkciyaların járiyalaydı.

slice (Valarray slice selector)

Bul klass Valarry-diń selektorın bildiredi. Ol heshbir elementti qamtımaydı, hám oǵan silteme bermeydi. Ol tek valarray::operator[] ishine indeks retinde paydalanılatuǵın elementler tańlawın sáwlelendiredi.

gslice

Valarray ulıwmalastırılǵan selektor klası valarray selektorın (kóp ólshemli) kórsetedi. Ol heshbir elementti qamtımaydı, hám oǵan silteme bermeydi. Ol tek valarray::operator[] ishine indeks retinde paydalanılatuǵın elementler tańlawın sáwlelendiredi.

Kitapxana faylı: <valarray>

Mısal:

 

start = 1 , size

= {2,

3} , stride = {7, 2}

 

 

Input : 0

1

2 3

4 5

6

7 8

9

10

11 12 13

 

 

Output : 1

3

5 8

10 12

 

 

 

 

 

 

Explanation: 1 +

0*7

+

0*2

= 1,

 

 

 

 

 

1

+

0*7

+ 1*2

= 3,

 

 

 

 

 

1

+

0*7

+ 2*2

= 5,

 

 

 

 

 

1

+

1*7

+ 0*2

= 8,

 

 

 

 

 

1

+

1*7

+ 1*2

= 10,

 

 

 

 

 

1

+

1*7

+ 2*2

= 12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

//C++ Program to demonstrate use of

//gslice to address columns of 3D array #include <iostream> // std::cout #include <valarray> // std::gslice

void test_print(std::valarray<int>& v, int rows, int cols,

int planes)

{

for (int r = 0; r < rows; ++r) {

for (int c = 0; c < cols; ++c) {

for (int z = 0; z < planes; ++z) std::cout

<<v[r * cols * planes + c * planes + z]

<<' ';

std::cout << '\n';

}

std::cout << '\n';

}

}

// Driver Code int main()

{

//3d array: 2 x 4 x 3 elements std::valarray<int> v

={ 111, 112, 113, 121, 122, 123, 131, 132, 133, 141, 142, 143, 211, 212, 213, 221, 222, 223, 231, 232, 233, 241, 242, 243 };

//int ar3D [2][4][3]

std::cout << "Initial 2x4x3 array:\n"; test_print(v, 2, 4, 3);

//update every value in the first columns of both

//planes

v[std::gslice(0, { 2, 4 }, { 4 * 3, 3 })] = 1;

//subtract the third column from the

//second column in the 1st plane v[std::gslice(1, { 1, 4 }, { 4 * 3, 3 })]

-= v[std::gslice(2, { 1, 4 }, { 4 * 3, 3 })];

std::cout << "After column operations: \n"; test_print(v, 2, 4, 3);

return 0;

}

Baqlaw sorawları:

1.C++ te Complex sanlı klass hám funksiyaları degenimiz ne?

2.Vallaray sanlı klass hám funksiyaları haqqında nelerdi bilesiz?

3.Slice hám gslice sanlı klass hám funksiyaları tuwralı mısallar keltiriń.

Соседние файлы в предмете Объектно ориентированное программирование