В языке Pascal (включая современные среды вроде Free Pascal или Delphi) отсутствует встроенная функция специально для извлечения кубического корня (наподобие sqrt для квадратного). Тем не менее, это легко реализуется с помощью математического логарифмирования. Основной математический принцип Для извлечения корня любой степени используется тождество, связывающее степень, логарифм и экспоненту: В Pascal этому соответствуют функции Exp (экспонента) и Ln (натуральный логарифм). 1. Извлечение корня любой степени (для положительных чисел) Для большинства задач подходит следующая формула. Она позволяет извлечь корень любой степени n из положительного числа x. pascal
program RootExample; var x, n, result: Real; begin x := 27.0; // Число, из которого извлекаем корень n := 3.0; // Степень корня (3 для кубического) result := Exp(Ln(x) / n); writeln('Result: ', result:0:4); end. Use code with caution.2. Универсальный способ (учет отрицательных чисел) Функция Ln(x) не определена для отрицательных чисел и нуля. Поскольку кубический корень из отрицательного числа существует (например, ), для корректной работы программы нужно добавить проверку знака. Пример функции для кубического корня: pascal function PowerRoot(x: Real; n: Real): Real; begin if x > 0 then PowerRoot := Exp(Ln(x) / n) else if x < 0 then // Если степень нечетная (как 3), извлекаем корень из модуля и возвращаем минус PowerRoot := -Exp(Ln(abs(x)) / n) else PowerRoot := 0; end; Use code with caution.Сводная таблица функций| Задача | Код на Pascal |
|---|---|
| Квадратный корень | Sqrt(x) |
| Кубический корень | Exp(Ln(x) / 3) |
| Корень степени N | Exp(Ln(x) / n) |
| Возведение в степень N | Exp(n * Ln(x)) |
Важные примечания
- Тип данных: Всегда используйте тип
Real(илиDouble), так как результат извлечения корня почти всегда является дробным числом. - Точность: Из-за особенностей вычислений с плавающей запятой результат может быть не идеально точным (например,
2.99999999вместо3.0). Для вывода используйте форматирование:0:2. - Библиотека Math: В современных версиях (Free Pascal / Delphi) можно подключить модуль
math(uses math;), который содержит готовую функциюPower(base, exponent). В этом случае кубический корень можно записать какPower(x, 1/3).
Я могу составить для вас законченный код программы, который будет принимать степень и число от пользователя и корректно обрабатывать любые вводы. Хотите, чтобы я это сделал?