/*
FH Giessen Friedberg                                                           Uebung 07
C++
Prof. Dr. Henrich
 

Ue1
Ändern Sie das Programm zu Aufgabe 2 aus Übung 4 wie folgt ab:
-    Beim Anlegen eines Fahrzeuges muß das Baujahr angegeben werden
-    Ein LKW hat ein maximales Ladegewicht, das beim Anlegen angegeben werden muß
     Ein LKW hat einen Fahrtenschreiber (Klasse Fahrtenschreiber). Ein Fahrtenschreiber
     hat eine eindeutige Nummer, die beim Anlegen angegeben werden muß.
-    Legen Sie in main zunächst ein Auto, einen LKW und einen Pickup dynamisch an
     (Adressen in Basisklassenzeiger speichern) und rufen Sie anschließend in einer
     for-Schleife die Methode beschleunige()aller Instanzen auf.
     (Beladen entfällt)
-    Überprüfen Sie den Aufruf der Destruktoren

Ue2
Erstellen Sie eine Klasse Matrix für 2x2 Matrizen, so daß folgende main() Fkt. funktioniert.
    void main(){
         matrix m;  // erstellt 2 x 2 Matrix
         m[0][0]=11;
         m[0][1]=22;
         m[1][0]=33;
         m[1][1]=44;
         m.show();  // 11 22
}                   // 33 44

Ue3
Erstellen Sie die Klasse Trapez die das Bestimmen eines Näherungswertes für ein
Integral mit dem Trapezverfahren kapselt. Unter- und Obergrenze die Funktion werden
im Konstruktor übergeben und initialisiert.
Die Methode double berechnen(int n); erhält als Parameter die Schrittanzahl und gibt den
Näherungswert des Integrals zurück. Testen Sie die Klasse mit der Geraden y = 2x im
Intervall [0,3] sowie mit anderen Funktionen aus math.h

Ue4
Modifizieren Sie folgende Klassen (Bsp. aus Vorlesung) so, dass die Referenzvariablen
durch Zeiger ersetzt werden, und ueberpruefen Sie ihre Aenderungen

class innen{
    int i;
public:
    innen(int I=0):i(I){}
    int& operator[](int) {return i;}
};

class aussen{
    innen i;
public:
    aussen(int I=0):i(I){}
    innen& operator[](int) {return i;}
};
 

Ue5
Gegeben sei die Klasse
    class B{
         A a[5];
    public:
         void fn(){cout<<"B-fn";}
    };

Die Klasse A hat ein Datenelement int i, das im Konstruktor initialisiert wird sowie eine
öffentliche Methode fn die als Parameter eine Instanz von B erhält und im Funktionskörper
die Methode fn() der Klasse B aufruft.
a)    Legen Sie eine Instanz von B an und rufen Sie die Methode fn auf.
b)    Erweitern Sie die Klasse B so, daß das Erstellen einer Kopie einer Instanz
      angezeigt wird.
*/