Написать функцию возведения в степень и вычислить выражение

Задача

Составить программу вычисления данного выражения: y = (x6*(x-5)3) / (2*x+1)5. Возведение выражений в степень с натуральным показателем оформить в виде функции, как нахождение произведения одинаковых множителей. Не использовать стандартной математической функции вычисления степени.

Решение

var 
  a, b, c : real;
  y, x, xb, xc : real;
  na, nb, nc: integer;
function stup (x: real; n: integer): real;
    var 
      i: integer; 
      k: real;   
    begin
       k:=1;
       for i := 1 to n do
            k := k * x;
       stup := k;
    end;
begin
  writeln ('Введите x (число должно быть положительным'); readln (x);
  if x >= 0 then begin
    na := 6;
    nb := 3;
    nc := 5;
    xb := x-5;
    xc := 2*x+1;
    a := stup (x,na);
    b := stup (xb, nb);
    c := stup ( xc, nc);
    y := (a*b)/c;
    Writeln ('y=', y:5:2);
  end;
end.

Тема

Процедуры, функции, рекурсии

Уровень

Комбинированные задачи