Вопрос задан 08.12.2025 в 07:09. Предмет Информатика. Спрашивает Sss Sss.

Как извлечь кубический корень в Паскале? Как извлекать квадратный корень я знаю, можно ли придавать корню нужную степень?

Перейти к ответам

Ответы на вопрос

Отвечает Опалько Аня.

Коротко: «кубического корня» как отдельной функции в классическом Pascal/Delphi/FreePascal нет, но его легко получить через возведение в степень 1/31/3.

Как сделать

Через Power из модуля Math:

pascal
uses Math;

var x, r: Double; begin x := 27.0; r := Power(x, 1.0/3.0); // r = 3 end;

Обязательно пишите 1.0/3.0 (вещественные литералы), чтобы не было путаницы с типами.

Для отрицательных чисел (кубический корень от отрицательного должен быть отрицательным):

pascal
uses Math;

function Cbrt(x: Double): Double; begin if x >= 0 then Result := Power(x, 1.0/3.0) else Result := -Power(-x, 1.0/3.0); end;

Так вы избежите проблем с Ln для отрицательных аргументов и получите корректный знак.

Альтернатива через Exp/Ln:

pascal
uses Math;

function Cbrt(x: Double): Double; begin if x = 0 then Exit(0); if x > 0 then Result := Exp(Ln(x) / 3.0) else Result := -Exp(Ln(-x) / 3.0); end;

Можно ли «придавать корню нужную степень»?

Да. В Паскале нет оператора **, но есть функция Power(a, b) (модуль Math), которая возводит число a в любую вещественную степень b. Корень — это частный случай:

  • квадратный корень: Power(x, 1.0/2.0) (обычно удобнее Sqrt(x))

  • кубический корень: Power(x, 1.0/3.0)

  • корень n-й степени: Power(x, 1.0/n)

Где n — вещественное или целое (кастуется к вещественному). Для чётных корней от отрицательных чисел результатов в вещественных числах нет — получите ошибку домена; для нечётных корней используйте приём со знаком, как показано выше.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос