Lösung der Klausur PR25 im SS'00

Aufgabe 1:

class CWarteschlangeMitStreuung : public CWarteschlange { public:
	int streuung() const;
};
int CWarteschlangeMitStreuung::streuung() {
	int streuung = 0;
	if (anzahl > 0) {
	int summe = 0;
	int index = aeltestes;
	for (int i = 0; i < anzahl; i++) {
		summe += inhalt[index];
		index = (index + 1) % laenge;
	}
	int durchschnitt = summe / anzahl;
	index = aeltestes;
	for (int i = 0; i < anzahl; i++) {
		int differenz = inhalt[index] – durchschnitt;
		if (differenz < 0)
			differenz = - differenz;
		if (differenz > streuung)
			streuung = differenz;
        index = (index + 1) % laenge;
      }
   }
   return streuung;
}

Aufgabe 2:


Aufgabe 3:

Grund: cout ist ein Objekt

Grund: als Modul

Grund: kann als Konstruktorparameter angegeben werden

Grund: als Stapel-Objekte

Grund: gar keine Reaktion; Auswirkungen u.U. nur später erkennbar

Grund: Operatorüberladung in Klassen

Grund: wird alles vererbt, nur nicht exportiert

Grund: nur für Haldenobjekte


Aufgabe 4:

class CBehaelter {
	TBehaelter inhalt;
public: 
	void schreiben(const T wert) { inhalt = wert; }
	T lesen(TBehaelter) const { return inhalt; }
}

Aufgabe 5:

template <class T> T max(const T a, const T b) {
	return a < b ? b : a;
}

Klasse muss den Operator < überladen haben