var
a, b, x, z, alpha: real;
begin
write('введите A:'); readln(a);
write('введите B:'); readln(b);
x:=(a+b)/2;
if (1+x)/x = -1 then
writeln('Ошибка - значение X вне области определения для Z(x)')
else begin
z:=(1 + x)/(1+(1+x)/x)
alpha:=a*sqr(x)-cos(b*x)+z/2;
writeln('Значение функции альфа до 5-го знака - ', alpha:0:5);
end;
end.
А мне еще вот какой код предлагали ( не на пикабу )
var a,b,z,x,otv:double;
begin
readln(a,b);
x:=(a+b)/2;
z:=(1+x)/(1+(1+x)/x);
otv:=a*(x*x)-cos(b*x)+z/2;
writeln(otv);
end.
Насколько он правильный и правильный ли вообще?
Правильный, но такая прога теоретически может свалиться если X будет вычислен с таким значением, что (1 + X)/X = -1, на следующем шаге при вычислении Z возникнет деление на 0.
В моем примере этого не произойдет.
X не может равняться 1/3 но и комп не может вычислить 0,(3)

