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

Otchyot_OOPro_Laba7

.docx
Скачиваний:
30
Добавлен:
19.01.2015
Размер:
23.94 Кб
Скачать

Отчёт по лабораторной работе №7

По дисциплине «Объектно-ориентированное программирование»

Ст.гр.ИНФ-10-1

Бурдеева Анастасия

5. Серед елементів матриці, що знаходяться вище головної діагоналі, знайти добуток парних елементів.

#include <iostream>

using namespace std;

template <class T>

class Array2D

{

public:

class ArraylD

{

private:

int dim2;

T * Array1;

public:

friend class Array2D ;

ArraylD():Array1(NULL),dim2(0) {}

T& operator[](int index);

const T& operator[] (int index) const;

}; //class ArraylD

private:

int dim1;

ArraylD* Array2;

public:

Array2D():dim1(0),Array2(NULL){};

Array2D(int d1, int d2);

virtual ~Array2D();

ArraylD& operator[] (int index)

{

return Array2[index];

}

const ArraylD& operator[] (int index) const

{

return Array2[index];

}

};

int main()

{

setlocale(LC_CTYPE,"rus");

int n(3),m(4),mul=1;

Array2D<int> array2D(n,m);

for(int i = 0; i< n ;cout<<endl,++i)

{

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

{

array2D[i][j] = rand()%11;

cout<<array2D[i][j]<<"\t";

}

}

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

{

for(int j = i+1; j< m ;++j)

{

if(array2D[i][j]%2==0 && array2D[i][j]!=0)

mul*=array2D[i][j];

}

}

cout<<"Произведение чётных элементов выше главной диагонали "<<mul<<endl;

system("pause");

}

template <class T>

T& Array2D<T>::ArraylD::operator[](int index)

{

return Array1[index];

}

template <class T>

const T& Array2D<T>::ArraylD::operator[](int index)const

{

return Array1[index];

}

template <class T>

Array2D<T>::Array2D(int d1, int d2)

{

dim1 = d1;

Array2 = new ArraylD[dim1];

for (int i(0);i<d1;++i)

{

Array2[i].dim2 = d2;

Array2[i].Array1 = new T [d2];

}

}

template <class T>

Array2D<T>::~Array2D()

{

for (int i(0);i<dim1;++i)

{

delete[]Array2[i].Array1;

}

delete[] Array2;

}

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