Uebung-L08

From Informatik-Vorkurs
Jump to navigationJump to search

Übung zur L08/09/10

Komplexe Zahlen

Schreiben Sie das Programm für die komplexen Zahlen aus L06.4 so um, dass es anstelle der Struktur eine Klasse Komplex verwendet. Definieren Sie für diese Klasse den Kopierkonstruktor und den Zuweisungsoperator. Definieren Sie die Operatoren +=, -=, *= für diese Klasse. Implementieren Sie einen oder mehrere Konstruktoren, die

  1. eine komplexe Zahl ohne explizit angegebene Komponenten auf den Wert (0;0) initialisieren
  2. eine komplexe Zahl mit nur einem Realteil erstellen
  3. eine komplexe Zahl mit einem Real- und Imaginärteil erstellen.

Machen Sie Sich bei der Implementierung Gedanken über öffentliche und geschützte Attribute und Methoden der Klasse.

Formen

Schreiben Sie ein Programm, das Klassen der Typen

  • Form
  • Viereck
  • Rechteck
  • Kreis
  • Quadrat
  • Ellipse

definiert.

Jede Form soll eine Element des Typs char haben, das ein Ausgabezeichen spezifiziert. Definieren Sie Methoden zum Setzen und Abfragen dieses Zeichens. Standardmässig soll es den Wert '*' haben. Welche weiteren Attribute werden sinnvollerweise für die verschiedenen Formen benötigt? Implementieren Sie diese Attribute zusammen Methoden zum Setzen und Abfragen.

Definieren Sie eine Ausgabeoperationen Draw(), die die entsprechende Form auf den Bildschirm ausgeben. (Geben Sie die Form über die Textausgabe aus. Nehmen Sie jedes Zeichen als Bildpunkt an und benutzen sie das Leerzeichen für nicht gesetzte Punkte und das konfigurierte Ausgabezeichen für gesetzte Punkte. Sie können die Form zeilenweise ausgeben.)

Machen Sie Sich bei der Implementierung Gedanken über eine sinnvolle Vererbungshierarchie. Berücksichtigen Sie dabei auch abstrakte Klassen. Machen Sie Sich Gedanken über öffentlich und geschützte Attribute und Methoden.

Erstellen Sie, soweit möglich (Stichwort abstrakte Klassen), im Hauptprogramm Objekte der o.a. Klassen und geben Sie sie aus.

Stack

Erweiteren Sie das Programm stack.cpp, so dass eine vollständige Stack-Implementierung darstellt. (Implementieren Sie den Konstruktor und Destruktor, sowie die Methoden empty, full, push und pop.) Implementieren Sie ein Hauptprogramm, um die Funktionalität des Stacks zu testen. Warum sind der Kopierkonstruktor und der Zuweisungsoperator als private deklariert (Hinweis, versuchen Sie ein existierendes Stack Objekt zu kopieren...)?