Функции и обработка исключительных ситуаций - 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.

Объяснение кода листинга программы

  1. Введенные данные проверяются на соответствие условию задачи.
  2. Если условие не выполняется, то выводится сообщение об ошибке и процесс вычисления прекращается.
  3. Вычисляется значение функции sin(a + x).
  4. Если значение функции sin(a + x) равно нулю, то выводится сообщение об этом и процесс вычисления прекращается.
  5. Вычисляется значение функции a - exp(a*x / res).
  6. Результат вычислений выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5
Похожие ответы