"Ошибка 106", не могу понять в чем проблема - Free Pascal
Формулировка задачи:
помогите решить задачу, формула прилагается
вот мой код, пишет "ошибка 106" не могу понять в чем проблема
Я думаю что проблема связана с експонентой, но не пойму что именно, заранее спасибо.
Листинг программы
- var
- e:integer;
- a:integer;
- b:real;
- x:real;
- p:real;
- begin
- read(a,b,x);
- if x > 0 then
- p:=(exp(ln(exp(ln(x)*3)/4)/(2*(a+b))+(sin(x)/cos(x))*abs((a+b)/(0.8*x))));
- if x < 0 then
- p:=sqr(ln((x-b*exp(ln(x+3*a)*3))/(0.25*sqr(abs(x)))));
- if x=0 then
- p:=9*a*sqr(sin(((a+b)*exp(ln(e)*(-3*x)))/(0.3*(a-x))));
- write(p:1:3);
- end.
Решение задачи: «"Ошибка 106", не могу понять в чем проблема»
textual
Листинг программы
- var t : real;
- if x > 0 then
- begin
- t := abs((a + b) / 0.8 / x);
- p := sqrt(sqrt(x*x*x))/(2*(a+b)) + sin(t) / cos(t);
- end
- else if x < 0 then
- p := ln(sqr((x-b*sqr(x+a)*(x+a))/(0.25*sqr(abs(x)))))
- else
- p := 9*a*sqr(sin(((a+b)*exp(-3*x))/(0.3*(a-x))));
- write(p:1:3);
Объяснение кода листинга программы
- Объявлена переменная t типа real.
- Проверяется условие x > 0.
- Если условие выполняется, то значение переменной t вычисляется как abs((a + b) / 0.8 / x).
- Значение переменной p вычисляется как sqrt(sqrt(xxx))/(2*(a+b)) + sin(t) / cos(t).
- Проверяется условие x < 0.
- Если условие выполняется, то значение переменной p вычисляется как ln(sqr((x-bsqr(x+a)(x+a))/(0.25*sqr(abs(x)))))).
- Если ни одно из условий не выполняется, то значение переменной p вычисляется как 9asqr(sin(((a+b)exp(-3x))/(0.3*(a-x))));
- Значение переменной p выводится на экран с помощью функции write(p:1:3).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д