ВУЗ:
Составители:
Рубрика:
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
if (i == 0)
cout << "Матрица является вырожденной" << endl;
if(i == 1)
cout << "Матрицы таких размеров перемножать нельзя"
<< endl;
}
. . .
В этом случае возникновение ошибки при выполнении операции
перемножения матриц приведет к ее обработке и передаче управления
операторам, которые следуют за блоком try {. . .} catch. Таким
образом, вычисление обратной матрицы производиться не будет, даже
если это можно сделать без каких-либо ошибок. Такой подход обычно
используют, когда операторы блока try образуют взаимосвязанную
последовательность действий и без корректного выполнения
предшествующих действий невозможно правильно выполнить
следующие.
Можно действовать по-другому – разбить контролируемый блок на
части, каждой из которых будет соответствовать свой набор исключений.
Далее каждая часть заключается в свой собственный блок try:
. . .
double** a, **b; // объявление матриц
int m, n, k, l; // размеры матрицы
. . .
try
{
// умножение матрицы a размерности m x n
// на матрицу b размерности k x l
double** c = MultiplyMatrix (a, m, n, b, k, l);
}
catch(int i)
{
cout << "Матрицы таких размеров перемножать нельзя"
<< endl;
}
try
{
// получение обратной матрицы для матрицы a
double** d = InverseMatrix (a, m, n);
}
catch(char* s)
{
cout << s << endl;
}
catch(int i)
16
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
if (i == 0)
cout << "Матрица является вырожденной" << endl;
if(i == 1)
cout << "Матрицы таких размеров перемножать нельзя"
<< endl;
}
. . .
В этом случае возникновение ошибки при выполнении операции
перемножения матриц приведет к ее обработке и передаче управления
операторам, которые следуют за блоком try {. . .} catch. Таким
образом, вычисление обратной матрицы производиться не будет, даже
если это можно сделать без каких-либо ошибок. Такой подход обычно
используют, когда операторы блока try образуют взаимосвязанную
последовательность действий и без корректного выполнения
предшествующих действий невозможно правильно выполнить
следующие.
Можно действовать по-другому – разбить контролируемый блок на
части, каждой из которых будет соответствовать свой набор исключений.
Далее каждая часть заключается в свой собственный блок try:
. . .
double** a, **b; // объявление матриц
int m, n, k, l; // размеры матрицы
. . .
try
{
// умножение матрицы a размерности m x n
// на матрицу b размерности k x l
double** c = MultiplyMatrix (a, m, n, b, k, l);
}
catch(int i)
{
cout << "Матрицы таких размеров перемножать нельзя"
<< endl;
}
try
{
// получение обратной матрицы для матрицы a
double** d = InverseMatrix (a, m, n);
}
catch(char* s)
{
cout << s << endl;
}
catch(int i)
16
Страницы
- « первая
- ‹ предыдущая
- …
- 14
- 15
- 16
- 17
- 18
- …
- следующая ›
- последняя »
