Главная Войти О сайте

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

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

Наиболее простой случай возникает, когда число необходимо возвести в небольшую целую положительную степень. Такое математическое действие можно выполнить буквально за одну строку. Например, если число необходимо всегда возводить в четвертую степень, воспользуйтесь такой строкой:b:=a*a*a*a;Сами переменные a и b должны иметь тип, соответствующий диапазону и виду чисел, подвергающихся возведению в степень.

Если число также возводится в целую и положительную степень, но она велика, и, к тому же, может меняться, воспользуйтесь циклом. Для этого поместите в программу такой фрагмент:c:=a;if b=0 then c:=1;if b>=2 then for i:=2 to b do c:=a*c;Здесь a - число, подлежащее возведению в степень, b - показатель степени, c - результат. Переменные i и b - обязательно типа integer.

Чтобы возвести число в дробную степень, воспользуйтесь свойствами логарифмов. Соответствующий фрагмент программы при этом будет выглядеть так:c:=exp(b*ln(a));Данный способ не позволяет работать с нулем и отрицательными числами. Для устранения первого из этих недостатков воспользуйтесь такой конструкцией:if a=0 then c:=1 else c:=exp(b*ln(a));Это позволит обойти ограничение на диапазон значений входного параметра натурального логарифма, который при нуле не имеет математического смысла. Второй недостаток, однако, останется в силе: возводить в степень отрицательные числа по прежнему не удастся. Все переменные используйте типа real.

Чтобы возвести в степень отрицательное число, возьмите его модуль, подставьте в предыдущее выражение, после чего поменяйте знак результата. На языке Паскаль это будет выглядеть следующим образом:c:=(-1)*exp(b*ln(abs(a)));Затем, если сама степень является четной, возьмите модуль от результата:if round(b/2)=b/2 then c:=abs(c);

Иногда возникает необходимость в универсальном фрагменте программы, позволяющем осуществлять возведение в степень в отношении любых чисел. Тогда составьте его следующим образом:c:=0;if a0 then c:=exp(b*ln(a));if b=0 then c:=1;if round(b/2)=b/2 then c:=abs(c);Здесь все переменные - также типа real.


CompleteRepair.Ru