ВУЗ:
Составители:
Рубрика:
Объектно-ориентированное программирование на С++
Матрица является трехдиагональной, если ее ненулевые элементы
расположены только на главной диагонали и на двух соседних,
параллельных ей.
// метод проверки, является ли матрицы трехдиагональной
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
- …
- следующая ›
- последняя »
