Меню Рубрики

Степень в паскале как пишется

Функция Power

Функция Power в Паскале (и многих других языках программирования) выполняет возведение числа в степень.

Синтаксис для вещественных чисел:

function Power(Base: Double; Expon: Double) : Double;

Синтаксис для целых чисел:

function Power(Base: LongInt; Expon: LongInt) : LongInt;

Эта функция возводит число Base в степень Expon и возвращает результат. В реальности функция возвращает результат выражения:

Всё, что сказано выше, взято из официальной документации FreePascal. Однако документация иногда расходится с действительностью. Во всяком случае, мой компилятор не соответствует документации. А именно:

  • В документации сказано, что функция объявлена в модуле SYSTEM. Однако без подключения модуля MATH компилятор выдаёт ошибку. Из этого следует, что на самом деле функция объявлена в модуле MATH.
  • В документации приведён синтаксис как для целых, так и для вещественных чисел. Однако на самом деле функция работает только с вещественными числами. При попытке использовать целые числа компилятор также выдаёт ошибку.
  • Возможно, в более новых версиях эти проблемы уже исправлены. Но у меня было именно так (версия FPC 3.0.0).

Пример использования функции Power

Пример приведён ниже:

Здесь мы число 2 (переменная Х) возводим в степень 3 (переменная Y), то есть вычисляем следующую формулу:

Обратите внимание на подключенный модуль MATH.

Эта статья входит в раздел о подпрограммах модуля SYSTEM. И по идее описания функции Power здесь не должно быть. Но, так как в документации сказано, что функция Power объявлена в модуле SYSTEM, я решил включить данную статью именно в этот раздел (я же не виноват, что в документации косяк))).

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

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

Однако, если есть специальная функция для возведения числа в степень, то почему бы ей и не воспользоваться? С одной стороны. С другой стороны – эта функция совершенно неожиданно требует подключения модуля MATH.

В документации сказано, что по сути функция Power работает по формуле возведения в степень в Паскале:

Однако, если мы будем делать именно так, эта формула будет неправильно работать с отрицательными числами, потому что в документации сказано, что функция Ln работает только с положительными числами.

Читайте также:  Как пишется слово с нами вместе или раздельно

Так что функция Power в реальности несколько сложнее, чем приведённая выше формула.

Поэтому для разминки мы напишем свой аналог функции Power, который будет работать правильно. Но для начала вспомним как вычисляется степень числа:

Также напомню, что любое число в нулевой степени равно 1, а ноль в любой степени равен 0 (кроме нуля в нулевой – ноль в нулевой степени не определён, но мы будем возвращать в таких случаях ноль, хотя функция Power возвращает 1).

А теперь наш аналог функции Power:

Я сознательно немного всё усложнил, чтобы вас запутать )))

Пример использования функций Power и её аналога в программе:

Здесь есть один подвох – если вы попытаетесь возвести отрицательное число в не целую степень, например, так:

то стандартная функция Power вызовет ошибку во время выполнения программы. В своём аналоге я этого избежал, но надо понимать, что результат в этом случае будет неправильным (хотя с моей точки зрения это всё-равно лучше, чем аварийное завершение программы).

Это происходит потому, что при таком раскладе результатом являются комплексные числа, а операции с комплексными числами выполняются по другим правилам.

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

Ещё в моей функции используется функция Odd, о которой я ещё не рассказывал. Вкратце скажу, что она определяет, является ли число чётным. Более подробно о ней расскажу в отдельной статье.

Источник статьи: http://info-master.su/programming/pascal-functions/power.php

Возведение в степень в языке программирования Паскаль: советы и рекомендации

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

В статье мы разберем такую непростую проблему, как возведение в степень. Паскаль, увы, не предоставляет нам для решения данной задачи, в отличие от других языков программирования, отдельного оператора. Так что здесь приходится, как говорится, выкручиваться подручными средствами, прибегая к циклам и математическим операторам – именно здесь мы можем дать волю нашей фантазии. Рассмотрим несколько методов решения данной проблемы.

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

Пусть нам дана самая простая задача, где некое число необходимо возвести в целую положительную степень. Допустим, число a возводим в 4 степень. Здесь выполняется простая математическая операция: b:=a*a*a*a.

Предыдущие примеры позволяют нам возводить числа только в целые положительнные степени. Но встречаются задачи, где необходимо возвести число в дробную степень. При написании такой программы нам необходимо знание свойств логарифмов. В частности: a b =e b ln a . Исходя из этого, нужный фрагмент нашей программы будет иметь вид: r:=exp(b*ln(a)). Но здесь мы сталкиваемся с тем, что этот оператор не работает с нулем и отрицательными числами. Для того, чтобы наша программа выполняла возведение в степень 0, нужно задать условие: If b=0 Then r:=1 Else r:=exp(b*ln(a)). Но как же для отрицательного числа выглядит возведение в степень?

Паскаль снова заставляет нас задуматься. Здесь приходится производить данную операцию с модулем нашего числа и брать данные с отрицательным результатом. Затем проверить четность степени: если наша степень была четной, тогда мы берем от результата модуль. В таком случае наша программа будет иметь вид: r:=(-1)*exp(b*ln(abs(a))); If Round(b/2)=b/2 Then r:=abs(r). Условие здесь проверяет, четная или нет степень.

В итоге мы подходим к более универсальной модели нашей программы, которая будет работать с любыми числами. То есть теперь мы должны объеденить в единое целое все вышеизложенное. В изображении справа вы можете ознакомиться с полным текстом нашей готовой программы. Обратите внимание на заданный тип данных. В отличие от первой программы, здесь используется Real, т.к. здесь мы уже работаем с любыми числами, а не только с целыми. Итак, возведение в степень действительных чисел нами полностью рассмотрено. Осталось рассмотреть лишь один вопрос.

Источник статьи: http://fb.ru/article/83191/vozvedenie-v-stepen-v-yazyike-programmirovaniya-paskal-sovetyi-i-rekomendatsii

Как в паскале записать икс в пятой степени?

Как описать корень пятой степени?
Как описать в С++ корень пятой степени з выражения?

Читайте также:  Также хорошо как отец как пишется

Как написать формулу e в степени минус икс в квадрате
Здравствуйте! Подскажите,как в екселе написать формулу e в степени минус икс в квадрате я пишу.

Как записать синус двух икс?
Как составить программу на С++. функций sin x, sin x2, sin2 x для двух значений аргумента.

Не считает икс в степени
При b=0 ответ должен быть 1 при b 0.

Решение

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

сходимость. икс в степени факториал
помогите пожалуйста с примером. на лимитах застрял. найти интервал сходимости ряда и исследовать.

Уравнение пятой степени
Нужен алгоритм решения уравнения \left(^<5>–^<4>-1 \right)/x = b . Мой не считает. То есть.

Уравнение пятой степени
Помогите пожалуйста разобраться, нужно решить уравнение вида: z^5+\bar^2=0, где z \in.

Источник статьи: http://www.cyberforum.ru/pascal/thread1073546.html

как в паскале возвести число в произвольную степень.

В паскале нет функции возведения в произвольную степень. Нужно писать её самостоятельно. Вот так например (не я написал, ибо в падлу)
var
x,i:integer;
function VozvStep(i,x:integer):integer;
var
j:integer;
begin
result:=1;
for j:=1 to i do
result:=result*x;
end;

begin
writeln(‘введите степень’);
readln(i);
writeln(‘введите число, которое собираетесь возвести в степень’);
readln(x);
writeln(VozvStep(i,x));
readln

А вообще
Чем не устраивает чисор*число*число)

> что делать если степень минусовая?

Повеситься, перед этим проштудировав любой букварь по элементарной математике и сделав для себя “гениальное открытие” – оказывается, “икс в степени минус эн равно единице, деленной на икс в степени эн”

program slojenie;
Var
a, b, d, i, j, s : integer; // – öåëî÷èñëåííûé
//s: string; // – ñòðîêà
//c: real; // – äåñÿòè÷íàÿ äðîáü

Begin
write(‘Ââåäèòå íàèìåíüøåå ÷èñëî êîòîðîå õîòèòå âîçâåñòè â êâàäðàò a:’);
readln(a);
write(‘Ââåäèòå íàèáîëüøåå ÷èñëî êîòîðîå õîòèòå âîçâåñòè â êâàäðàò b:’);
readln(b);

for j:=a to b do
begin

Write (‘Âîçâåäèòå â ñòåïåíü ÷èñëî ‘,j, ‘^2 = ‘); // – ïåðåõîä íà ñëåä ñòðîêó
readln(d);

if (j * j = d) then writeln (j,’^2 = ‘, d)

else
Begin
writeln(‘Íåâåðíî – ó÷è òàáëèöó êâàäðàòîâ’);
j:=j-1;
end;
End;
writeln(‘Ìîëîäåö’);

//readln; // – ïðè çàïóñêå åêçå ôàéëà, ÷òî áû ñðàçó íå çàêðûâàëñÿ åêçå ôàéë

Источник статьи: http://otvet.mail.ru/question/65048501

Adblock
detector