/*
FH Giessen Friedberg                                                                                               Probe-Klausur
C++
Prof. Dr. Henrich

// Alle Lösungen sollen lauffähige Programme ohne Speicherlecks darstellen, wobei
// die STL nicht verwendet werden darf.
 

Aufgabe 1
Wir betrachten geometrische Objekte in der x-y-Ebene.
Jedes 2-dim-Objekt hat einen Punkt (Bezugspunkt) und eine Farbe (int Farbe;), sowie eine
Methode zur Flaechenberechnung und eine Methode show() zur Ausgabe der Daten. Das Anlegen
eines allgemeinen 2-dim-Objektes soll nicht möglich sein.
Die Klasse Punkt ist wie folgt gegeben (soll nicht verändert werden!):
 class Punkt{
  int x,y;
 public:
  Punkt(int xx, int yy):x(xx),y(yy){}
  void show(){cout<<"x: "<<x<<"y: "<<y<<endl;}
 };
Ein Rechteck ist ein spezielles 2-dim-Objekt. Es hat die Kantenlängen kx und ky, die vom
Bezugspunkt in x- bzw. y-Richtung abgetragen werden.
Der Einfachheit halber betrachten wir keine weiteren speziellen 2-dim-Objekte.
Legen Sie in main() dynamisch ein Rechteck mit dem Bezugspunkt (1/2) ,kx=3 und ky=4 an und
speichern Sie die Adresse in einem 2-dim-Objekt Zeiger. Geben Sie mit der Methode show()
die Flaeche und alle Daten des Rechtecks aus, wobei vorhandene Methoden verwendet werden
sollen. Beenden Sie das Programm, das Baustein einer grossen Anwendung sein könnte,
ordnungsgemaess.

Aufgabe 2
Erstellen Sie alle erforderlichen Klassen, so daß folgende main() Fkt. funktioniert.
    void main(){
      matrix m(4,5);     // Anlegen einer Matrix (4 Spalten 5 Zeilen), wobei die Anzahl von Zeilen und Spalten
                                // beliebig sein kann. Alle Matrixelemente werden mit 7 initialisiert
      m[2][3]=9;         // Das Matrixelement in Zeile 2 und Spalte 3 erhält den Wert 99
                                // (Die Nummerierung der Zeilen und Spalten beginnt bei 1)
                                // Auch hier könnte ein beliebiges Matrixelemnt verändert werden
      m.show();  // Ausgabe  7 7 7 7
 }                                      7 7 9 7
                                         7 7 7 7
                                         7 7 7 7
                                         7 7 7 7
Anmerkung: Das Erstellen von Kopien und Zuweisungen zwischen Matrizen wird nicht beachtet.

Aufgabe 3
Gegeben ist die Klasse zahl:
class zahl{
     int* ip; // zeigt auf den Wert
     ...        // zu ergaenzen
 };
Erstellen Sie eine Schablonenklasse, die einen Vektor der Dimension 2
eines variablen Datentyps enthält. Die Schablonenklasse Vektor wird
wie folgt verwendet:
 void main(){
  Vektor<int> v1(5,6);
  v1.read();
  v1.show();
  zahl c1(3),c2(c1);
  Vektor<zahl> v2(c1,c2);
  v2.read();
  c2=c1;
  v2.show();
   }
Geben Sie die fehlende Implementierung an.
*/