diff --git a/ÜbungDebugging.md b/ÜbungDebugging.md index 5e23da3..e965f50 100644 --- a/ÜbungDebugging.md +++ b/ÜbungDebugging.md @@ -7,57 +7,101 @@ Klonen Sie das Projekt https://gogs.informatik.hs-fulda.de/Programmiermethoden_u ### Übung 1 Starten Sie das Programm mehrfach und geben Sie verschiedene natürliche Zahlen ein. +Eingabe: 45 ``` - input: 45, Schleifenvariable: 2, Ergebnis 1\ - input: 45, Schleifenvariable: 3, Ergebnis 0\ + input: 45, Schleifenvariable: 2, Ergebnis 1 + input: 45, Schleifenvariable: 3, Ergebnis 0 number 45 passed check: false ``` -- Beim Starten des Programms im Debug-Modus und Eingabe der Zahl 45, waren die Inhalte der Variablen folgende:\ - nextInt: 45\ - i: 2 -- Bei der Verwendung von "resume", erhielt ich folgende Variableninhalte:\ - nextInt: 45\ - i: 3 -- Beim Starten des Programms im Debug-Modus und Eingabe der Zahl 47, waren die Inhalte der Variablen folgende:\ - nextInt: 47\ - i: 2 -- Bei der Verwendung von "resume", erhielt ich folgende Variableninhalte:\ - nextInt: 47\ - i: 3 -- Bei der erneuten Verwendung von "resume", erhielt ich folgene Variableninhalte:\ - nextInt: 47\ - i: 4 - -## Zusammenfassung +Sowohl die eingegebene Zahl, als auch die Schleifenvariable und ein ganzzahliges Ergebnis werden ausgegeben. + +Notieren Sie die Inhalte der Variablen, nach Starten des Programms im Debug-Modus und Setzen eines Breakpoints in Zeile 35. +Eingabe: 45 +``` + int i = 2; + int nextInt = 45; + this //Instanz des Programms + out //PrintStream Objekt +``` +Lassen Sie das Programm bis zum nächsten Halt weiterlaufen und notieren Sie die Inhalte der Variablen. +``` + int i = 3; + int nextInt = 45; + this //Instanz des Programms + out //PrintStream Objekt +``` + +Notieren Sie die Inhalte der Variablen, nach Starten des Programms im Debug-Modus und Eingabe der Zahl 47. +``` + int i = 2; + int nextInt = 47; + this //Instanz des Programms + out //PrintStream Objekt +``` +Lassen Sie das Programm bis zum nächsten Halt weiterlaufen und notieren Sie die Inhalte der Variablen. +``` + int i = 3; + int nextInt = 47; + this //Instanz des Programms + out //PrintStream Objekt +``` +Lassen Sie das Programm erneut bis zum nächsten Halt weiterlaufen und notieren Sie die Inhalte der Variablen. +``` + int i = 4; + int nextInt = 47; + this //Instanz des Programms + out //PrintStream Objekt +``` Die Variable "nextInt" zeigt stehts die eingegebene Zahl an. Die Variable "i" wird als Schleifenvariable verwendet, um die Zahlen von 2 bis zum eingegebenen Wert zu durchlaufen und den Rest der Division zu berechnen. Sie überprüft, ob die eingegebene Zahl durch eine andere Zahl ohne Rest teilbar ist.\ -Beim Starten in Debug-Modus läuft das Programm bis zum Breakpoint, durchläuft die Schleife ein Mal und gibt die Variablen aus. Deswegen ändert sich der Wert der Variable "i" immer wieder, wenn man das Programm bis zum nächsten Halt (die nächste Schleife) weiterlaufen lässt. +Beim Starten in Debug-Modus läuft das Programm bis zum Breakpoint, durchläuft die Schleife ein Mal und gibt die Variablen aus. Deswegen ändert sich der Wert der Variable "i" immer wieder, wenn man das Programm bis zum nächsten Halt (der nächste Schleife) weiterlaufen lässt. --- ### Übung 2 -- Beim Starten des Programms im Debug-Modus und Eingabe der Zahl 45, waren die Inhalte der Variablen folgende:\ - nextInt: 23\ - count: 3\ -- In der Debug View waren insgesammt 9Einträge:\ - Thread[main]\ - Uebung2.checkNumber(int)\ - Uebung2.run()\ - Uebung2.main(String[])\ - Thread[Reference Handler]\ - Thread[Finalizer]\ - Thread[Signal Dispatcher]\ - Thread[Notification Thread]\ +Starten Sie das Programm, nach Setzen eines Breakpoints in Zeile 40, im Debug-Modus und geben Sie die Zahl 45 ein. Notieren Sie den Inhalt der Variablen. +``` + int nextInt = 23; + this //Instanz des Programms + int count = 3; +``` +In der Debug View waren insgesammt 9 Einträge.\ +``` + Thread[main] + Uebung2.checkNumber(int) + Uebung2.run() + Uebung2.main(String[]) + Thread[Reference Handler] + Thread[Finalizer] + Thread[Signal Dispatcher] + Thread[Notification Thread] Thread[Common-Cleaner] -- Bei der Verwendung von "step over":\ - - der Debugger steht in Zeile 40\ - - Die Anzahl der Eintrage in Debug Viel waren insgesammt 10 (ein "Uebung2.checkNumber(int)" ist über dem ersten "checkNumber(int)" erschienen)\ -- Bei der erneuten Verwendung von "step over" - - der Debugger steht in Zeile ... - - Die Anzahl der Eintrage in Debug Viel waren ... +``` +Bei der Verwendung von "step over" ist der Debugger durch die Rekursive Methode wieder in Zeile 40.\ +Die Anzahl der Einträge in Debug View waren insgesammt 10.\ +``` + Thread[main] + Uebung2.checkNumber(int) + Uebung2.checkNumber(int) + Uebund2.main(String[]) + Thread[Reference Handler] + Thread[Finalizer] + Thread[Signal Dispatcher] + Thread[Notification Thread] + Thread[Common-Cleaner] +``` +Bei der erneuten Verwendung von "step over" ist der Debugger nun in Zeile 23.\ +Die Anzahl der Einträge in Debug View sind nun 8. -## Zusammenfassung +``` + Thread[main] + Uebung2.run() + Uebung2.main(String[]) + Thread[Reference Handler] + Thread[Finalizer] + Thread[Signal Dispatcher] + Thread[Notification Thread] + Thread[Common-Cleaner] +``` -Der Algorithmus in Übung 2 ruft sich selbst auf. Zunächst wird beim Starten des Programms die Methode "Übung2.main(String[])" aufgerufen, welche daraufhin "Uebung2.run()" aufruft, um den Code auszuführen. Darauf folgt "Uebung2.checkNumber(int)". Die Zählvariable "count" wird initialisiert und dann in der Methode "checkNumber" verwendet, um zu einen bestimmten Zustand, Bedingung oder Eigenschaft der übergebenen Zahl zu überprüfen. Beim "step over"-Schritt wird die Schleife erneut ausgeführt, weshalb die Methode "checkNumber" ein weiteres Mal erscheint. -Die Variable "nextInt" zeigt stehts die eingegebene Zahl an.