ВУЗ:
Составители:
Рубрика:
Объектно-ориентированное программирование на С++
Матрица является трехдиагональной, если ее ненулевые элементы
расположены только на главной диагонали и на двух соседних,
параллельных ей.
// метод проверки, является ли матрицы трехдиагональной
bool MatrixList::IsTripleDiagonal()
{
// если матрица неквадратная, генерируется исключение
if(m != n)
throw NonSquareMatrixException();
ListElement* exists1;
// в каждой строке проверяется наличие ненулевых
// элементов, расположенных до трех центральных
// диагоналей и после них. Если ненулевой элемент
// будет найден, матрица не является
// трехдиагональной.
for(int i = 0; i < m; i++)
{
for(int j = 0; j < i - 1; j++)
{
exists1 = ExistsElement(i, j);
if(exists1 != NULL)
return false;
}
for(int j = i + 2; j < n; j++)
{
exists1 = ExistsElement(i, j);
if(exists1 != NULL)
return false;
}
}
return true;
}
Для вывода разреженной матрицы используются дружественные
функции, перегружающие операции вывода для классов
MatrixElement, ListElement, MatrixList.
// операции вывода объектов классов
ostream& operator << (ostream& out, MatrixElement& ob)
{
out << ob.value;
return out;
}
ostream& operator << (ostream& out, ListElement& ob)
177
Объектно-ориентированное программирование на С++ Матрица является трехдиагональной, если ее ненулевые элементы расположены только на главной диагонали и на двух соседних, параллельных ей. // метод проверки, является ли матрицы трехдиагональной bool MatrixList::IsTripleDiagonal() { // если матрица неквадратная, генерируется исключение if(m != n) throw NonSquareMatrixException(); ListElement* exists1; // в каждой строке проверяется наличие ненулевых // элементов, расположенных до трех центральных // диагоналей и после них. Если ненулевой элемент // будет найден, матрица не является // трехдиагональной. for(int i = 0; i < m; i++) { for(int j = 0; j < i - 1; j++) { exists1 = ExistsElement(i, j); if(exists1 != NULL) return false; } for(int j = i + 2; j < n; j++) { exists1 = ExistsElement(i, j); if(exists1 != NULL) return false; } } return true; } Для вывода разреженной матрицы используются дружественные функции, перегружающие операции вывода для классов MatrixElement, ListElement, MatrixList. // операции вывода объектов классов ostream& operator << (ostream& out, MatrixElement& ob) { out << ob.value; return out; } ostream& operator << (ostream& out, ListElement& ob) 177
Страницы
- « первая
- ‹ предыдущая
- …
- 175
- 176
- 177
- 178
- 179
- …
- следующая ›
- последняя »