Quelltextanalyse Java: Unterschied zwischen den Versionen
Zeile 67: | Zeile 67: | ||
* Benenne den Zweck, den die Methode erfüllt. | * Benenne den Zweck, den die Methode erfüllt. | ||
==Mögliche Lösung== | ==Mögliche Lösung (sehr ausführlich!)== | ||
<font color='red'>''Diese Lösung ist sehr ausführlich, um möglichst alle Fachbegriffe unterzubringen.<br/>'''Für die Klausur ist das zu ausführlich!! Klausurlösung: siehe nächster Abschnitt!'''''</font> | |||
'''Fachbegriffe''' sind '''fett'''; die Lösung enthält möglichst viele Standardformulierungen. | '''Fachbegriffe''' sind '''fett'''; die Lösung enthält möglichst viele Standardformulierungen. | ||
Zeile 85: | Zeile 86: | ||
Die Methode fügt <code>pKunde</code> gemäß seinem Einkommen an der richtigen Stelle in <code>pQueue</code> ein.<br/> | Die Methode fügt <code>pKunde</code> gemäß seinem Einkommen an der richtigen Stelle in <code>pQueue</code> ein.<br/> | ||
Wenn <code>pKunde</code> ärmer ist als alle in <code>pQueue</code>, dann wird er hinten angehängt. | Wenn <code>pKunde</code> ärmer ist als alle in <code>pQueue</code>, dann wird er hinten angehängt. | ||
==Klausurlösung== | |||
<font color='red'>''Diese Lösung würde in der Klausur alle Punkte bringen. ''</font> | |||
* Zu Beginn der Methode tueWas wird die '''lokalen Variablen''' <code>hilfs</code> als Queue erzeugt und <code>zzz</code> bekommt den Wert <code>false</code>. | |||
* In der <code>while</code>-'''Schleife''' (Z.4-12) wird <code>pQueue</code> '''nach und nach geleert''' und hinten an <code>hilfs</code> '''angehängt''' (Z. 4+5+10+11). | |||
** Dabei wird immer geprüft, ob <code>zzz</code> noch <code>false</code> ist '''und''' der ob der Parameter <code>pKunde</code> ein größeres Einkommen hat als der vorderste Kunde. | |||
** '''Wenn ja''', dann wird <code>pKunde</code> an <code>hilfs</code> '''hinten angehängt''' und <code>zzz</code> auf <code>true</code> gesetzt. | |||
* Nach dem Ende der Schleife wird geschaut, ob <code>zzz</code> den Wert <code>false</code> hat | |||
** Wenn ja, dann wird <code>pKunde</code> jetzt an <code>hilfs</code> '''hinten angehängt''';<br/>das geschieht. | |||
** Damit ist man sicher, dass <code>pKunde</code> genau einmal an <code>hilfs</code> angehängt wird. | |||
* Am Ende werden alle Kunden von <code>hilfs</code> werden wieder auf <code>pQueue</code> zurückübertragen. | |||
<code>zzz</code> heißt am besten <code>schonEingefuegt</code>. ''(Und damit ist klar, was der Zweck der Variable ist.)'' | |||
Die Methode fügt <code>pKunde</code> gemäß seinem Einkommen an der richtigen Stelle in <code>pQueue</code> ein, ggf. auch an der letzten Stelle.<br/> |
Version vom 22. September 2025, 16:41 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.
Der Operator "Analysieren Sie..." im Zentralabitur
Der Operator "Analysieren Sie..." kommt im Zentralabitur immer nur in Kombination mit einem weiteren Operator vor.
Der weitere Operator sagt aus, was zu schreiben ist.
Konkret heißt das:
- "Analysieren Sie..." heißt so viel wie "Denken Sie nach über..."
- Konsequenz:
Für den Operator "Analysieren Sie..." muss man gar nichts aufschreiben!!
Man muss das nicht verstehen.
Aber wer das nicht berücksichtigt, verliert im Abitur sehr viel Zeit.
Hinweis:
Diese Auffassung von "Analysieren Sie..." ist sehr spezifisch für das Informatik-Zentralabitur!
Bitte auf keinen Fall auf andere Fächer übertragen!!
Beispiel:
Aufgabenstellung:
Analysieren und erläutern Sie den Algorithmus im Sachkontext.
Was ist zu tun?
- Analysieren ...: Einfach nur nachdenken - nichts schreiben!
- ... und erläutern Sie den Algorithmus im Sachkontext: Das ist das, was zu tun ist!
Weil bei dieser Aufgabe "nur" im Sachkontext erläutert werden soll, braucht man überhaupt nicht auf Programmierungs-Details eingehen, wenn sie für den Sachkontext keine Rolle spielen.
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 k = pQueue.front();
if (zzz == false && pKunde.getGuthaben() > k.getGuthaben()) {
hilfs.enqueue(pKunde);
zzz = true;
}
10 hilfs.enqueue(k);
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 die Funktionsweise der Abschnitte. 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 Lösung (sehr ausführlich!)
Diese Lösung ist sehr ausführlich, um möglichst alle Fachbegriffe unterzubringen.
Für die Klausur ist das zu ausführlich!! Klausurlösung: siehe nächster Abschnitt!
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 hinten anhilfs
angehängt (Z. 4+5+10+11).- Dabei wird in der lokalen Variable
k
der jeweils vorderste Kunde auspQueue
gespeichert. - Wenn
zzz
nochfalse
ist undpKunde
ein größeres Einkommen hat als der vorderste Kundek
,
dann wirdpKunde
anhilfs
hinten angehängt undzzz
auftrue
gesetzt.
- Dabei wird in der lokalen Variable
- 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.
Klausurlösung
Diese Lösung würde in der Klausur alle Punkte bringen.
- Zu Beginn der Methode tueWas wird die lokalen Variablen
hilfs
als Queue erzeugt undzzz
bekommt den Wertfalse
. - In der
while
-Schleife (Z.4-12) wirdpQueue
nach und nach geleert und hinten anhilfs
angehängt (Z. 4+5+10+11).- Dabei wird immer geprüft, ob
zzz
nochfalse
ist und der ob der ParameterpKunde
ein größeres Einkommen hat als der vorderste Kunde. - Wenn ja, dann wird
pKunde
anhilfs
hinten angehängt undzzz
auftrue
gesetzt.
- Dabei wird immer geprüft, ob
- Nach dem Ende der Schleife wird geschaut, ob
zzz
den Wertfalse
hat- Wenn ja, dann wird
pKunde
jetzt anhilfs
hinten angehängt;
das geschieht. - Damit ist man sicher, dass
pKunde
genau einmal anhilfs
angehängt wird.
- Wenn ja, dann wird
- Am Ende werden alle Kunden von
hilfs
werden wieder aufpQueue
zurückübertragen.
zzz
heißt am besten schonEingefuegt
. (Und damit ist klar, was der Zweck der Variable ist.)
Die Methode fügt pKunde
gemäß seinem Einkommen an der richtigen Stelle in pQueue
ein, ggf. auch an der letzten Stelle.