# Eulersche Zahl - Problem mit Aufgabenstellung und Lösung



## Fishmeaker (24. Nov 2014)

Halle liebe Community,

ich weis nicht, ob "Hausaufgaben" die Richtige Ecke ist.
Jedenfalls ist es dringend und ich hoffe sehr, dass sich jemand schnellmöglich bereit erklärt zu helfen. Innerhalb der nächsten Tage, sonst ist es zu spät.

Zum Sachverahlt:
Meine Freundin hat eine Aufgabe bekommen (Ich werde diese dann abtippen). Bei denen es um
die Näherungsrechnung der Eulerschen Zahl geht.

Sie versteht die Aufgabenstellung nicht und hat generell Probleme mit Programmiernung.
Ich verstehe die Aufgabenstellung ebenfalls nicht ganz. Ich kenne mit zwar mit den Grundlagen der
Programmierung aus und habe eetwas Erfahlung mit PHP, allerdings nicht mit Java, deshalb kann ich ihr beim schreiben leider wenig helfen.

Momentan stecke ich selber in der Klausurphase und habe keine Zeit ihr die Grundlagen näher zu bringen bevor der Abgabetermin verfällt. 

Ich würde nun die Aufgabenstellung schreiben und euch bitten, zumindest uns zu Erklären, wie die Aufgabe gemeint ist. Besser wäre ein kleiner Quellcode, den man als Vorlage nehmen könnte oder 
zumindest in Form eines Pseudocodes.

Ich setzte auf hier viel Hoffnung wir verzweifeln und es geht um Viel.
Vielen Dank im Vorraus

Aufgabe: 

Die Eulersche Zahl kann mit folgender Näherungsformel berechnet werden:

e = 1/0! + 1/1! + 1/2! + 1/3! + 1/4! + 1/5! ...

Dabei bezeichnet "!" die Fakultätsfunktion

n! = n * (n-1) * (n-2) * ... * 2 * 1
0!  = 1

Schreiben Sie ein Programm, das eine gewünschte Genauigkeit einliest und dann
mit dieser Formel die Zahl e näherungsweise bestimmt, indem nacheinander die
Näherungswerte berechnet werden, bis sich zwei aufeinander folgende Wert um
weniger als die vorgegebene Genauigkeit unterscheiden.

(evtl. Schreibfehler 1:1 übernommen)
Wie gesagt, ein fertiger Code mit genügend Kommentaren um verstehen wäre optimal.
Es geht ja nicht nur um´s erledigen, sondern auch um das Verständnis.

mfg


----------



## Flown (24. Nov 2014)

Versteh mich bitte jetzt nicht falsch, aber wir machen keine fertigen Lösungen (und das auch noch am besten Kommentiert). 

Wir helfen gerne bei Problemstellungen, aber ohne Eigenleistung wird das hier nichts.

Außer natürlich ihr macht einen Thread in Jobbörse auf und zahlt ein wenig was!

Hast du/Habt ihr schon irgendwelche Ansätze, die ihr versucht habt. Oder noch gar nicht begonnen?


----------



## eMmiE (24. Nov 2014)

Was denkst du denn was für Methoden sinnvoll wären?
Wie ungefähr sollte das Programm arbeiten?
Wie sieht die Eingabe aus?
Welche IDE benutzt ihr?
(Sprich Eclipse, JavaEditor, NetBeans oder diverse andere)


----------



## Fishmeaker (24. Nov 2014)

Sie arbeitet mit Eclipse.
Ich habe aber wie gesagt keine Ahnung von Java.
würde das Ding mit for Schleifen machen.
Wie man ne Eingabe in Java macht weis ich nicht.
Mit Kommentar meine ich natürlich im Code...

Aber ich verstehe diese Rechnung selbst nicht, mir fehlt das Mathematische Verständnis dafür.
Mit eulerscher Zahl und Näherungsrechnung hatte ich noch nie etwas zutun. Deshalb kann ich nur 
Vermuten, was richtig ist.
Ich kann ihr telefonisch da gerade nicht weiterhelfen (sind gerade etwas weiter voneinader entfernt)
Und wie man Eingabeaufforderungen dergleichen in Java schreibt weis ich leider überhaupt nicht.

Die Struktur ist mir schon groß klar, ich weiß nur nicht, wie man es in Java interpretiert.
In PHP würde ich es ungefähr so schreiben:

$x = (int) fgets(STDIN);

$value = 1;
$res    = 1;

   for ($z = 1; $z <= $x; $z++) {

      for ($y = $z; $y <= $z; $y++) {

           $value = $value* $y;

      }

        $res += 1 / $value;

   }

echo $res;

Ich weis nicht, ob ich das mathematische richtig interpretiert habe, und wie dieser Inhalt in Java mit zugehörigen Vor- und Nachgeplänkel aussieht.


----------



## Flown (24. Nov 2014)

Hier muss anscheinend das Divide & Conquer Prinzip angewendet werden.

Als erstes sucht ihr Euch im Internet: Java eingabe scanner
Nächster Schritt: Fakultät (Wikipedia ist auch sogar Python code)
Nächster Schritt: Eulersche Zahl berechnen

(Es geht hier nicht um Performance oder sonstiges, sondern das es überhaupt funktioniert)

Ihr könnt Euch gerne bei jedem getanen Schritt wieder melden und die Arbeit verifizieren lassen.

EDIT: Wie würdest du es in PHP programmieren?


----------



## Fishmeaker (24. Nov 2014)

Habe meine vermutete PHP Variante im meinem letzten Beitrag editiert.

Bitte nicht wundern, Sie kommt auch mit meinem Profil rein, damit Sie selbst ihre Fortschritte posten kann.

Hoffe wir können zusammen einen Lösungsweg erarbeiten.


----------



## Flown (24. Nov 2014)

Also dein PHP Code ist fast in Ordnung. Wenn du die innere for-Schleife weglässt, dann ist der Code auch noch richtig.


```
$x = (int) fgets(STDIN);
$value = 1;
$res    = 1;
for ($z = 1; $z <= $x; $z++) {
  $value *=  $z;
  $res += 1 / $value;
}
echo $res;
```

So den Code haben wir jetzt (also heißt nur noch in Java übersetzen).
Nachdem wir schon wieder mal Punkt 1 übersprungen haben, benötigen wir die Eingabe in der Konsole (Google hilft mit den obigen Stichwörtern)!


----------



## Fishmeaker (24. Nov 2014)

Das ist schonmal sehr gut.

Und wie sieht das in Java (Eclipse) aus?
Bei Java muss man ja irgendwie noch etwas deklarieren.
Und es gehört sicherlich noch zzgl. was dazu damit das als Javaprogramm läuft.

Wie formuliert man das nun richtig um?


----------



## Flown (24. Nov 2014)

Naja die kompletten Grundlagen werden wir jetzt nicht erläutern oder?
Wie mach ich eine Klasse/main-Methode/Klassen-Methode/...

Irgendein Grundwissen muss vorhanden sein, sonst kann ich nur raten mit Grundlagen schleunigst aufzuholen!


----------



## Fishmeaker (24. Nov 2014)

Eine ganz primitive Frage, wie postet ihr die Codes in solchen Fenstern?


----------



## Flown (24. Nov 2014)

Mit [noparse]
	
	
	
	





```
//javacode
```
[/noparse]


----------



## Fishmeaker (24. Nov 2014)

also.. ichhab mir mal jetzt alles im internet angeschaut (durchforstet)
&bin in meinem Programm (Eclipse) so weit gekommen...



```
import java.util.Scanner;
public class EulerscheZahl {

	
	public static void main(String[] args) {
		
		Scanner scan = new Scanner (System.in);
		
		double e = 0;
		int k = 0;
		int n = 0;
		long fakulteat = 0;
		
		
		System.out.println("Geben Sie eine Zahl ein:");
		n =scan.nextInt();
		
	
	for (n = 0; n <= 15; n ++) {
		
		fakulteat = fakulteat * n;
		
		System.out.println("Die Fakultät von " + n + " ist " + fakulteat);
	
	}
	
	
		
		

	}

}
```


komm jetzt iwie nicht weiter... ???:L


----------



## Flown (24. Nov 2014)

Ja beinahe... Hier meine letzte Hilfestellung:


```
import java.util.Scanner;

public class AproxEuler {
  
  public static void main(String... args) {
    Scanner scanner = new Scanner(System.in);
    // $x = (int) fgets(STDIN);
    int n = scanner.nextInt();
    // $value = 1;
    int faculty = 1;
    // $res = 1;
    double e = 1;
    // for ($z = 1; $z <= $x; $z++) {
    for (int i = 1; i <= n; i++) {
      // $value *= $z;
      // $res += 1 / $value;
    }
    // }
    // echo $res;
    System.out.println(e);
  }
}
```


----------



## Fishmeaker (24. Nov 2014)

Vielen Dank für deine bisherige Hilfe. 

Nur Sie (von ihr stammt das bisherige aus Java) kann mit PHP nichts anfangen.
Ich (von mir kommt das PHP) kann nichts mit Java anfangen

Mal schauen, ob wir es so nun fertig bekommen.


----------

