Как сделать корень 3 степени в паскале

Обновлено: 06.07.2024

Мы уже знаем, какие существуют функции для целых переменных. Это – нахождение модуля числа (Функция Abc), а также возведение числа в квадрат (Функция Sqr). В этом уроке мы рассмотрим функции, применяемые к дробным числам. Это функции Sqr - квадрат числа, Abs - модуль числа, Sqrt - корень числа, а также известные всем математические функции Sin, Cos, Arctan, Ln, Exp, Pi.

В строке №7 записывается функция Sqr. Это функция возведения числа в квадрат.

В строке №9 записывается операция нахождения модуля числа.
Функции Sqr и Abs мы разбирали в уроке Abs, Sqr в Pascal.

В строке №13 записываем функцию Sin. Данная функция будет подсчитывать синус числа, стоящего в скобках после записи функции.

Строка №15. Функция Cos подсчитывает косинус числа, стоящего в скобках после функции.

Строка №17. Функция Arctan вычисляет арктангенс числа, стоящего в скобках после записи функции.

Строка №19. Функция Ln подсчитывает логарифм числа, стоящего в скобках после записи функции.

Паскаль - Урок 3: операторы квадрата, корня и модуля

Этот оператор возводит в квадрат заданное ему число или переменную. Обозначается, как "sqr" без кавычек. В программе пишется как sqr(a), где a - любая другая переменная или число.

2. Оператор корня

Этот оператор находит корень из переменной или числа. Обозначается, как "sqrt" , без кавычек. В программе пишется как sqrt(a), где a - любая другая переменная или число.

3. Оператор модуля

Данный оператор переводит число из обычного в число по модулю, то есть меняет его знак всегда на положительный. Обозначается, как "abs" без кавычек, в программе пишется, как abs(a), где a - любое число или другая переменная.

На сегодня урок окончен, с другими уроками вы можете познакомиться в категории "Уроки паскаль"

Как известно, ядро Паскаля предельно компактно, и многие математические функции в модуле 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, а для положительных чисел возведение в любую степень можно осуществить по формуле




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


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

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 ) ;

end .

Программирование. Стандартные функции Pascal-Паскаль

  • Скачено бесплатно: 19534
  • Куплено: 414
    ->Программирование. Стандартные функции Pascal-Паскаль

Стандартные функции Pascal-Паскаль

Стандартные математические функции Турбо Паскаля
Обращение Тип аргумента Тип результата Примечание
Abs(x) Real, integer Тип аргумента Модуль аргумента
ArcTan(x) Real, integer Real Арктангенс (значение в радианах)
Cos(x) Real, integer Real Косинус, угол в радианах
Exp(x) Real, integer Real Экспонента
Frac(x) Real Real Дробная часть числа
Int(x) Real, integer Real Целая часть числа
Ln(x) Real, integer Real Логарифм натуральный
Pi Нет Real 3,141592653
Sin(x) Real, integer Real Синус, угол в радианах
Sqr(x) Real, integer Тип аргумента Квадрат аргумента
Sqrt(x) Real, integer Real Корень квадратный
Random Нет Real Псевдослучайное число в интервале [0, 1]
Random(I) Integer Integer Псевдослучайное число в интервале [0, I]
Round(x) Real Integer Округление до ближайшего целого
Trunc(x) Real Integer Отбрасывание дробной части числа

Порядок вычислений в выражениях следующий:

  1. вычисляются подвыражения, заключенные в скобки;
  2. затем выполняются операции с наибольшим приоритетом; обычно используются следующие уровни приоритетов (в порядке убывания):
    • возведение в степень;
    • мультипликативные операции: * , / , div , mod;
    • унарные операции: + , - , abs , not;
    • аддитивные операции: +, -;
    • операции отношения: = , <>, , =;
    • логические операции: and, or, not;
  3. операции с одинаковым приоритетом выполняются слева направо.

Хотя нет ограничений на сложность выражений, однако выражения, содержащие более 7 операндов, трудны для чтения и понимания и поэтому такие выражения не рекомендуется использовать.

Замечание (это важно!)

  • в Паскале нет стандартной операции или стандартной функции возведения в степень, поэтому используется следующее математическое тождество: x y = e ylnx
  • в Паскале существует только стандартная функция вычисления натурального логарифма, поэтому используется следующее математическое тождество: logab= ln b/ln a

Математическое выражение: x 3/2 - 7x + tg (x+2)

Выражение на Паскале: exp(3*ln(x)/2)-7*x+sin(x+2)/cos(x+2)

Операторы действия

Операторы действия - это средства языка, позволяющие изменять в процессе выполнения программы состояние вычислений. Самый простой оператор действия - оператор присваивания.

Пример оператора присваивания

Оператор присваивания, несмотря на кажущуюся простоту, имеет очень важное алгоритмическое значение.

Удобно считать, что выполнение присваивания переменной некоторого значения означает помещение этого значения в выделенный для переменной ящик. При этом каждый запоминающий ящик обладает следующими свойствами.

  1. В каждый момент времени в ящике может храниться не более одного значения.
  2. Каждый ящик способен хранить только значения одного и того же типа. Попытка поместить в ящик значение любого другого типа приводит к тому, что ящик отказывается принимать на хранение передаваемое ему значение - это расценивается как ошибка в программе.
  3. Значение, помещенное в ящик, будет храниться в нем до тех пор, пока в этот ящик не будет помещено новое значение (в момент присваивания соответствующей переменной этого нового значения) - при этом предыдущее содержимое ящика безвозвратно теряется (уничтожается).
  4. Находящееся в ящике значение считается текущим значением соответствующей переменной. Это текущее значение может быть выдано из ящика для использования сколько угодно раз, но при этом содержимое ящика не меняется: из него каждый раз выдается копия хранящегося значения с сохранением оригинала в ящике без какого-либо изменения.
  5. К началу выполнения программы содержимое всех запоминающих ящиков считается неопределенным; в частности, их нельзя считать и пустыми, поскольку эти ящики могли использоваться при выполнении предыдущих программ, после чего в ящиках могло что-то остаться.

Еще один оператор действия, хотя его можно лишь условно назвать таковым: он не выполняет никакого действия, это - пустой оператор (в Паскале он обознается знаком ";"). В Паскале оператором действия является также оператор процедуры. Последний из простейших операторов действия - оператор останова, который прерывает работу программы (в Паскале это оператор halt).

Ввод и вывод данных

Ввод данных с клавиатуры производится с помощью стандартной процедуры read( ) или ее разновидности readln( ). Элементы списка ввода - идентификаторы (имена) переменных, перечисляемые через запятую. При выполнении этого оператора пользователь набирает на клавиатуре соответствующую последовательность значений, разделяя их пробелами (это важно!).

Пример ввода данных с клавиатуры

read(a,b,c);

readln(a,b,c);

Вывод данных на экран производится с помощью стандартной процедуры write( ) или ее разновидности writeln( ).

Список вывода может содержать константы, переменные, выражения, формат вывода. Выражения в списке вывода разделяются запятыми.

Пример вывода данных на экран

write(a,b,c);

writeln(a,b,c);

Окончание ln в имени процедуры означает, что курсор автоматически будет переведен в начало следующей строки экрана.

Программирование

Исходники Pascal (127)

Справочник

Справочник по паскалю: директивы, функции, процедуры, операторы и модули по алфавиту

Читайте также: