Возведение в степень - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Помогите решить задачу, пожалуйста. По заданным вещественному значению

x

и целому неотрицательному значению

n

вычислите

xn

(операция возведения в степень в языке Pascal отсутствует). Для решения задачи используйте алгоритм эффективного возведения в степень. Алгоритм основан на тождестве

x2n = xnxn

. Тогда, если

n = 2k

, то значение

xn

можно получить из

x

, домножая результат сам на себя

k

раз (таким образом, мы будем последовательно получать значения 2-ой, 4-ой, 8-ой, и т.д.

2k

-ой степеней числа

x

). В свою очередь, произвольное

n

можно представить как сумму степеней двойки (фактически перевести в двоичную систему счисления):

n = 2k1 + 2k2

+ … Соответственно

xn = x2n -x2n -...

Фактически алгоритм быстрого возведения в степень сводится к последовательному получению 2-ой, 4-ой, 8-ой, и т.д. степеней числа

x

и перемножению необходимых степеней. На вход программе подаются вещественное

x

, по модулю не превосходящее 10 и целое неотрицательное

n

, не превосходящее 100. Выведите значение

xn

с точностью до трех цифр после десятичной точки. Для вычислений используйте тип extended.

Примеры входных данных

2 10 0.5 3

Примеры выходных данных

1024.000 0.125

Решение задачи: «Возведение в степень»

textual
Листинг программы
var x,rez:extended;
     n:integer;
begin
 readln(x,n);
rez:=1;
  for i:=1 to n do begin
  rez:=rez*x;
  end;
 writeln(rez:0:3);
readln;
end.

Объяснение кода листинга программы

  1. Объявление переменных:
    • x типа extended (предположительно число с плавающей точкой);
    • rez типа extended (предположительно число с плавающей точкой);
    • n типа integer (предположительно целое число).
  2. Ввод значений переменных x и n с помощью функции readln.
  3. Инициализация переменной rez значением 1.
  4. Цикл от 1 до n, в котором значение переменной rez умножается на значение переменной x.
  5. Вывод значения переменной rez с помощью функции writeln, при этом значение приводится к типу extended с указанием количества знаков после запятой (3 знака после запятой).
  6. Ввод символа конца программы с помощью функции readln. Примечание: код написан без учета возможных ошибок ввода и отсутствия проверки на деление на ноль.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы