0 Daumen
316 Aufrufe

Frage:

Die Anfrage wasMacheIch der Klasse Auftragsverwaltung spielt eine wichtige Rolle bei der Annahme von Druckaufträgen.

public boolean wasMacheIch(double pParameter) {
double rest = speichergroesse;
if (aktiverAuftrag != null) {
rest = rest - aktiverAuftrag.gibGroesse();
}
druckauftraege.toFirst();
while (druckauftraege.hasAccess())
{ Druckauftrag auftrag = (Druckauftrag) druckauftraege.getObject();
rest = rest - auftrag.gibGroesse();
druckauftraege.next();
} return (rest - pParameter) >= 0; }

Analysieren Sie die Methode wasMacheIch, indem Sie die Veränderung der Variablen rest beim Durchlauf durch die Liste dokumentieren.

Geben Sie für die Beispieldaten die Rückgabe der Methode an.

Erläutern Sie im Sachzusammenhang die Bedeutung des Parameters pParameter und die Funktionalität der Methode.

Das ist eine Abituraufgabe. Leider finde ich die Lösung nicht. Kann mir hier wer weiterhelfen?

Avatar von

1 Antwort

0 Daumen

Hallo,

ohne den Hintergrund zu kennen ist das eigentlich nicht möglich. Jedoch kann man einige Implizite Annahmen machen, die aus der Benamsung der Typen und Methoden resultieren.

Ich unterstelle: es gibt eine Klasse 'Druckauftrag', die über eine Methode 'gibGroesse()' verfügt, die den Speicherbedarf für diesen Druckauftrag zurückgibt. Gemeint ist der Speicher, den der Auftrag benötigt, auch wenn er nicht aktiv ist. Die Funktion 'WasMacheIch' liefert ein boolean zurück - also JA oder NEIN. Das geschieht in Abhängigkeit der Variable 'rest' und des Parameters 'pParameter'.

'rest' wird mit 'speichergrosse' initialisiert und aus dem Namen dieser Variable (und nur daraus!) kann man schließen, dass es sich um die Größe eines Speichers handelt. Und da hier Druckaufträge irgendwie wichtig sind, ist es womöglich der maximale Speicher, der für alle Druckaufträge zur Verfügung steht.

Von 'rest' werden nun die Größe des aktiven Druckauftrags und die Summe aller Größen der (vermutlich) anstehenden Druckaufträge abgezogen. D.h. es bleibt am Ende der noch freie verfügbare Speicher in 'rest' über. Wenn der nach einer weiteren Reduktion um 'pParameter' größer oder gleich 0 ist, dann liefert die Funktion JA bzw. WAHR.

Also kann man daraus schließen, dass die Funktion 'wasMacheIch' genau dann JA liefert, wenn ein weiterer neuer Druckauftrag mit der Größe 'pParameter' noch in die Druckerschlange passt.

Gruß Werner

Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community