Aufgabe 1.3 (Thema der Aufgabe, 0 Punkte)

Umlaute bitte ausschließlich in der folgenden Notation verwenden:

ä ”a

ö ”o

ü ”u

ß ”s

Dies erleichtert den Dokumentenaustausch zwischen unterschiedlichen Betriebssystemen und Textkodierungen erheblich.

Beispiel für die Anzeige von mit dem Übungsblatt ausgegebenem Quellcode. Anmerkungen: Es wird ein klickbarer WWW-Link erzeugt. Der Linktext dagegen verweist auf das Dateisystem im CIP-Pool. Für den WWW-Link und den Linktext werden der aktuelle Jahrgang und die aktuelle Blattnummer automatisch ermittelt und eingefügt (vgl. Makro myfile in blatt_masterfiles/blatt_latex_macros.tex). Die Links auf den Übungsblättern werden somit automatisch aktualisiert. Neben Quellcode kann natürlich auf beliebige andere Dateien verwiesen werden:

/home/binf/aufgaben/blatt01/code/MatrixScalarMultiplication.java

Beispiel für die Anzeige von benötigtem Quellcode aus der Vorlesung. Anmerkungen: Für einige Aufgaben werden Verweise auf Dateien aus der Vorlesung benötigt. Wird das folgende Makro verwendet, gilt dasselbe wie oben, d. h. die Links werden im jeweiligen Jahrgang automatisch aktualisiert (vgl. Makro myfileLecture in blatt_masterfiles/blatt_latex_macros.tex):

/home/binf/code/xyz_src/xyz.java

Musterlösung:

Programmlistings werden mit Hilfe des Pakets listings eingebunden:

____________________________________________________________________  SqrtHeron.java  

 
1 
2/** 
3 * Berechnung einer Naeherung der Quadratwurzel einer Zahl mit einer Folge nach 
4 * dem Heronverfahren. 
5 * 
6 * @author Wolfgang Runte 
7 * @version 07.12.2010 
8 */ 
9public class SqrtHeron { 
10 
11    /** 
12     * Berechnung einer Naeherung der Quadratwurzel einer Zahl mit einer Folge 
13     * nach dem Heronverfahren. 
14     * 
15     * @param zahl eine Zahl, von der die Quadratwurzel berechnet werden soll 
16     * @return Quadratwurzel zur uebergebenen Zahl, -1 fuer Eingaben < 0 
17     */ 
18    public static double sqrtHeron(double zahl) { 
19        // Schranke, vordefiniert fuer einstellige Zahl 
20        double epsilon = 1e-15; 
21        // max. Anzahl Folgenglieder 
22        final int MAXIMUM = 100000; 
23        // aktuelles Folgenglied 
24        double x = 0; 
25        // Folgengliednummer 
26        int zaehler = 1; 
27 
28        // liefere -1 fuer Eingaben < 0 
29        if (zahl < 0) { 
30            x = -1; 
31        } 
32 
33        // zahl <= 0 laesst sich nicht berechnen 
34        if (zahl > 0) { 
35            // aktuelles Folgenglied mit uebergebenen Zahl initialisieren 
36            x = zahl; 
37 
38            // Kopie der uebergebenen Zahl erstellen 
39            double kopie = zahl; 
40 
41            // Berechnung der Schranke 
42            do { 
43                // solange kopie noch mehr als eine Stelle vor dem Komma hat 
44                // ziehe eine Stelle ab... 
45                kopie = kopie / 10; 
46                // ... und multipliziere Schranke mit 10 
47                epsilon = epsilon * 10; 
48            } while (kopie > 1); 
49 
50            // Berechnung der Quadratwurzel 
51            do { 
52                // naechstes Folgenglied berechnen 
53                x = (x + zahl / x) / 2.0; 
54                zaehler++; 
55            } while (zaehler < MAXIMUM && Math.abs(x * x - zahl) >= epsilon); 
56        } 
57        return x; 
58    } 
59}