Тема: Рекурентне співвідношення
Допоможіть будь-ласка перекласти з C++ на Turbo Pascal (7.0)
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
double pow_b (double a, int n){
if (n==0) return 1;
double result = 1;
while (n>0) {
if (n%2==0) {
n/=2;
a*=a;
}
else {
n--;
result*=a;
}
}
return result;
}
int main () {
double a, p, eps=0.00001; //Ініціалізуємо змінні і задамо точність
cin>>a>>p;
double x=pow(a, 1/p); //підрахуємо значення
double xn=a, x_prev;
int i=0;
while (fabs(x-xn) > eps){ //створемо цикл, який рахує значення з допомогою рекурентного співвідношення Ньютона
x_prev=xn;
xn=(1/p)*(x_prev*(p-1) + a/(pow_b(x_prev, p-1)));
i++;
}
cout<<i<<' '<<xn<<' '<<x; //Виведем кількість ітерацій на екран.
return 0;
} ,
Також за умовою я маю при ствренні програми використати функції,
та захист від «зациклювання».(Підкажіть що можна записати у вигляді функції.)