Witajcie jestem tu nowy, przepraszam że od razu proszę o pomoc. Możecie mi wskazać błąd który mam aby funkcja iter liczyła tak samo jak rekur czy Horner?
Zestaw danych wejściowych:
0.3
2
Wyjście:
Wynik z Biblioteki standardowej: 1.04534
Wynik z Rekurencyjnie: 1.045
Wynik Metoda Hornera: 1.04534
Wynik z Iteracyjnie: 0.955337
Proszę pomocy - mam to na jutro na zajęcia :)
a tu jest kod:
#include <iostream>
#include <math.h>
#include <iomanip>
#include <fstream>
using namespace std;
int sil(int n)
{
if(n==0) return 1;
else return sil(n-1)*n;
}
double rekur (double x, int n)
{
if(n<=1) return 1;
else if (n>8)return rekur(x,n-2)-pow(x,n)/sil(n);
else return rekur(x,n-2)+pow(x,n)/sil(n);
}
double iter(double x,int n)
{
int sil=1;
double wynik=1;
double potega=1;
for(int i=1;i<=n;i++)
{
sil =sil (2i)(2i-1);
potega=potegaxx;
if(i%2==1)wynik= wynik - potega/sil;
else wynik=wynik + potega/sil;
}
return wynik;
}
double hor (double x, int n)
{
x=x*x;
double wynik=0.0;
double k=1.0;
wynik=(k/(double)(sil(2*(n))));
for(int i=n;i>0;--i)
{
if(i%2==1)
{
wynik=(k/(double)(sil(2*(i-1)))) + wynikx;
cout<<wynik<<endl;
}
else
{
wynik= (k/(double)(sil(2(i-1))) + wynik*x);
cout<<wynik<<endl;
}
} return wynik;
}
int main()
{
cout.precision(1000);
double x;
int n;
ifstream plik;
plik.open("dane.txt");
if( plik.good() )
{
plik >>x;
plik >>n;
}
else cout<<"Error - brak danych lub zle"<<endl;
plik.close();
ofstream plik2;
plik2.open("wynik.txt", ios::out);
cout<<"Wynik z Biblioteki standardowej: "<<cosh(x)<<endl;
cout<<"Wynik z Rekurencyjnie: "<<rekur(x,n)<<endl;
cout<<"Wynik Metoda Hornera: "<<hor(x,n)<<endl;
cout<<"Wynik z Iteracyjnie: "<<iter(x,n)<<endl;
plik2<<"Wynik z Biblioteki standardowej: "<<cosh(x)<<endl;
plik2<<"Wynik z Rekurencyjnie: "<<rekur(x,n)<<endl;
plik2<<"Wynik Metoda Hornera: "<<hor(x,n)<<endl;
plik2<<"Wynik z Iteracyjnie: "<<iter(x,n)<<endl;
cout<<"Wyniki zapisano w wynik.txt\n";
plik2.close();
return 0;
}