[C] Obliczanie sumy szeregu potęgowego

Kaef
Użytkownik
Użytkownik
Posty: 177
Rejestracja: 27 lis 2011, o 14:52
Płeć: Kobieta
Podziękował: 40 razy
Pomógł: 2 razy

[C] Obliczanie sumy szeregu potęgowego

Post autor: Kaef »

Czy byłby w stanie ktoś sprawdzić mi, czy napisany przeze mnie program jest poprawny? Przesłałabym skan treści i całe wykonanie.
Wszystko mi się ładnie kompiluje, ale niestety nic nie jest drukowane na końcu i nie wiem, co jest tego przyczyną.
Ostatnio zmieniony 18 maja 2013, o 18:50 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Awatar użytkownika
Althorion
Użytkownik
Użytkownik
Posty: 4541
Rejestracja: 5 kwie 2009, o 18:54
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 9 razy
Pomógł: 662 razy

[C] Obliczanie sumy szeregu potęgowego

Post autor: Althorion »

Skopiuj kod tutaj, zmaksymalizujesz szansę na otrzymanie pomocy.
Kaef
Użytkownik
Użytkownik
Posty: 177
Rejestracja: 27 lis 2011, o 14:52
Płeć: Kobieta
Podziękował: 40 razy
Pomógł: 2 razy

[C] Obliczanie sumy szeregu potęgowego

Post autor: Kaef »

Szereg wygląda tak:

\(\displaystyle{ \left( 1-x\right)^\frac{-1}{4} = 1+\frac{1}{4}x+\frac{1 \cdot 5}{4 \cdot 8}x^2+\frac{1 \cdot 5 \cdot 9}{4 \cdot 8 \cdot 12}x^3+\frac{1 \cdot 5 \cdot 9 \cdot 13}{4 \cdot 8 \cdot 12 \cdot 16}x^4+\ldots}\)


dla \(\displaystyle{ \left| x\right|}\) mniejszej niż \(\displaystyle{ 1}\)



a) Obliczenie wartości szeregu musi być zapisane w postaci funkcji.
b) Sumowanie należy zakończyć, jeżeli moduł dodawanego wyrazu będzie mniejszy od zadanej dokładności \(\displaystyle{ \alpha \approx 10^{-6}}\).
c) Z funkcji oprócz wartości sumy należy wyprowadzić liczbę dodawanych wyrazów szeregu.
d) W programie należy drukować wartość argumentu x z dokładnością 2 miejsc po kropce dziesiętnej oraz wartość funkcji obliczonej z przepisu funkcji i wartość funkcji obliczoną z szeregu z dokładnością 6 miejsc po kropce dziesiętnej.
e) Wydruki mają mieć wygląd tabeli z odpowiednimi kolumnami.
f) Wydruki należy wyprowadzić na ekran i do zbioru.
g) W programie należy umieścić autora projektu.

A oto program:

Kod: Zaznacz cały

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
void main ()
{
double a,b,dx,x,y,z,eps;
int n;
FILE *fw;
double szer();

printf("Podaj dane:
");
printf("a=
");
scanf("%lf",&a);
printf("b=
");
scanf("%lf",&b);
printf("n=
");
scanf("%d",&n);
printf("eps=");
scanf("%lf",&eps);

if(!(fw=fopen("wyniki","w")))
{
printf("Blad otwarcia zbioru
");
exit(2);
}
fprintf(fw,"Podales: a=%10.2lf b=%10.2lf n=%d eps=%10.8lf
", a,b,n,eps);
dx=(b-a)/n;
for(x=a;x<b+dx/2;x+=dx)
{
y=szer(x,eps);
z=pow((1-x),(-1./4));
fprintf(fw,"%10.2lf	%10.6lf	%10.6lf
",x,y,z);
printf("%10.2lf	%10.6lf	%10.6lf
",x,y,z);
}
fprintf(fw,"Autor projektu: 
");
printf("Autor projektu:
");
fclose(fw);
}

double szer(double x,double eps)
{
double s,w;
int l,m;
s=1+1*x/4;
w=1*x/4;
l=5;
m=8;
while(fabs(w)>eps)
{
w*=l*x/m;
s+=w;
l+=4;
m+=2;
}

double szer(double x,double eps, int *licz)
{
double s,w;
int l,m,k;
k=2;
while(fabs(w)>eps)
{
w*=l*x/m;
s+=w;
l+=4;
m+=2;
k++;
*licz=;
}

return s;
}
}
Ostatnio zmieniony 18 maja 2013, o 18:51 przez Afish, łącznie zmieniany 1 raz.
Powód: Brak tagów code.
Awatar użytkownika
kadiii
Użytkownik
Użytkownik
Posty: 642
Rejestracja: 20 gru 2005, o 21:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Pomógł: 130 razy

[C] Obliczanie sumy szeregu potęgowego

Post autor: kadiii »

1) Używaj znaczników Code dla fragmentów z kodem źródłowym!
2) Używaj wcięć!
3)
Wszystko mi się ładnie kompiluje
Może kompilujesz inny program bo ten powyżej jest niepoprawny składniowo.
4) Jeśli dojdziesz do etapu, że program się skompiluje bez błędów to wiesz jedynie, że jest poprawny składniowo.
5) Jeżeli nie wiesz jak na poszczególnych etapach zachowuje się Twój program użyj debuggera. Prześledzisz dzięki temu krok pop kroku to co dzieje się w programie, znajdziesz linię, w której zachowanie będzie się różnić od oczekiwanego.
6) W razie wątwliwości czemu program działa tak a nie inaczej w danej linijce napisz to w pytaniu na forum.
7) Jeśli chcesz żeby ktoś czytał Twój kod postaraj się aby był on czytelny. Używanie całego alfabetu jako nazw zmiennych w połączeniu z zerową ilością komentarzy utrudnia czytanie kodu (a na pewno nie zachęca do jego przeglądania).
Kaef
Użytkownik
Użytkownik
Posty: 177
Rejestracja: 27 lis 2011, o 14:52
Płeć: Kobieta
Podziękował: 40 razy
Pomógł: 2 razy

[C] Obliczanie sumy szeregu potęgowego

Post autor: Kaef »

Niestety tak mnie nauczono. W zasadzie to tylko przerobiłam program, który pokazywano nam na zajęciach, zmieniłam dane, bo tego się ode mnie wymaga. I to jest cała robota na zaliczenie.
Na co dzień się tym nie zajmuję i to, co napisałeś to dla mnie kompletna, czarna magia.
Awatar użytkownika
kadiii
Użytkownik
Użytkownik
Posty: 642
Rejestracja: 20 gru 2005, o 21:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Pomógł: 130 razy

[C] Obliczanie sumy szeregu potęgowego

Post autor: kadiii »

Bardzo mi przykro, że masz taką sytuację. Cóż mogę jednak poradzić na takie podejście - twoje i wykładowcy. Ja widzę w twojej sytuacji dwa mozliwe wyjścia - albo postarać się jednak coś zrozumieć/nauczyć albo po prostu oszukać system i oddać gotowca. Oba rozwiązania niosą ze sobą swoje konsekwencje.
ODPOWIEDZ