Quelltextanalyse Java: Unterschied zwischen den Versionen
Zeile 1: | Zeile 1: | ||
[[Kategorie:Informatik]] | [[Kategorie:Informatik]] | ||
[[Kategorie:Informatik-Abitur]] | [[Kategorie:Informatik-Abitur]] | ||
'''Ziel''' der Quelltextanalyse ist es, die Funktionsweise einer Methode mithilfe geeigneter <u>Fachbegriffe</u> möglichst <u>kurz</u> und <u>präzise</u> zu beschreiben. Dabei sind <u>Standardformulierungen</u> hilfreich. | '''Ziel''' der Quelltextanalyse ist es, die Funktionsweise einer Methode mithilfe geeigneter <u>Fachbegriffe</u> möglichst <u>kurz</u> und <u>präzise</u> zu beschreiben. Dabei sind <u>Standardformulierungen</u> hilfreich. |
Version vom 3. April 2022, 15:20 Uhr
Ziel der Quelltextanalyse ist es, die Funktionsweise einer Methode mithilfe geeigneter Fachbegriffe möglichst kurz und präzise zu beschreiben. Dabei sind Standardformulierungen hilfreich.
- Fachbegriffe dienen der Präzision.
- kurz ist deswegen wichtig, weil man bei der Klausur möglichst wenig Zeit auf das Schreiben verwenden sollte.
- Auf Standardformulierungen sollte man zurückgreifen können - denn die Beschreibung für das Durchlaufen eines Queues oder einer Liste muss man nicht für jede Klausur neu erfinden.
- Beispiele für Standardformulierungen finden sich unten.
- Auf Ästhetik muss nicht geachtet werden, so sind z.B. Wiederholungen am Satzanfang kein Problem.
Standardformulierungen
Mögliche Standardformulierungen werden hier an einem Beispiel aufgezeigt.
Beispiel:
Gegeben ist die Methode tueWas
. pQueue
enthält lauter Kunden, die nach Einkommen absteigend sortiert sind, d.h. der Kunde mit dem höchsten Einkommen ist vorne.
01 private void tueWas(Queue<Kunde> pQueue, Kunde pKunde) {
Queue<Kunde> hilfs = new Queue<Kunde>();
boolean zzz = false;
while (!pQueue.isEmpty()) {
05 Kunde erster = pQueue.front();
if (zzz == false && pKunde.getGuthaben() > erster.getGuthaben()) {
hilfs.enqueue(pKunde);
zzz = true;
}
10 hilfs.enqueue(erster);
pQueue.dequeue();
}
if(!zzz){
hilfs.enqueue(pKunde);
15 }
while (!hilfs.isEmpty()) {
pQueue.enqueue(hilfs.front());
hilfs.dequeue();
}
20 }
Aufgabe:
- Unterteile die Methode in geeignete Abschnitte und erläutere, was in den einzelnen Abschnitten passiert. Verwende dabei geeignete Fachbegriffe.
- Erläutere, welchen Zweck die lokale Variable
zzz
erfüllt und gib ihr einen geeigneten Namen. - Benenne den Zweck, den die Methode erfüllt.
Mögliche ausführliche Lösung
Fachbegriffe sind fett; die Lösung enthält möglichst viele Standardformulierungen.
- Z. 01: Methodenkopf: Die Methode
tueWas
erwartet die ParameterpQueue
(vom TypQueue
) undpKunde
vom TypKunde
. Die Methode gibt nichts zurück. - Z. 02-03: Die lokalen Variablen
hilfs
(vom TypQueue
vonKunde
-Objekten) undzzz
(vom Typboolean
) werden deklariert;hilfs
wird als leere Queue initialisiert undzzz
mit dem Wertfalse
. - Z. 04-12: Eine
while
-Schleife wird geöffnet, die so lange läuft, wiepQueue
noch Elemente enthält. Innerhalb der Schleife passiert folgendes:- Z. 05: Das vorderste Element von
pQueue
wird in der lokalen Variableerster
(vom TypKunde
) gespeichert. - Z. 06-09: Wenn
zzz
den Wertfalse
hat und das Guthaben vonpKunde
größer ist als das Guthaben vonerster
, dann passiert folgendes:pKunde
wird hinten anhilfs
angehängt.zzz
wird auftrue
gesetzt.
- Z. 10-11:
erster
wird vonpQueue
gelöscht und hinten anhilfs
angehängt.
- Z. 05: Das vorderste Element von
- Z. 13-15: Wenn
zzz
den Wertfalse
hat, dann wirdpKunde
anhilfs
angehängt.- Das geschieht, wenn
pKunde
in derwhile
-Schleife noch nicht anhilfs
angehängt wurde; so wird gewährleistet, dasspKunde
auf jeden Fall anhilfs
angehängt wird, auch wenn niemand ärmer ist alspKunde
.
- Das geschieht, wenn
- Z. 16-19: Alle Elemente von
hilfs
werden wieder aufpQueue
zurückübertragen.
In der Variablen zzz
wird festgehalten, ob pKunde
schon in hilfs
eingefügt wurde.
zzz
heißt deswegen am besten schonEingefuegt
.
Die Methode fügt pKunde
gemäß seinem Einkommen an der richtigen Stelle in pQueue
ein.
Wenn pKunde
ärmer ist als alle in pQueue
, dann wird er hinten angehängt.
Mögliche kurze Lösung
Fachbegriffe sind fett; die Lösung enthält möglichst viele Standardformulierungen.
- Die Methode
tueWas
erwartet die ParameterpQueue
(vom TypQueue
) undpKunde
vom TypKunde
. Die Methode gibt nichts zurück. - Zu Beginn (Z. 2-3) werden die lokalen Variablen
hilfs
undzzz
deklariert;hilfs
wird als leere Queue initialisiert undzzz
mit dem Wertfalse
. - In der
while
-Schleife (Z.4-12) wirdpQueue
nach und nach geleert und hintenhilfs
angehängt.- Wenn dabei
pKunde
ein größeres Einkommen als der vorderste Kunde auspQueue
hat und zusätzlichzzz
nochfalse
ist, dann wirdpKunde
anhilfs
hinten angehängt undzzz
auftrue
gesetzt.
- Wenn dabei
- Z. 13-15: Wenn
zzz
den Wertfalse
hat, dann wirdpKunde
jetzt anhilfs
hinten angehängt; das geschieht, wennpKunde
in derwhile
-Schleife noch nicht anhilfs
angehängt wurde. - Z. 16-19: Alle Elemente von
hilfs
werden wieder aufpQueue
zurückübertragen.
In der Variablen zzz
wird festgehalten, ob pKunde
schon in hilfs
eingefügt wurde.
zzz
heißt deswegen am besten schonEingefuegt
.
Die Methode fügt pKunde
gemäß seinem Einkommen an der richtigen Stelle in pQueue
ein.
Wenn pKunde
ärmer ist als alle in pQueue
, dann wird er hinten angehängt.