ВУЗ:
Составители:
Рубрика:
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
cout << " x/y = " << (x / y) << endl;
// выход из цикла, поскольку
// деление прошло успешно
break;
}
// обработчик исключения типа int
catch(int e)
{
// выводим сообщение об ошибке
cout << "Деление на 0" << endl;
}
}
. . .
Один контролируемый блок try {. . .} может быть
предназначен для обработки нескольких видов исключительных
ситуаций. Ниже приведем пример такой обработки при вычислении
обратной матрицы – обратная матрица существует только для квадратных
невырожденных матриц. Тогда функция вычисления обратной матрицы
должна генерировать исключения в случаях, когда, во-первых, матрица
является неквадратной и, во-вторых, когда определитель матрицы равен
0.
double** InverseMatrix(double** a, int m, int n)
{
// проверяем, является ли матрица квадратной
if(m != n)
throw "Матрица должна быть квадратной";
// проверяем, является ли матрица вырожденной
// вычисление определителя осуществляет функция
// Determinant (double** , int)
double det = Determinant (a, n);
if(det == 0.0)
throw 0;
// далее должен следовать код
// вычисления обратной матрицы
. . .
}
Программа, которая вычисляет обратную матрицу, должна
содержать блок try {. . .} для выявления указанных выше
исключений и соответствующие обработчики catch.
double** a; // объявление матрицы
int m, n; // количество строк и столбцов матрицы
. . .
14
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М. cout << " x/y = " << (x / y) << endl; // выход из цикла, поскольку // деление прошло успешно break; } // обработчик исключения типа int catch(int e) { // выводим сообщение об ошибке cout << "Деление на 0" << endl; } } . . . Один контролируемый блок try {. . .} может быть предназначен для обработки нескольких видов исключительных ситуаций. Ниже приведем пример такой обработки при вычислении обратной матрицы – обратная матрица существует только для квадратных невырожденных матриц. Тогда функция вычисления обратной матрицы должна генерировать исключения в случаях, когда, во-первых, матрица является неквадратной и, во-вторых, когда определитель матрицы равен 0. double** InverseMatrix(double** a, int m, int n) { // проверяем, является ли матрица квадратной if(m != n) throw "Матрица должна быть квадратной"; // проверяем, является ли матрица вырожденной // вычисление определителя осуществляет функция // Determinant (double** , int) double det = Determinant (a, n); if(det == 0.0) throw 0; // далее должен следовать код // вычисления обратной матрицы . . . } Программа, которая вычисляет обратную матрицу, должна содержать блок try {. . .} для выявления указанных выше исключений и соответствующие обработчики catch. double** a; // объявление матрицы int m, n; // количество строк и столбцов матрицы . . . 14
Страницы
- « первая
- ‹ предыдущая
- …
- 12
- 13
- 14
- 15
- 16
- …
- следующая ›
- последняя »