Hallo zusammen.
Bin hier am Lernen und kam mit einer Übungsaufgabe auch gut zurecht, doch die Ausgabe des Programms macht nicht wirklich viel Sinn. Jetzt bin ich meinen Code schon xmal durchgegangen und finde einfach den Fehler nicht und das macht mich komplett irre. Kann mir jemand sagen, woran es liegt?
Also die Aufgabe war:
"Die Exponentialfunktion e^x mit der Eulerschen Zahl e als Basis, kann durch folgende
Reihe annäherungsweise berechnet werden:
e^x = (Summenzeichen von n=0 bis n=unendlich) (x^n)/(n!)
Schreiben Sie ein Java-Programm, das den Benutzer zur Eingabe einer Zahl x auffordert
und anschließend den Wert von e^x annäherunsweise ausgibt. Erweitern Sie anschließend
das Programm derart, dass auch die gewünschte Genauigkeit der Berechnung eingegeben
werden kann."
Sorry für die verwirrende Schreibweise der Reihe, aber kp wie ich solche Sonderzeichen hier einfügen kann.
Und hier mein Code:
Das Programm lässt sich problemlos ausführen, aber die ausgegebenen Werte stimmen meist nicht.
Danke fürs Helfen!!
Bin hier am Lernen und kam mit einer Übungsaufgabe auch gut zurecht, doch die Ausgabe des Programms macht nicht wirklich viel Sinn. Jetzt bin ich meinen Code schon xmal durchgegangen und finde einfach den Fehler nicht und das macht mich komplett irre. Kann mir jemand sagen, woran es liegt?
Also die Aufgabe war:
"Die Exponentialfunktion e^x mit der Eulerschen Zahl e als Basis, kann durch folgende
Reihe annäherungsweise berechnet werden:
e^x = (Summenzeichen von n=0 bis n=unendlich) (x^n)/(n!)
Schreiben Sie ein Java-Programm, das den Benutzer zur Eingabe einer Zahl x auffordert
und anschließend den Wert von e^x annäherunsweise ausgibt. Erweitern Sie anschließend
das Programm derart, dass auch die gewünschte Genauigkeit der Berechnung eingegeben
werden kann."
Sorry für die verwirrende Schreibweise der Reihe, aber kp wie ich solche Sonderzeichen hier einfügen kann.
Und hier mein Code:
Code:
import java.io.*;
import java.lang.*;
class euler {
public static void main(String args[]) throws IOException {
System.out.println("Berechnung der Exponentialfunktion e^x");
System.out.println("");
System.out.println("Bitte geben sie einen Wert x ein!");
System.out.println("");
System.out.flush();
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
Double s = Double.valueOf(br.readLine());
double x = s.doubleValue();
System.out.println("");
System.out.println("Die Berechnung kann nur näherungsweise erfolgen. Wie viele Durchläufe?");
System.out.println("");
System.out.flush();
InputStreamReader isr2 = new InputStreamReader(System.in);
BufferedReader br2 = new BufferedReader(isr2);
String t = br2.readLine();
int g = Integer.parseInt(t);
int n = 0;
int ngr;
int nkl;
int nz;
int nf;
double summe = 0;
while (n < g) {
ngr = n;
nf = 1;
while (ngr >= 2) {
nkl = ngr - 1;
nz = ngr*nkl;
nf = nf*nz;
ngr = ngr - 2;
}
int index = 0;
double p = 1;
while (index < n) {
p = p*x;
index++;
}
double bruch = p/nf;
n++;
summe = summe + bruch;
}
System.out.println("");
System.out.print("e^" + x);
System.out.print(" = " + summe);
}
}
Das Programm lässt sich problemlos ausführen, aber die ausgegebenen Werte stimmen meist nicht.
Danke fürs Helfen!!