INE2 – Informatik für Ingenieure 2 Praktikum 2: Grundlagen Java-Applikationen Einführung In diesem Praktikum werden Sie verschiedene Java-Applikationen schreiben, die auf der Kommandozeile arbeiten. Im Laufe des Semesters werden wir zusätzlich Java-Applikationen mit grafischer Ausgabe einführen. Noch ein paar Bemerkungen: Java-Applikationen bestehen aus einer oder mehreren Klassen. Eine davon muss eine statische (static) und öffentliche (public) main-Methode enthalten. Über diese Klasse wird die Applikation gestartet. Eine Methode, die aus einer statischen Methode derselben Klasse heraus gestartet werden soll, muss ebenfalls statisch sein. Den Grund dafür werden wir im Zusammenhang mit Klassen und Objekten besprechen. Lesezeichen Java API Docs http://docs.oracle.com/javase/7/docs/api/ Java-Buch 10. Auflage http://openbook.galileocomputing.de/javainsel/ Java-Buch 5. Auflage http://openbook.galileodesign.de/javainsel5/index.htm EBNF-Beschreibung und Syntaxdiagramme für Java http://www.cui.unige.ch/db-research/Enseignement/analyseinfo/JAVA/BNFindex.html Gerrit Burkert, Karl Rege 03.03.16 1 INE2 – Informatik für Ingenieure 2 Aufgabe 1: Pi Berechnung nach Leibniz Es soll eine Java-Methode public static double leibnizPi(int n) zur Berechnung der Kreiszahl pi geschrieben werden, die als Näherungswert für leibnizPi (k) die ersten k Terme der Reihenentwicklung aufsummiert. Aufgaben a) Implementieren Sie leibnizPi als Java-Methode. b) Implementieren Sie ausserdem eine main-Methode, in der n eingelesen wird. Anschliessend soll mit Hilfe von leibnizPi Pi berechnet und das Ergebnis ausgegeben werden. c) Bestimmen Sie die Anzahl Stellen Genauigkeit, die Sie bei einer gegebenen k Erreicht haben. Hinweis • • Berechnen Sie in einer Schleife den jeweils neuen Summanden der Reihenentwicklung aus. Der berechnete Näherungswert sollte um so genauer sein, je mehr Terme der Reihenentwicklung Sie berücksichtigen, d.h. je grösser n ist. Math.PI steht die Kreiszahl als Konstante zur Verfügung Aufgabe 2: Pi mittels Monte-Carlo Verfahren Die Zahl π lässt sich mittels einer Monte-Carlo Simulation bestimmt. Ein einfaches, aber nicht sehr genaues Verfahren funktioniert folgendermassen. Es werden beliebige Punkte innerhalb des Einheitsquadrates zufällig bestimmt. Ist der Abstand zum Ursprung kleiner als 1, dann zählt man ihn zur roten Menge. Die Anzahl der roten Punkte dividiert durch die Gesamtzahl der Versuche ergibt eine Näherung für π/4. Schreiben Sie folgende Methoden: a) die main-Methode, soll die Anzahl Wiederholungen einlesen und das Resultat ausgeben. b) eine Methode montecarloPi, die n Schritte der Simulation ausführt (mit n als Parameter) Hinweis: Math.random() liefert eine Zufallszahl zwischen 0 und 1 c) eine Methode inside, die feststellt, ob ein Punkt innerhalb des (Einheits-)Kreises liegt, d.h. der Abstand zum Ursprung kleiner als der Radius ist. Hinweis: wenn Sie den Einheitskreis als Radius wählen, dann brauchen Sie für obige Methode keine Wurzelfunktion (sonst wäre es einfach Math.sqrt() Gerrit Burkert, Karl Rege 03.03.16 2