Hallo Experten!
Hab ein Problem und hoffe ihr könnt mir weiterhelfen 
Ich soll in C ein Programm erstellen, das die Zahl PI mittels der Reihenentwicklung (http://de.wikipedia.org/wiki/Leibniz-Reihe) berechnet. Außerdem soll es dem Benutzer möglich sein die Schranke d variabel eingeben zu können, wobei d die grenze für den absoluten Restfehler bezeichnet.
ich hab nur wenig ahnung davon weil ich erst vor kurzem mit c-programmierung begonnen habe.
könntet ihr mir da vielleicht ein paar Ansätze geben?
vielen dank & liebe grüße
stefan
Hallo,
Ich soll in C ein Programm erstellen, das die Zahl PI mittels
der Reihenentwicklung
(http://de.wikipedia.org/wiki/Leibniz-Reihe) berechnet.
Außerdem soll es dem Benutzer möglich sein die Schranke d
variabel eingeben zu können, wobei d die grenze für den
absoluten Restfehler bezeichnet.
ich hab nur wenig ahnung davon weil ich erst vor kurzem mit
c-programmierung begonnen habe.
könntet ihr mir da vielleicht ein paar Ansätze geben?
Das Programm ist eigentlich straight forward: du nimmst eine Variable, in der du die Partialsumme speicherst, und schreibst eine Schleife, in der immer das nächste Glied addiert wird.
In der Bedingung der Schleife überprüfst du, wie weit die Partialsumme von pi/4 weg ist, und brichst ab, wenn der Betrag der Differenz kleiner ist als die Fehlerschranke.
Grüße,
Moritz
hi!
vielen dank für die schnelle antwort! werd mich gleich einmal dazusetzen und schaun ob ichs hinkrieg ^^
dankesehr!
lg stefan
hi!
ich schaffs irgendwie net wirklich.
es sollen ja eigentlich so lange die partialsummen addiert werden, bis das letzte glied kleinergleich dem eingegeben restfehler ist.
aber nach gerade einmal einem durchgang stoppt die schleife ^^
is das was ich bis jetzt hab total falsch oder stimmts ansatzweise zumindest?
hoffe ihr könnt mir noch einmal helfen!
danke 
#include
#include
int main() {
int n;
double sum, partialsum, d, abs, R;
sum = 0;
R = 0;
printf(„Eingabe des maximalen Restfehlers: „);
scanf(“%lf“, &d);
while(abs
Hallo,
#include
#include
int main() {
int n;
double sum, partialsum, d, abs, R;
sum = 0;
R = 0;
printf(„Eingabe des maximalen Restfehlers: „);
scanf(“%lf“, &d);
Du initialiserst weder n noch abs.
> while(abs
Es ist eine relativ dumme Idee, hohe Potenzen einer Fließkommazahl zu bilden.
> sum = sum + 4\*partialsum;
> R = R + partialsum;
Die Variable, die du partialsum genannt hast, hält das aktuelle Glied der Berechnung, nicht die Partialsumme (die ist in R).
> abs = fabs(R);
Du nimmst nicht den Betrag der Differenz von aktuellen Wert und Zielwert, sondern nur den Betrag. Damit macht die Abbruchbedingung keinen Sinn mehr.
Ich habe mal eine funktionierende Version angehängt:
#include
#include
int main() {
int n = 0;
double partialsum = 0.0, d;
int sign = 1;
printf("Eingabe des maximalen Restfehlers: ");
scanf("%lf", &d);
printf("Limit: %f\n", d);
while(fabs(3.1415926 - partialsum) \> d) {
double current = 4.0 \* (double) sign / (2.0 \* (double) n + 1.0);
partialsum += current;
printf("%f\n", partialsum);
n++;
sign = -sign;
}
printf("\nPI laut Leibniz Reihe: \n\t%f\n", partialsum);
printf("Anzahl n: \n\t%i\n", n);
return 0;
}
Grüße,
Moritz