6. Übung für Programmierpraktikum


Abgabetermin: 29. Jänner 2004



Name:

Matrikelnummer: Punkte:

Die Übungen sind grundsätzlich allein zu machen. Gruppenarbeit ist nicht erlaubt. Abzugeben sind jeweils das sinnvoll dokumentierte Programmlisting mit Original-inputs und Original-outputs, falls angebracht für mehrere Testläufe mit unterschiedlichen Eingabedaten. Das Abgabeformat ist DIN A4. Heften Sie alle Unterlagen gemeinsam mit dem Übungsblatt zusammen !

Generelle Hinweise:
Werden Variablen aus der Parameterliste in einer Methode als Konstante behandelt, d.h., nicht verändert, dann ist dies auch in der Parameterliste kenntlich zu machen!
Globale Variablen sind nicht nötig und auch nicht erlaubt.

  1. (8 P) Schreiben Sie eine Klasse DATUM, welche Tag, Monat und Jahr speichert. Implementieren Sie (Header- und Sourcefile) alles so, daß das folgende Programm funktioniert.


    \begin{listing}{1}
...



    Hinweis: Implementieren Sie entweder zuerst den «-Operator für Ihre Klasse DATUM oder kommentieren Sie die entsprechenden Zeilen im Programm anfangs aus. Ansonsten erscheinen lange kryptische Fehlermeldungen beim Kompilieren.
  2. (4 P) Erweitern Sie die Klasse Datum um einen Konstruktor, der die Daten aus einem File einliest, dessen Name diesem Konstruktor als Parameter übergeben wird (§9.2 der Vorlesung). Das entsprechende Hauptprogramm ändert sich bzgl. Aufg. 1 derart, daß Zeilen 8-11 durch die Zeile
    Datum dd("input.6B_1.txt");
    ersetzt werden. Die Existenz des Files muß im Rahmen dieser Übung nicht überprüft werden.

    Eingabedaten (tag,monat,jahr) in den Files input.6B_1.txt, input.6B_2.txt.


    Zusatzpunkte (+2):
    Übergeben Sie den Filenamen als Kommandozeilenparameter (§7.6 der Vorlesung) an das Programm, sodaß Sie das Programm mit
    ./a.out input.6B_1.txt bzw. ./a.out input.6B_2.txt
    starten können.
  3. (12 P) Implementieren Sie eine eigene Vektorklasse, welche den benötigten Speicher dynamisch anfordert, sodaß das folgende Programm funktioniert. Die Zeilen 14-16 beinhalten eine Zusatzaufgabe (+2).


    \begin{listing}{1}
...


    Die DaXpY-Operation (Doppelt-genau: alpha-mal-Vektor-X-plus-Vektor-Y) in Zeile 9 ist identisch zu der Operation in Zeile 14 und bedeutet:

    zi : = $\displaystyle \alpha$*xi + yi        $\displaystyle \forall$i = 0,..., n - 1

    Die Methode NORM und die Funktion INNERPROD entsprechen den Definitionen in Aufgabe 1 der Übung 4.

    Eingabedaten (n, x[0],..., x[n - 1]) sind in den Files input.6C_x.txt, input.6C_y.txt.



Gundolf Haase : Tue Jan 13 09:45:47 CET 2004