Существует огромное число языков программирования, и Паскаль занимает среди них не последнее место. И если вы собираетесь в дальнейшем серьезно заниматься программированием, следует начинать знакомство с этим миром именно с изучения данного языка, так как он более прост в восприятии и, что немаловажно, программа абсолютно бесплатна.
В статье мы разберем такую непростую проблему, как возведение в степень. Паскаль, увы, не предоставляет нам для решения данной задачи, в отличие от других языков программирования, отдельного оператора. Так что здесь приходится, как говорится, выкручиваться подручными средствами, прибегая к циклам и математическим операторам — именно здесь мы можем дать волю нашей фантазии. Рассмотрим несколько методов решения данной проблемы.
Пусть нам дана самая простая задача, где некое число необходимо возвести в целую положительную степень. Допустим, число a возводим в 4 степень. Здесь выполняется простая математическая операция: b:=a*a*a*a.
Практикум Pascal. Урок 5: Задача № 10. Возведения числа в степень.
В следующем шаге мы усложним задачу и составим универсальную программу, которая будет возводить любое число в любую целую положительную степень. Здесь есть возможность воспользоваться любым циклом, но мы рассмотрим более простой метод с использованием цикла со счетчиком. На изображении слева вы можете ознакомиться с полным текстом нашей программы, там же есть и пояснения выполняемых операций. Кстати, следует отметить, что возводимое число a необязательно задавать Integer, а можно, допустим, Real, что позволит возвести в степень дробное число.
Предыдущие примеры позволяют нам возводить числа только в целые положительнные степени. Но встречаются задачи, где необходимо возвести число в дробную степень. При написании такой программы нам необходимо знание свойств логарифмов. В частности: 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, т.к. здесь мы уже работаем с любыми числами, а не только с целыми. Итак, возведение в степень действительных чисел нами полностью рассмотрено. Осталось рассмотреть лишь один вопрос.
Переходя к нему, следует отметить, что при решении данной задачи необходимы достаточно глубокие знания в программировании. Это возведение в степень комплексного числа. Здесь можно пробовать использовать различные варианты решения, допустим, формулу Муавра, но там есть трудности с переводом комплексного числа в тригонометрическую форму. Есть решение данной задачи в задании процедуры перемножения двух комплексных чисел и простого цикла со счетчиком, т.е. повторение этой процедуры равное степени число раз. На предоставленном примере вы можете более детально разобраться с текстом этой программы.
Источник: fb.ru
Степени с помощью программы на Pascal
Добрый день, товарищи, даже если у вас уже вечер. Сегодня я хочу разобрать небольшую линейную задачку по нахождению степеней. Звучит наше сегодняшнее задание так: » Пользователь вводит число. Программа находит это число во второй, четвертой и восьмой степени. «
А если вы не смотрели первую часть знакомства с линейными задачами (а именно так называется эта тема), то я оставлю ссылку на нее:
1. Определимся с переменными
Так как задача подразумевает, что число вводит пользователь, то первая переменная — это число. Пусть эта переменная будет a . А дальше у нас есть два пути:
1. Присваивать переменной а новые значения и сразу выводить результат пользователю.
2. Создать свою переменную для каждой степени.
Давайте выберем первый вариант. Лишние переменные нам сейчас просто не нужны, да и в данном случае это является оптимизацией программы.
Здесь мы определяем переменную а целым числом ( integer ), так как степень числа точно не будет дробью. Дальше программа начинается и приглашает пользователя ввести значение переменной.
Источник: dzen.ru
Как возвести в степень в pascal
Язык программирования Паскаль отличается от большинства других тем, что в нем отсутствует оператор возведения в степень. Поэтому фрагмент программы для осуществления этого математического действия приходится составлять самостоятельно.
Статьи по теме:
- Как возвести в степень в pascal
- Как поставить abs
- Как выучить пересказ
Инструкция
Наиболее простой случай возникает, когда число необходимо возвести в небольшую целую положительную степень. Такое математическое действие можно выполнить буквально за одну строку. Например, если число необходимо всегда возводить в четвертую степень, воспользуйтесь такой строкой: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.
Источник: www.kakprosto.ru