Witam serdecznie, mam następujący problem z pewnym projektem. Mianowicie muszę obliczyć wartość liczby e z definicji (e jako granica ciągu) i z tym sobie już poradziłem. Jednak zadanie polega też na zaimplementowaniu algorytmu obliczającego wartość z zadaną dokładnością. Przedstawię poniżej jak rzeczony algorytm wygląda:
funkcja a( n : integer ) : double
{
return(pow ((1 + ( 1 / n )), n);)
}
funkcja ObliczE_wersja1( żądanaDokładność : double ) : double
{
dokładność = nieskończoność;
wartość_poprzednia = wartość_bieżąca = a(1);
i = 2;
dopóki ( dokładność > żądanaDokladność ) wykonuj
{
wartość_poprzednia = wartość_bieżąca;
wartość_bieżąca = a(i);
dokładność = | wartość_poprzednia – wartość_bieżąca |;
ASSERT „bieżąca dokładność < poprzednio obliczona dokładność”
i++;
}
return wartość_bieżąca;
}
tutaj zamieszczam mój kod:
#include <stdio.h>
#include <math.h>
#include <iostream>
using namespace std;
double a,b,c,n=1;
int i;
int main ()
{
cout.precision(15);
for (i=0;i<100000000;i++,n++)
{
a = pow ((1 + ( 1 / n )), n);
b = pow ((1 + ( 1 / n )), n-1);
c=fabs(b-a);
system("CLS");
cout<<a<<endl;
cout<<i<<endl;
cout<<c;
}
system("PAUSE > null");
return 0;
}
Moje pytanie brzmi jak to zrobić, bo przyznam się szczerze, że nie rozumiem tej koncepcji zadanej wartości przybliżonej - czy mógłby mi ktoś wyjaśnić o co tu chodzi ? jakieś wskazówki cokolwiek.