В языке Паскаль отсутствует операция извлечения кубического корня, а также операция возведения числа в степень, отличную от двух. Поэтому приходится использовать логарифмирование с последующим потенцированием.
Это выражение накладывает на параметры некоторые ограничения.
0 \end {cases} " alt=" \begin {cases} y \ne 0 \\ \displaystyle x^2+ \frac{1}{y} >0 \end {cases} " align="absmiddle" class="latex-formula">
Если первое условие вытекает из исходного выражения, то второе появляется при не совсем эквивалентной замене операции извлечения кубического корня логарифмированием и последующим потенцированием. Дело в том, что операция извлечения кубического корня определена для любого аргумента. а логарифмирование - только для положительного. Для полноценной замены надо анализировать аргумент логарифма и в зависимости от его значения (отрицательное, ноль, положительное) определять результат.
Но при этом мы получим алгоритм с ветвлением, а у нас задание написать линейный алгоритм.
var
x,y,r:real;
begin
Write('Введите значения x и y: ');
Read(x,y);
r:=exp(ln((sqr(x)+1/y))/3);
Writeln('Вычисленное значение: ',r)
end.
Тестовое решение:
Введите значения x и y: 13.54 -2.6
Вычисленное значение: 5.6768630662591