Ich wollte ein Programm schreiben das den Wert einer Reihe (Funktion) ausgibt:

für s= 1. man gibt die Variable n ein und bekommt den Wert der Reihe an der Stelle n zurück.
In Blue J habe ich das hier eingegeben:
Ich zerbreche mir den Kopf warum das Programm falsche Werte ausgibt:
Übersetzung in Pseudo-Prozesscode:
1. Initialisiere die Variablen e,y,v,n
2. Lese Eingabe für n aus und belege mit eingegebenen Wert
3. solange i <= n führe dieser Reihe nach aus: a) überschreibe e mit dem Wert [e (lese aktuellen Wert e aus) +(addiere) v(aktuell)]
b) erhöhe y um 1
c) überschreibe die Variable v mit 1 / y (ausgelesenen aktuellen Wert)
d) Erhöhe i um 1
e) Prüfe wie am Anfang ob i <= n wenn nicht:
4. Führe aus: System.out.println("Die Funktion für s=1 und n = " + n + " ergibt " + e);
Was mache ich falsch und wie würde das Programm korrekt funktionieren ?

für s= 1. man gibt die Variable n ein und bekommt den Wert der Reihe an der Stelle n zurück.
In Blue J habe ich das hier eingegeben:
Java:
import java.util.Scanner;
public class main
{
// instance variables - replace the example below with your own
/**
* Constructor for objects of class main
*/
public static void main(String args[])
{
// initialise instance variables
float e = 1.0f; // e ist die Ergebnis-Variable
float y = 1.0f;
float v = 0.0f; // nächster Wert der Reihe wird zum alten Wert hinzu addiert
int n; // Stelle n
Scanner in = new Scanner(System.in);
System.out.println("Enter an integer for n");
n = in.nextInt(); // (s = 1)
for ( int i = 0; i <= n ; i++)
{ e = e + v ;
y++;
v = 1.0f / y ;
}
System.out.println("Die Funktion für s=1 und n = " + n + " ergibt " + e); }
}
Übersetzung in Pseudo-Prozesscode:
1. Initialisiere die Variablen e,y,v,n
2. Lese Eingabe für n aus und belege mit eingegebenen Wert
3. solange i <= n führe dieser Reihe nach aus: a) überschreibe e mit dem Wert [e (lese aktuellen Wert e aus) +(addiere) v(aktuell)]
b) erhöhe y um 1
c) überschreibe die Variable v mit 1 / y (ausgelesenen aktuellen Wert)
d) Erhöhe i um 1
e) Prüfe wie am Anfang ob i <= n wenn nicht:
4. Führe aus: System.out.println("Die Funktion für s=1 und n = " + n + " ergibt " + e);
Was mache ich falsch und wie würde das Programm korrekt funktionieren ?
Anhänge
Zuletzt bearbeitet von einem Moderator: