• Keine Ergebnisse gefunden

Informatik 2 für Regenerative Energien Klausur vom 28. September 2016: Lösungen

N/A
N/A
Protected

Academic year: 2021

Aktie "Informatik 2 für Regenerative Energien Klausur vom 28. September 2016: Lösungen"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Informatik 2 für Regenerative Energien

Klausur vom 28. September 2016: Lösungen

Jörn Loviscach

Versionsstand: 6. Juli 2019, 10:53

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Germany License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/de/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.

1. Die Fehler:

Zeile korrekter Programmtext

8 Bibliothek bib = new Bibliothek();

25 class Buch 27 string titel;

30 int tageLeihfrist = 30;

34 public Buch(string titel, int anzahlExemplare) 83 Ausleihvorgang a = null;

86 if(ausleihe.DiePerson == person) 93 if(a != null)

111 List<Person> erfüllbar = new List<Person>();

119 return erfüllbar;

129 public override bool Verlängere...

167 List<Buch> bücher = new List<Buch>();

169 public void FügeBuchHinzu(Buch buch) 171 bücher.Add(buch);

178 foreach (var buch in bücher)

2. Die Werte

c1

sind: false , false , "Anton: Elektrotechnik; Carla: Englisch;"

c1jl: Korrigiert: Semikolon statt Komma

3. Zum Beispiel am Anfang der Methode LeiheAusFallsMöglich dies ein- fügen:

foreach(var ausleihe in ausleihen) {

if(ausleihe.DiePerson == person) {

throw new ApplicationException(

"Diese Person hat das Buch bereits!");

} }

1

(2)

2

4. Ja, das ist ein Problem, weil die Ausleihe dann nicht aus der Liste ausleihen entfernt wird. Man könnte zum Beispiel im Programm nicht einfach die Exemplare abzählen, sondern die Exemplare einzeln verwalten, also nicht nur Personen speichern, sondern Personen mit den Nummern ihrer Exemplare. Bei der Rückgabe wäre dann egal, welche Person das Buch bringt; vielmehr würde man genau dieses eine Exemplar ausbuchen.

5. Zum Beispiel in der Klasse Bibliothek dies ergänzen:

public List<string> SucheKomplettEntlieheneBücher() {

var komplettEntliehene = new List<string>();

foreach (var buch in bücher) {

if (buch.IstKomplettEntliehen) {

komplettEntliehene.Add(buch.Titel);

} }

return komplettEntliehene;

}

Und in der Klasse Buch dies ergänzen:

public bool IstKomplettEntliehen {

get {

return ausleihen.Count == anzahlExemplare;

} }

6. Zum Beispiel so:

class UnbefristeterAusleihvorgang : Ausleihvorgang {

public UnbefristeterAusleihvorgang(Person person) : base (person, int.MaxValue)

{

endeLeihfrist = DateTime.MaxValue;

}

public override void Verlängere(int tage) {

} }

In der Klasse Ausleihvorgang ist dazu das Feld endeLeihfrist pro-

tected und die Methode Verlängere virtuell zu machen.

(3)

3

7. Zum Beispiel so:

abstract class Bauteil {

double Fläche;

double KWert;

public double BerechneWärmeverlust(double temperaturdiff) {

return 42.0;

} }

class Fenster : Bauteil {

bool kippbar;

}

class Wand : Bauteil {

bool verputzt;

public double BerechneMasse() {

return 23.0;

} }

8. Die Werte sind 3, 1, 1.

Referenzen

ÄHNLICHE DOKUMENTE

99 public virtual bool DarfBüroAlleinBetreten() 105 class Mitarbeiter : Person. 107 double wöchentlicheRegelarbeitszeit

Man führt eine Klasse Inspektion ein, legt eine eine Oberklasse (z. Fahrtenbucheintrag genannt) von Fahrt und Inspektion an und legt fahrtenbuch als Liste von Ereignis an. Die

Wenn derselbe Benutzer zum zweiten Mal versucht, dieselbe Musik zu be- werten, soll eine Exception geworfen werden.. Welche Änderungen nehmen Sie dazu im (korrigierten) Code aus

Ein Verweis auf die Musik mit Jailhouse Rock (weil Carla am besten passt), null (weil niemand passt) und null (weil Anna am besten passt, aber kein anderes Stück als das gemeinsame

Man kann die neue Klasse von Bakterium ableiten , muss dann aber noch die beiden Konstruktoren und eine neue Überschreibung für Vermehre schreiben (weil sonst die neue

Hilfsmittel: maximal vier einseitig oder zwei beidseitig beschriftete DIN-A4-Spickzettel beliebigen Inhalts, möglichst selbst ver- fasst oder zusammengestellt; kein Skript,

Wenn keine Ereignisse der gewünschten Sparte vorhanden sind, ist die Liste sortiert leer und sortiert.First() wirft eine

Hilfsmittel: maximal vier einseitig oder zwei beidseitig beschriftete DIN-A4-Spickzettel beliebigen Inhalts, möglichst selbst ver- fasst oder zusammengestellt; kein Skript,