Функции и обработка исключительных ситуаций - PascalABC.NET
Формулировка задачи:
Здравствуйте.Мне задали написать программу с использованием функции на языке Pascal.
Мне задано вычислить функцию
Но,главное то что нужно предвидеть возможные ошибки.Например если в знаменателе будет 0(ноль),то понятно что на него нельзя делить и нужно вывести сообщение типа "Ошибка!Введите другие данные".
При написании программы,возникла проблема в том что нужно выводить ошибку и просить ввести еще раз данные,а моя программа выводит ошибку и дальше вычисляет функцию.
Исправьте программу пожалуйста,при возможности указать какие ошибки еще можно обработать.Код ниже:
Решение задачи: «Функции и обработка исключительных ситуаций»
textual
Листинг программы
const eps = 1e-8; function err(x, a : Real; var res : Real) : Boolean; begin Result := False; // Предположим, что данные ошибочны res := sin(a + x); if abs(res) < eps then begin WriteLn('sin(a + x) = 0'); exit; end; res := a - exp(a*x / res); Result := True; // Отработали до конца = гуд! end; begin var x := ReadLnReal('x ='); var a := ReadLnReal('a ='); var res : Real; if err(x, a, res) then WriteLn('y = ', res:0:8) else WriteLn('Вычисление прервано. Введены данные не отвечающие ОДЗ.'); end.
Объяснение кода листинга программы
- Введенные данные проверяются на соответствие условию задачи.
- Если условие не выполняется, то выводится сообщение об ошибке и процесс вычисления прекращается.
- Вычисляется значение функции sin(a + x).
- Если значение функции sin(a + x) равно нулю, то выводится сообщение об этом и процесс вычисления прекращается.
- Вычисляется значение функции a - exp(a*x / res).
- Результат вычислений выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д