Lernpfad:Einführung in Git/8: Unterschied zwischen den Versionen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Zeile 29: Zeile 29:
# Suche Zeile 18 und klicke einmal links auf die Zeilennummer. Ein rotes Stoppschild erscheint.
# Suche Zeile 18 und klicke einmal links auf die Zeilennummer. Ein rotes Stoppschild erscheint.
# Starte die Methode erneut und beobachte was passiert. Analysiere das Debugger-Fenster und seine Funktion.
# Starte die Methode erneut und beobachte was passiert. Analysiere das Debugger-Fenster und seine Funktion.
# Probiere die Buttons am unteren Rand des Debugger-Fensters aus. Behalte dabei auch den Editor mit dem Programmcode im Auge. Notiere dir Stichpunkte zu deinen Vermutungen, wie der Debugger funktioniert.
# Versuche die Endlosschleife zu beheben und die Methode zu korrigieren. Du kannst die Korrektheit mit der entsprechenden Testmethode prüfen.
{{Aufgabe:End}}
{{Aufgabe:End}}


[[Datei:BlueJ Debugger.png|center|700px]]
[[Datei:BlueJ Debugger.png|center|700px]]
{{Lösung:Start}}
<syntaxhighlight lang="Java" line="1" line start="16" highlight="3,7,8">
    public int addEvenNumbers( int pUpperBound ) {
        int sum = 0, i = 1;
        while( i > pUpperBound ) {
            // Nur gerade Zahlen addieren
            if( i%2 == 0 ) {
                sum += i;
            }
            i++;
        }
        return sum;
    }
</syntaxhighlight>
{{Lösung:End}}

Version vom 23. August 2020, 22:23 Uhr

In Gitea findest du ein Projekt mit dem Namen "oop2". Erstelle dir einen Fork und klone das Repository.

BlueJ oop2.png

Systematische Fehlersuche

Bei der Suche nach Fehlern in deinem Programmcode gibt es verschiedene Vorgehensweisen. Wichtig ist es, dabei systematisch vorzugehen und nicht einfach nur "Trial and Error" - also "Versuch und Irrtum" - anzuwenden.

Die Fehlersuche ist besonders schwierig, wenn das Programm kompiliert und startet - also syntaktisch korrekt ist, aber nicht die gewünschten Ergebnisse liefert - also einen semantischen Fehler enthält.

Überleg dir erst einen Plan, wie du vorgehen möchtest. Dazu musst du Vermutungen anstellen, wo im Programm der Fehler liegen könnte.

BlueJ Logo.png
Arbeitsauftrag
  1. Öffne die Klasse Calculator und analysiere ihren Quelltext.
  2. Suche die Methode int addEvenNumbers(int) und lies ihre Beschreibung im Methoden-Kommentar. Die Methode enthält zwei Fehler. Probiere sie aus.


Die Methode bleibt in einer Endosschleife hängen. Du kannst sie mit einem KLick auf den Pfeil unten rechts beenden.

BlueJ Endlosschleife.gif

Den Debugger benutzen

Für die systematische Fehlersuche steht dir ein mächtiges Werkzeug zur Verfügung: Der Debugger. Mit ihm kannst du das Programm zu beliebigen Zeitpunkten anhalten und dir seinen Zustand - also die Werte der Variablen - anzeigen lassen.

BlueJ Logo.png
Arbeitsauftrag
  1. Suche Zeile 18 und klicke einmal links auf die Zeilennummer. Ein rotes Stoppschild erscheint.
  2. Starte die Methode erneut und beobachte was passiert. Analysiere das Debugger-Fenster und seine Funktion.
  3. Probiere die Buttons am unteren Rand des Debugger-Fensters aus. Behalte dabei auch den Editor mit dem Programmcode im Auge. Notiere dir Stichpunkte zu deinen Vermutungen, wie der Debugger funktioniert.
  4. Versuche die Endlosschleife zu beheben und die Methode zu korrigieren. Du kannst die Korrektheit mit der entsprechenden Testmethode prüfen.


BlueJ Debugger.png
Lösung
    public int addEvenNumbers( int pUpperBound ) {
        int sum = 0, i = 1;
        while( i > pUpperBound ) {
            // Nur gerade Zahlen addieren
            if( i%2 == 0 ) {
                sum += i;
            }
            i++;
        }
        return sum;
    }