22-12-2018 17:00

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

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

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

Что такое сетевая карта?Вам будет интересно:Что такое сетевая карта?

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

Текст программыВ следующем шаге мы усложним задачу и составим универсальную программу, которая будет возводить любое число в любую целую положительную степень. Здесь есть возможность воспользоваться любым циклом, но мы рассмотрим более простой метод с использованием цикла со счетчиком. На изображении слева вы можете ознакомиться с полным текстом нашей программы, там же есть и пояснения выполняемых операций. Кстати, следует отметить, что возводимое число a необязательно задавать Integer, а можно, допустим, Real, что позволит возвести в степень дробное число.

Предыдущие примеры позволяют нам возводить числа только в целые положительнные степени. Но встречаются задачи, где необходимо возвести число в дробную степень. При написании такой программы нам необходимо знание свойств логарифмов. В частности: ab=eb 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, т.к. здесь мы уже работаем с любыми числами, а не только с целыми. Итак, возведение в степень действительных чисел нами полностью рассмотрено. Осталось рассмотреть лишь один вопрос.

Текст программыПереходя к нему, следует отметить, что при решении данной задачи необходимы достаточно глубокие знания в программировании. Это возведение в степень комплексного числа. Здесь можно пробовать использовать различные варианты решения, допустим, формулу Муавра, но там есть трудности с переводом комплексного числа в тригонометрическую форму. Есть решение данной задачи в задании процедуры перемножения двух комплексных чисел и простого цикла со счетчиком, т.е. повторение этой процедуры равное степени число раз. На предоставленном примере вы можете более детально разобраться с текстом этой программы.



Источник