VAR
x, y, z, w: Real;
x0, xe, dx: Real;
n: Integer;
eps: Real; {машинный ноль будет - для ЭВМ почти ноль}
function sign(xx: Real): Integer;
begin
if xx < 0 then sign := -1 else
if xx > 0 then sign := 1 else sign := 1
end;
BEGIN
eps := 1; while 1 + eps > 1 do eps := eps/2; eps:=eps*4; {запас}
Write('Введите значение параметра y: '); {$I-} ReadLn(y); {$I+}
if IOResult <> 0 then begin
WriteLn('Ошибка ввода'); Halt(1)
end;
Write('Введите начальное значение x: '); {$I-} ReadLn(x0); {$I+}
if IOResult <> 0 then begin
WriteLn('Ошибка ввода'); Halt(1)
end;
Write('Введите последнее значение x: '); {$I-} ReadLn(xe); {$I+}
if IOResult <> 0 then begin
WriteLn('Ошибка ввода'); Halt(1)
end;
Write('Введите число значений: '); {$I-} ReadLn(n); {$I+}
if IOResult <> 0 then begin
WriteLn('Ошибка ввода'); Halt(1)
end;
if xe < x0 then begin x:=x0; x0:=xe; xe:= x end;
dx := (xe - x0)/(n+1);
x := x0;
while (x <= xe+dx) do begin
{Существует ли, не кратен ли pi/2 - проверим косинус}
write(x:10:4,' ');
if abs(cos(x)) < eps then WriteLn('не существует');
z:= sin(x)/cos(x);
{Теперь ctg может не существовать}
if abs(z) < eps then WriteLn('не существует');
z:= z + 1/z; {Числитель}
if (x*y) < 0 then WriteLn('не существует'); {Логарифм}
w := x*y - ln(x/y);
w := exp(ln(abs(w))/3)*sign(w);
writeLn(z/w:12);
x := x + dx;
end;
END.