1

Тема: Рекурентне співвідношення

Допоможіть будь-ласка перекласти з 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;
}   , 

Також за умовою я маю  при ствренні програми   використати функції,
та  захист від «зациклювання».(Підкажіть що можна записати у вигляді функції.)

2 Востаннє редагувалося koala (08.10.2015 18:19:44)

Re: Рекурентне співвідношення

Адекватно перекласти з однієї МП на іншу - часто не легше, ніж написати з нуля. Тим більше без завдання, тоді задача ускладнюється вдвічі: за кодом (хто сказав, що коректним? я бачу пару очевидних помилок, якщо вводити щось нестандартне - цю поведінку теж треба відтворювати, виходить) відновити завдання, і потім написати по тому завданню новий код.
А ще TP7 20 років як помер.
Ну а ще краще - спитайте в автора цієї теми, у нього майже робочий код, але чомусь відповідати не хоче.

3

Re: Рекурентне співвідношення

От до речі як на паскалі записати сішну функцію pow?

4

Re: Рекурентне співвідношення

В сучасних паскалях є power.