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ą.
[C] Obliczanie sumy szeregu potęgowego
-
- 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
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:
\(\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.
Powód: Brak tagów code.
- kadiii
- 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
1) Używaj znaczników Code dla fragmentów z kodem źródłowym!
2) Używaj wcięć!
3)
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).
2) Używaj wcięć!
3)
Może kompilujesz inny program bo ten powyżej jest niepoprawny składniowo.Wszystko mi się ładnie kompiluje
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).
-
- 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
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.
Na co dzień się tym nie zajmuję i to, co napisałeś to dla mnie kompletna, czarna magia.
- kadiii
- 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
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.