Степень корня в паскале

Степень корня в паскале

Pers.narod.ru. Алгоритмы. Некоторые математические расчёты на Паскале

Как известно, ядро Паскаля предельно компактно, и многие математические функции в модуле System просто отсутствуют. Поэтому у людей, изучающих основы программирования именно на этом языке, типовые математические расчёты зачастую вызывают проблемы. Далее приводятся пути решения наиболее типичных из этих проблем.

Возведение в произвольную степень на Паскале

Требуется вычислить значение с = a b . В зависимости от значений основания a и показателя степени b , вычисление степени может быть реализовано по-разному.

Если a > 0 , а b может принимать произвольные вещественные значения, используем известную формулу a b = exp (b * ln a) :

Если b — целое число (вообще говоря, "не слишком большое" по модулю), а a — любое (не равное нулю при b ), возведение в степень может быть реализовано с помощью цикла:

Для целого b и не равного нулю a выгоднее считать с помощью экспоненты и логарифма, не забывая о том, что не существует логарифмов от отрицательных чисел:

Вычисление корня произвольной степени на Паскале

Стандартная функция sqrt умеет извлекать только квадратный корень.

Извлечь корень степени n (где n — натуральное) из числа a можно всегда, кроме случая, когда a и при этом n четно. Извлечь корень степени n из числа a означает возвести число a в степень 1/n . При этом знак корня совпадает со знаком a . Ниже приводится код функции, вычисляющей корень произвольной степени n от своего аргумента a :

Вычисление логарифмов на Паскале

Стандартная функция ln вычисляет только натуральный логарифм. Для вычисления логарифмов по другим основаниям можно применить формулу log a b = ln b / ln a :

В частности, для вычисления десятичного логарифма lg b можно записать:

Вычисление обратных тригонометрических функций (арксинусов и арккосинусов) на Паскале

В Паскале имеется стандартная функция arctan для вычисления арктангенса.

Другие обратные тригонометрические функции могут быть выражены через неё с помощью формул тригонометрии.

Читайте также:  Включить блютуз на ноутбуке тошиба сателлит

Для вычисления y = arcsin x , где, конечно, |x| , можно применить один из следующих способов:

на практике следует помнить о возможных погрешностях при сравнении вещественных чисел (глава учебника, п.7.2).

Для вычисления z = arccos x , где |x| , можно использовать тот факт, что сумма арксинуса и арккосинуса некоторого значения равна прямому углу:

Вычисление полярных углов на Паскале

Полярным углом точки с координатами (x,y) , отличной от начала координат, называют угол между положительным направлением оси Ox и направлением из начала координат на данную точку. При этом угол отсчитывается против часовой стрелки. Строго говоря, полярный угол не всегда равен arctg (y/x) , это верно лишь при x > 0 . Кроме того, при делении большого значения y на малое x возможно переполнение. Показанная ниже функция вычисляет полярный угол fi , лежащий в промежутке от -pi до +pi , для любой точки с координатами (x,y) , не совпадающей с началом координат:

Проблема с приведением типов на Паскале

Начинающие "паскалисты" нередко не понимают строгой типизированности этого языка, из-за чего находят в нём несуществующие "баги". Вот простейший пример.

Эта программа выдаст отнюдь не 200000, как может показаться. Ответ будет равен 3392 (результат переполнения). Никакого бага нет. Тип выражения в Паскале определяется только типом входящих в него переменных, но не типом переменной, куда записывается результат. То есть, мы вычислили с переполнением произведение двух переменных типа Integer , а потом "испорченный" результат переписали в переменную типа Longint . ничего не изменит и

Здесь тоже сначала вычислен результат с переполнением, затем преобразован к типу Longint . А вот

рулит, получите свои 200000 🙂 Указанная ошибка часто встречается в программах начинающих. Чтобы её не повторять, помните — выражение в Паскале должно быть приведено к нужному типу в процессе его вычисления, а не после его окончания или при присваивании.

Читайте также:  Как перенести слово восклицательное

Задача такая: надо вычислить значение функции с корнем 5 степени из числа

2 ответа 2

Чтобы получить корень степени n , нужно возвести число в степень 1/n .

Я практически любую степень считал так (небольшой пример):

Exp(b*Ln(a))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками pascal или задайте свой вопрос.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.12.20.35703

Для вычисления кубического корня в Паскале нет стандартной функции (в отличие от квадратного корня ), однако, его можно вычислить, используя функции экспоненты и логарифма . Извлечение кубического корня — это возведение в степень 1/3, а для положительных чисел возведение в любую степень можно осуществить по формуле


Для отрицательных чисел логарифм не определён. Чтобы вычислить кубический корень из отрицательного числа, воспользуемся свойством нечётности кубического корня:

Наконец, кубический корень из 0 — это 0. Логарифм 0 — это «минус бесконечность», и, хотя некоторые реализации Паскаля могут работать со значением «минус бесконечность», лучше избегать этого специального значения.

Таким образом, получаем:

function Root3 (X : Real ) : Real ;
begin
if X = 0.0 then
Root3 := 0.0
else if X > 0.0 then
Root3 := Exp ( Ln (X) / 3 )
else
Root3 := — Exp ( Ln ( — X) / 3 )
end ;

begin
WriteLn (Root3( 2 7.0 ) : 0 : 0 , ‘ ‘ , Root3( — 8.0 ) : 0 : 0 , ‘ ‘ , Root3( 0.0 ) : 0 : 0 ) ;
< 3 -2 0 >
end .

Ссылка на основную публикацию
Сони плейстейшен нетворк вход
Игры по сети, развлечения, друзья, покупки и многое другое – ваше сетевое приключение начинается в PSN. Подключитесь к нашему сетевому...
Смарт часы фикситайм 3 отзывы
Данный товар недоступен для доставки в Ваш регион Мы всегда стремимся к лучшему, чтобы радовать своих покупателей самыми выгодными ценами....
Смарт часы эпл для детей
1 min Apple Watch — самые популярные умные часы в мире. Является ли это идеальным выбором для вашего ребенка, зависит...
Сони f3112 xperia xa
Недорогой смартфон компании Sony (22 990 рублей за Dual версию) с интересным дизайном, LTE, двумя отдельными слотами для SIM-карт, слотом...
Adblock detector