
Георгий
6 год назад
Вычислить корень кубический суммы двух заданных вещественных чисел a и b. Паскаль!!!
ОТВЕТЫ

Vianyul
Jul 22, 2019
Тут имеется один "подвох" и на него часто ловятся.
Можно воспользоваться функций Power для возведения в степень 1/3, либо применить известную формулу
Но в обоих случаях используется (явно или скрыто) вычисление логарифма. А мы помним, что логарифм определен только для положительного аргумента.
По заданию нужно найти кубический корень из a+b. И этот корень определен для любого вещественного числа, в отличии от логарифма.
Вспоминаем:
![\displaystyle \sqrt [3]x=\left. \left\{\begin{matrix}amp;#10;-\sqrt[3]{|x|}, amp;x\ \textless \ 0\\ 0, amp; x=0 \\ \sqrt [3]x, amp;x\ \textgreater \ 0 \end{matrix}\right.amp;#10;\right| \qquad \sqrt [3]x=sign(x)\times\sqrt[3]{|x|} \displaystyle \sqrt [3]x=\left. \left\{\begin{matrix}amp;#10;-\sqrt[3]{|x|}, amp;x\ \textless \ 0\\ 0, amp; x=0 \\ \sqrt [3]x, amp;x\ \textgreater \ 0 \end{matrix}\right.amp;#10;\right| \qquad \sqrt [3]x=sign(x)\times\sqrt[3]{|x|}](https://tex.z-dn.net/f=5Cdisplaystyle+5Csqrt+5B35Dx3D5Cleft.+5Cleft5C7B5Cbegin7Bmatrix7D0A-5Csqrt5B35D7B7Cx7C7D2C+26x5C+5Ctextless+5C+05C5C+02C+26+x3D0+5C5C++5Csqrt+5B35Dx2C+26x5C+5Ctextgreater+5C+0+5Cend7Bmatrix7D5Cright.0A5Cright7C+5Cqquad+5Csqrt+5B35Dx3Dsign28x295Ctimes5Csqrt5B35D7B7Cx7C7D)
И только теперь можно писать программу.
// PascalABC.NET 3.2, сборка 1353 от 27.11.2016
// Внимание! Если программа не работает, обновите версию!
begin
var a,b,c:real; Read(a,b);
c:=a+b;
Writeln(sign(c)*power(abs(c),1/3))
end.
Примеры
14.283 -32.17
-2.61524573390822
13.183 -13.183
0
Можно воспользоваться функций Power для возведения в степень 1/3, либо применить известную формулу
Но в обоих случаях используется (явно или скрыто) вычисление логарифма. А мы помним, что логарифм определен только для положительного аргумента.
По заданию нужно найти кубический корень из a+b. И этот корень определен для любого вещественного числа, в отличии от логарифма.
Вспоминаем:
И только теперь можно писать программу.
// PascalABC.NET 3.2, сборка 1353 от 27.11.2016
// Внимание! Если программа не работает, обновите версию!
begin
var a,b,c:real; Read(a,b);
c:=a+b;
Writeln(sign(c)*power(abs(c),1/3))
end.
Примеры
14.283 -32.17
-2.61524573390822
13.183 -13.183
0
24
Смежные вопросы: