 . И тут встал вопрос, как пробежаться по всем значениям X, не вызвав это исключение во время вычислении. К примеру я беру функцию y=ln(x). Как мы знаем ОДЗ в данном случае при Х>0, но что если я не хочу писать так:
. И тут встал вопрос, как пробежаться по всем значениям X, не вызвав это исключение во время вычислении. К примеру я беру функцию y=ln(x). Как мы знаем ОДЗ в данном случае при Х>0, но что если я не хочу писать так:- Код: Выделить всё
- function F(x:real):real; //y=ln(x);
 begin
 if x>0 then F:=ln(x)*step_y; //step_y - коэффициент для масштабирования графика по Y
 end;
Ведь в любой момент времени и места, я могу взять исходник и поменять функцию на другую (простите но в самой программе ввод необходимой функции я ещё не научился делать, не злитесь
 ):
 ):- Код: Выделить всё
- function F(x:real):real; //y=sqrt(x^5)/(3x^2+12x-3)
 begin
 if x ??? then // Ну и что за ОДЗ ?
 F:=(sqrt(x*x*x*x*x)/(3*(x*x))+(12*x)-3)*step_y;
 end;
В таком случае, мне нужно искать ОДЗ и писать его в условие, когда я всего навсего могу сделать так:
- Код: Выделить всё
- function F(x:real):real; //y=sqrt(x^5)/(3x^2+12x-3)
 begin
 try
 F:=(sqrt(x*x*x*x*x)/(3*(x*x))+(12*x)-3)*step_y;
 except
 F:=0;
 end;
 end;
И тут я попадаю впросак: при выполнении программы по-прежнему выводиться сообщение дебагера о ошибке мол проект вызвал класс исключении: "External: SIGFPE" в строчке F:=(sqrt(x*x*x*x*x)/(3*(x*x))+(12*x)-3)*step_y;
Помогите пожалуйста добрые люди, что я делаю не так? Почему сигнал не перехватывается обработчиком исключении? Есть ли путь обойти эту проблему с ОДЗ без использования танцев с бубном и муторных его поисков вручную? Заранее благодарю!
 P.S. Я программирую сейчас только на Pascal и то на уровне плинтуса, так что если я буду что-то не понимать, отнеситесь к этому с понимаем. Спасибо
  P.S. Я программирую сейчас только на Pascal и то на уровне плинтуса, так что если я буду что-то не понимать, отнеситесь к этому с понимаем. Спасибо 






