... 131138.jpg
Niestety w teorii działa, w praktyce - nie, wyświetla wynik bardzo dużego rzędu.
Siedzę już nad tym 3-cią noc i nie mam zielonego pojęcia gdzie leży błąd.
Możecie jakoś pomóc ?
Kod: Zaznacz cały
#include <stdio.h>
#include <math.h>
#include <iostream>
#define MAX 1000 //Przyda sie aby w razie czego program nie krecil sie w nieksonczonosc
int main()
{
double suma=0;
double x=1;
double ep=0;
double a=0;
double c=1;
int n=1;
printf("Podaj wartosc argumentu x:
");
scanf("%lf",&x);
printf("Podaj wartosc epsilon:
");
scanf("%lf",&ep);
if (fabs(x)<1 || ep<=0)
{
printf("NIEPOPRAWNE DANE
");
system ("pause");
return 1;
}
suma=a=x;
do
{
n=n+1; //Licznik krokow
printf("
KROK: %d
",n);
c=(2*n-1)/(2*n-3); //Nowa nieparzysta liczba mianownika podzielona przez poprzednia nieparzysta
a=-(a*x*x*(2*n-3)/((2*n-2)*c)); //Tworzenie nowego elementu przez domnozenie poprzedniego
suma=suma+a; //Dodawanie do puli sumy kolejnego elementu
printf("SUMA: %lf
",suma);
}
while (abs(a)>2*ep && n<MAX);
printf("
Suma: %lf
",suma);
system ("pause");
if (n>MAX)
printf("Osiągnieto max obliczen
");
system ("pause");
return 0;
}