• Keine Ergebnisse gefunden

Informatik 2 für Regenerative Energien Klausur vom 15. Juli 2015: Lösungen

N/A
N/A
Protected

Academic year: 2021

Aktie "Informatik 2 für Regenerative Energien Klausur vom 15. Juli 2015: Lösungen"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Informatik 2 für Regenerative Energien

Klausur vom 15. Juli 2015: Lösungen

Jörn Loviscach

Versionsstand: 12. Juli 2016, 15:26

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 5

... new List<Zelle>();

13

public abstract void MacheSimulationsSchritt();

18

foreach (var z in zellen)

20

z.Zeichne(c);

25

class Bakteriensimulation : Simulation

60

tochterzellen.AddRange(z.Vermehre());

68

static protected Random würfel = new Random();

83

ort = new Point(fensterbreite * würfel.NextDouble(),

118

ort = new Point(x, y);

124

double dy = ort.Y - z.ort.Y;

132

public Fresszelle(...

143

while (i < zellen.Count)

147

if (zellen[i] is Bakterium && IstNahe(zellen[i]))

161

: base(p)

168

override public List<Zelle> Vermehre()

2. Die Werte sind 0, 2,

true

.

3. In der Methode

IstNahe

wird versucht, das Feld

ort

über eine Nullreferenz aufzurufen. Das führt zu einer entsprechenden Exception.

4. Die Klasse

Fresszelle

erhält ein (privates) Feld

int zahlGefressenerBakterien

und obendrein z. B. eine (öffentliche) Property:

public int ZahlGefressenerBakterien

{ get {return zahlGefressenerBakterien; } }

Vor oder nach Zeile 148 ergänzt man

zahlGefressenerBakterien++;

1

(2)

2

5. Zum Beispiel so:

for (int i = 0; i < zahlBakterien; i++) {

bool nahe = true;

Bakterium b = null;

while (nahe) {

nahe = false;

b = new Bakterium(fensterbreite, fensterhöhe);

foreach (var z in zellen) {

if (b.IstNahe(z)) {

nahe = true;

break;

} } }

zellen.Add(b);

}

6. 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 Bakterienklasse bei der Vermehrung Instan- zen der bisherigen Bakterienklasse erzeugt). Außerdem ist die Methode

Zeichne

virtuell zu machen, so dass man sie in der neuen Bakterienklasse überschreiben kann, um keine Kreise mehr zu produzieren, sondern breite Ellipsen.

7. Das Klassendiagramm:

8. Die Werte sind 8, 16, 16.

Referenzen

ÄHNLICHE DOKUMENTE

Erweitern Sie in die Klasse Kfz aus dem (korrigierten) Listing im Anhang um eine öffentliche Methode string ListeFahrerUndKilometer() , die die Fahrer und ihre gefahrenen Kilometer

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

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

Für hinreichend große n ruft sich die Funktion n − 1-mal selbst auf, ohne

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

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,