kramann.info
© Guido Kramann

Login: Passwort:










Informatik3
1 Vom_struct_zur_Klasse
..1.1 Vom_struct_zur_Klasse
..1.2 struct_Programm
..1.3 Klassen_Programm
..1.4 Offene_Fragen
..1.5 Historie
..1.6 Objektabstraktion
..1.7 OO_Kundenverwaltung
..1.8 Objektfaehigkeiten
..1.9 Formatierung
..1.10 Motivation
..1.11 Uebung1
..1.12 Uebung2
2 UML
..2.1 Volumenberechnung
..2.2 UML_Klassendiagramm
..2.3 Konstruktor
..2.4 Statische_Variable
3 Strings
..3.1 Klassenbibliotheken
..3.2 stringUML
..3.3 Uebung3
4 Initialisierungen
4 bluej
5 Zeiger_und_Arrays
..5.1 Zeiger
..5.2 Zeiger_und_Funktion
..5.3 Uebung4
6 Vererbung
..6.1 MesswerteUML
..6.2 MesswerteProgramm
..6.3 VererbungsProgramm
..6.4 Vector
..6.5 Uebung
7 Modifikatoren
..7.1 public_Vererbung
..7.2 protected_Vererbung
8 Listen_und_Templates
..8.1 Containertypen
....8.1.1 ListeUML
....8.1.2 ListeProgramm
..8.2 Templates
....8.2.1 Listentemplate
....8.2.2 STLvectorTemplate
..8.3 Uebung5
..8.4 Uebung6
..8.5 Uebung7
9 Java
..9.1 Uebung
..9.2 GettingStarted
..9.3 Animation
..9.4 Hybrid
..9.5 Threads
10 Delegation
11 LayoutProjekt
12 Fenster
13 Uebung
14 Zwischenprojekt
..14.1 Befehle
..14.2 Planung
..14.3 JNI
..14.4 JNIumsetzen
..14.5 Anwendungsklasse
..14.6 GUI01
..14.7 GUI02
15 Rasterlayout
..15.1 Bilder_Packages
..15.2 interfaces
..15.3 ArrayList
..15.4 clone
..15.5 Uebung
16 Nuetzliches
..16.1 Threads
..16.2 Animation
..16.3 RungeKutta
..16.4 Loesungsansatz
..16.5 Internetprogrammierung
....16.5.1 Codegenerierung
....16.5.2 PHP_Programmierung
....16.5.3 PHP_OOP
....16.5.4 Java
17 Algorithmen
..17.1 RungeKutta
..17.2 Loesungsansatz
..17.3 Evoopt
..17.4 Uebung12
..17.5 Uebung8_2014
..17.6 Ausdruecke
18 Uebung10
19 UML_ALT
..19.1 Flaechenberechnung
..19.2 UML_Flaechenberechnung
..19.3 Implementierung
..19.4 ListeUML
..19.5 ListenImplementierung
..19.6 Anwendung

6.5 Übung


musterloesungen_tictactoe.zip - Musterlösung zu Tic-Tac-Toe vom 19.11.2014.

Aufgabe 1

  • Kapitel 6.4 zeigt ein Beispiel für die Implementierung eines mathematischen Vektors mit zwei Komponenten.
  • Diese Klasse soll Basisklasse der erbenden Klasse "VektorE" werden.
  • "VektorE" soll als Erweiterung eine Methode "double berechneBetrag()" enthalten, die die Vektorlänge zurückgibt.
  • Um die neue Klasse zu testen, soll eine main-Methode geschreiben werden, bei der ein Benutzer eine freie Anzahl an Vektoren eingeben kann.
  • Diese sollen nach Abschluß der Eingaben aufaddiert werden und die Länge des Summenvektors ausgegeben werden.
  • Will man den Konstruktor einer Basisklasse benutzen, so kann man das so machen:
#include<iostream>
#include<stdio.h>

using namespace std;

class Tier
{
    public:
        string name;
        
        Tier(string name)
        {
            this->name = name;                    
        }   
                      
        void zeigeOberbegriff()
        {
             cout<<"Ich bin ein Tier"<<endl;
        }
};

class Hund : public Tier
{
     public:
         Hund(string name) : Tier(name)   
         {
         }   
         void zeigeSpezies()
         {
             cout<<"Ich bin ein Hund."<<endl;
         }
};

int main()
{
   Hund h("Fiffi");

   cout<<h.name<<endl;

   system("PAUSE");

   return 0; 
}
 

Code 6.5-1: Verwendung des Konstruktors der Basisklasse.

Aufgabe 2


Während der Vorlesung am 03.11.2011 entwickelte Programme (Thema: Varianten für get-Methoden und Initialisierungen)

  • Erweitern Sie das Programm "initialisieren_nr7_dateieinlesen.cpp" aus der Vorlesung in folgenden Schritten:
  • Jede der Erweiterungsschritte soll über eine entsprechende Anpassung in der main-Methode auch getestet werden.
  1. Auch die x-Werte sollen aus einer Datei eingelesen werden.
  2. Die Dateinamen für die Koeffizienten und die Stützwerte werden den jeweiligen Methoden übergeben.
  3. Die zu verarbeitenden Dateinamen der Dateien mit den Koeffizienten und den x-Werten werden dem Programm als Parameter beim Start übergeben.
  4. Ersetzen Sie alle Arrays durch Elemente vom Typ vector<double>. Orientieren Sie sich dabei an der Einführung der Templateklasse vector in der vorletzten Vorlesung.
  5. Spalten Sie das soweit umgeschriebene Programm in eine Basisklasse und eine erbende Klasse auf. getWertetabelle(...) soll dabei in die erbende Klasse wandern.