Операторы > Операторы программирования > Пример. Использование оператора программирования try-on-error
  
Пример. Использование оператора программирования try-on-error
Операторы try-on-error, break, continue и return используются для обработки ошибок.
1. На вкладке Форматирование формул (Math Formatting) в группе Результаты (Results) выберите пункт Показывать нули в младших разрядах (Show Trailing Zeros).
2. Создайте матрицу 6x6 и используйте функцию matrix, чтобы задать элементам матрицы известные значения.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
3. Напишите программу, чтобы задать для диапазона элементов значения, определяемые функцией на данном диапазоне.
Нажать для копирования этого выражения
При выполнении программы возникает ошибка, когда при x=0 и y=0 делается попытка разделить (x+y) на нуль.
4. Измените программу, чтобы элементу (0,0) новой матрицы присваивалось значение соответствующего элемента матрицы Z вместо значения, приводящего к делению на ноль.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Эта программа обеспечивает исключение случая, когда для элемента (0,0) задается значение, приводящее к делению на ноль.
5. Используйте операторы try и break для своевременного перехвата условий возникновения ошибки, что позволит не останавливать выполнение программы. Условие возникновения ошибки, т. е. деление на ноль, представлено строкой "DBZ".
Нажать для копирования этого выражения
Блок on error выполняется, только если оператор try обнаруживает ошибку.
Нажать для копирования этого выражения
Mathcad выполняет программу следующим образом.
a. Первый цикл начинается со значениями x=0 и y=0.
b. Оператор try проверяет выражение на ошибки и обнаруживает ошибку деления на нуль. Это означает, что программа должна выполнить блок on error.
c. Блок on error выполняет первую инструкцию и задает для элемента (0,0) значение "DBZ", затем оператор break останавливает выполнение текущего цикла (x=0, y=0..5). В результате все остальные элементы row=0 остаются необработанными.
d. Программа переходит к следующему циклу x при (x=1, y=0..5) и при отсутствии других ошибок присваивает значения элементам row=1.
e. Продолжая выполнять оставшиеся циклы, программа заполняет весь заданный диапазон.
6. Замените оператор break оператором continue и посмотрите, как изменится результат.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
В отличие от оператора break оператор continue продолжает выполнение следующей итерации в текущем цикле, и остальным элементам, для которых row=0, а также остальным элементам матрицы присваиваются значения (x+y)/(10x-y), как и ранее.
7. Замените оператор continue на оператор return и посмотрите, как изменится результат.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
В отличие от оператора continue, который продолжает выполнение текущего цикла, оператор return останавливает программу и возвращает Y3 с элементом (0, 0), имеющим значение "DBZ".