Как возвести в степень в паскале
Перейти к содержимому

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

  • автор:

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

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

Чтобы возвести число в степень, его надо умножить само на себя количество раз, равное показателю степени. То есть возведение числа n в степень d будет выглядеть так:

где индексы внизу просто указывают очередное по счету n .

Если d (степень) равна нулю, то какое бы число не стояло в основании степени, результат всегда будет равен единице:

В примере программы на языке Паскаль количество итераций (повторений) цикла равно модулю показателя степени числа (переменная deg ).

Если значение deg равно нулю, то цикл не выполнится ни разу. В результате переменная res будет содержать значение 1.

Если задан отрицательный показатель степени, то нужно разделить единицу на значение переменной res .

Программа на языке Паскаль:

var deg: integer; num, res: real; i: byte; begin write('Число: '); readln(num); write('Степень: '); readln(deg); res := 1; for i := 1 to abs(deg) do res := res * num; if deg < 0 then res := 1 / res; writeln(res:10:3); end.

Примеры выполнения программы:

Число: -3.2 Степень: 3 -32.768
Число: 5 Степень: -2 0.040

Вариант программы ниже позволяет возводить неотрицательное число в дробную степень:

var num, deg: real; res: real; begin write('Число: '); readln(num); write('Степень: '); readln(deg); res := exp(num * LN(deg)); writeln(res:10:3); end.
Число: 3.2 Степень: 2.9 30.177

операция возведения в степень

01.02.24. На ресурсе Stepik в ознакомительном режиме открыт курс "PascalАВС.NЕТ: продвинутый уровень".

20.05.23. На странице https://pascalabc.net/stepikcourse опубликованы новые курсы по PascalABC.NET от центра олимпиадного программирования DL Club.

08.05.23. Вышла версия PascalABC.NET 3.9.0.beta. Основное - ковариантные параметры обобщений, аргументы по умолчанию при вызове подпрограммы, модуль автоматической проверки LightPT.

22.02.23. Открыта регистрация на конференцию «Использование системы программирования Pas​cal​ABC​. NET в обучении программированию»

Copyright © Ivan Bondarev, Stanislav Mihalkovich 2024 All rights reserved. Custom Design by Youjoomla.com

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

Вопросы "возвденеие в степень pascal" или "возведение в степень на Паскале" являются наиболее популярными в своей тематике. Не всегда представляется возможным умножать число само на себя (например x := x * x;) в силу динамично изменяющихся параметров задачи, да и при больших показателях степени размер кода может увеличиться во много раз. Кроме того, подобное выражение не предусматривает возможность возведения числа в дробную степень.

Возведение в степень в паскале можно реализовать несколькими способами. Рассмотрим их, установив преимущества и недостатки каждого

Универсальная функция возведения в степень в pascal

Самый эффективный и правильный способ - взятие экспоненты от логарифма Exp(X*Ln(Y)), где X - степень числа, Y - основание. Однако, необходимо учитывать частные случаи когда основание или степень отрицательные числа, либо когда один из них является нулем. Также необходимо учесть тот факт, что при возведении отрицательного числа в четную степень, результат становится положительным

if (x > 0) then pow := Exp(y*Ln(Abs(x))) else

if (l mod 2 = 0) then R:=Abs(pow);

if (y = 0) then Pow :=1;

Возведение в степень с помощью цикла

Является одним из самых простых и быстрых способов. Задается цикл от единицы до требуемого показателя, в котором основание складывается с самим собой. Организовать подобный алгоритм можно использовав как for, так и while или repeat.

for i:=1 to pow-1 do

Возведение в степень с помощью рекурсии

Аналогично предыдущему итерационному способу. Отличие заключается только в том, что вместо очередного вызова тела цикла используется вызов функции (рекурсия).

Возведение в степень в pascal для целого показателя, вычисляемого за время log2(pow)

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

function power (x,pow:integer):integer;

var res: integer;

while (pow > 0) do

if (pow and 1 = 1) then res := res * x;

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

Возведение в степень в pascal - Универсальная функция возведения в степень (1 способ)

Функция Power - Простое итерационное вычисление степени с помощью цикла (2 способ)

Рекурсивное возведения числа в степень - Возведение числа в степень с помощью рекурсии (3 способ)

Быстрое возведение в степень в паскале - Алгоритм с вычислением за время log2(pow) (4 способ)

Карта сайта
С информацией по модернизации сайта bpascal.ru, техническим неисправностям, а также вопросами по размещению рекламы обращаться по адресу ShekhovtsovY@yandex.ru. Ваше заявление будет рассмотрено в кратчайшие сроки.

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

А если число, которое нужно возвести в степень отрицательное? И формула примерно выглядит так:

сумма при k равном от 1 до n (((-1)^k)*(n/((k+1)*(k+2)))

в файле оформленно как в Worde выглядит, если непонятно.

это типа минус один в степень надо возвести чтоли? не проще ли проверять k на четность и подставлять 1 или -1 соответственно?

Пользователь
Регистрация: 01.12.2008
Сообщений: 27
В степень говорите. это так чтоли . A^B . ну IF так Then смотрите .

 Program Voz_v_stepen_of_DannerDOS; Uses crt; Var chisl, stepen:Real; Function stn(Var chislo, stepen:Real) of Real; Var per:real; Begin Per:= Abs(chislo); If chislo < 0 Then Pow:= (-1)*Exp((stepen)*Ln(per)) Else Pow:= Exp((stepen)*Ln(per)); end; Begin clrscr; Write('Введите число = '); readln(chisl); Write('Введите степень = '); readln(stepen); Writeln('Возведя в степень получаем = ',stn); readln; readln; End.

- будут вопросы обращайтесь!

Там если что под себя отредактировать можно.

Последний раз редактировалось SuperVisor; 09.12.2008 в 21:51 .
Регистрация: 24.12.2008
Сообщений: 1
а не могли бы помочь в свозведением в степень большого числа,которое не влезет не в один тип.

Страница 1 из 4 1 2 3 4 Следующая >
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возведение числа в степень Roberto Помощь студентам 9 05.04.2008 09:50
Возведение в степень Stanislav Общие вопросы Delphi 10 05.12.2007 23:34
Возведение в степень. Sota Общие вопросы C/C++ 7 18.07.2007 17:05
Задачи по массивам + возведение действительного числа в действительную степень springgirl Помощь студентам 2 24.04.2007 03:26
Delphi Возведение в степень Luska Помощь студентам 6 23.04.2007 17:51

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *