commit 4ef19d1b7206422abdcb34623c7724569a983573 Author: Thomas Papendieck Date: Wed Nov 9 17:27:06 2022 +0100 debugging übung diff --git a/README.md b/README.md new file mode 100644 index 0000000..17b88a7 --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +# Übung Debugging +## Vorbereitung +- Beschaffen Sie sich eine Java-IDE und installieren Sie diese auf Ihrem Rechner (zum Beispiel [eclipse](https://www.eclipse.org/downloads/packages/release/2022-09/r/eclipse-ide-java-developers)) +- importieren Sie dieses Projekt als *"existing Java project"* + +## Übung1 +Öffnen Sie das programm `Uebung1.java` im Editor +- Starten Sie das Programm mehrfach (*"run as Java Application"*) und geben Sie verschiedenen natürliche Zahlen ein. +- Aktivieren Sie die Zeilen 36 bis 38 durch entfernen der beiden *slashes* am Zeilenanfang + + - Starten Sie das Programm mehrfach (*"run as Java Application"*) und geben Sie verschiedenen natürliche Zahlen ein. + + - Notieren Sie die zusätzlichen Ausgaben + +- setzen Sie einen BreakPoint in Zeile 35 +- Starten Sie das Programm wie bisher +- Starten Sie das Programm im Debug-Modus und geben Sie die Zahl 45 ein +- Notieren Sie die Inhalte der Variablen +- Lassen Sie das Programm bis zu Ende Laufen +- Starten Sie das Programm im Debug-Modus und geben Sie die Zahl 47 ein +- Notieren Sie die Inhalte der Variablen +- Lassen Sie das Programm bis zu Ende Laufen + + + +## Übung2 +Öffnen Sie das programm `Uebung2.java` im Editor +- Starten Sie das Programm mehrfach (*"run as Java Application"*) und geben Sie verschiedenen natürliche Zahlen ein. +- setzen Sie einen BreakPoint in Zeile 40 +- Starten Sie das Programm wie bisher +- Starten Sie das Programm im Debug-Modus und geben Sie die Zahl 45 ein +- Notieren Sie die Inhalte der Variablen +- Notieren Sie die Anzahl der Einträge in der *Debug View* +- Lassen Sie das Programm einen Schritt weiter laufen (*step over"). + + - in welcher Zeile steht der Debugger? + - Notieren Sie die Anzahl der Einträge in der *Debug View* + + +- Beenden Sie den Debugger (*"Terminate"*) +- Lassen Sie das Programm einen Schritt weiter laufen (*step into"). + + - in welcher Zeile steht der Debugger? + - Notieren Sie die Anzahl der Einträge in der *Debug View* + + +- Beenden Sie den Debugger (*"Terminate"*) + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..56bcfda --- /dev/null +++ b/pom.xml @@ -0,0 +1,61 @@ + + 4.0.0 + + de.edu.hsfulda.pmut + Debugging + 1.0-SNAPSHOT + jar + + 11 + 11 + [5.8.1,6) + [1.8.1,2) + 4.1.0 + [3.20.2,4) + + + + org.junit.jupiter + junit-jupiter-api + ${junit.jupiter.version} + test + + + org.junit.jupiter + junit-jupiter-params + ${junit.jupiter.version} + test + + + org.assertj + assertj-core + ${assertj.version} + test + + + org.mockito + mockito-junit-jupiter + ${mockito.version} + test + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M5 + + + org.junit.jupiter + junit-jupiter-engine + ${junit.jupiter.version} + + + + + + + diff --git a/src/main/java/de/edu/hsfulda/pmut/debugging/Uebung1.java b/src/main/java/de/edu/hsfulda/pmut/debugging/Uebung1.java new file mode 100644 index 0000000..7155879 --- /dev/null +++ b/src/main/java/de/edu/hsfulda/pmut/debugging/Uebung1.java @@ -0,0 +1,51 @@ +package de.edu.hsfulda.pmut.debugging; + +import java.io.InputStream; +import java.io.PrintStream; +import java.util.Scanner; + +public class Uebung1 { + private InputStream in; + private PrintStream out; + + public Uebung1(InputStream in, PrintStream out) { + this.in = in; + this.out = out; + } + + public static void main(String[] args) { + new Uebung1(System.in, System.out).run(); + } + + private void run() { + try (Scanner input = new Scanner(in)) { + int nextInt = aquireUserInput(input, "enter an integer number: "); + boolean isCheckPassed = checkNumber(nextInt); + reportResult(String.format("number %d passed check: %b", nextInt, + isCheckPassed)); + } ; + } + + private void reportResult(String message) { + out.print(message); + } + + private boolean checkNumber(int nextInt) { + for (int i = 2; i < nextInt; i++) { + int result = nextInt % i; +// out.println(String.format( +// "input: %d, Schleifenvariable: %d, Ergebnis %d", nextInt, i, +// result)); + if (0 == result) { + return false; + } + } + return true; + } + + private int aquireUserInput(Scanner input, String message) { + reportResult(message); + int nextInt = input.nextInt(); + return nextInt; + } +} diff --git a/src/main/java/de/edu/hsfulda/pmut/debugging/Uebung2.java b/src/main/java/de/edu/hsfulda/pmut/debugging/Uebung2.java new file mode 100644 index 0000000..842dd44 --- /dev/null +++ b/src/main/java/de/edu/hsfulda/pmut/debugging/Uebung2.java @@ -0,0 +1,48 @@ +package de.edu.hsfulda.pmut.debugging; + +import java.io.InputStream; +import java.io.PrintStream; +import java.util.Scanner; + +public class Uebung2 { + private InputStream in; + private PrintStream out; + private int count = 2; + public Uebung2(InputStream in, PrintStream out) { + this.in = in; + this.out = out; + } + + public static void main(String[] args) { + new Uebung2(System.in, System.out).run(); + } + + private void run() { + try (Scanner input = new Scanner(in)) { + int nextInt = aquireUserInput(input, "enter an integer number: "); + boolean isCheckPassed = checkNumber(nextInt); + reportResult(String.format("number %d passed check: %b", nextInt, + isCheckPassed)); + } ; + } + + private void reportResult(String message) { + out.print(message); + } + + private boolean checkNumber(int nextInt) { + if (count > nextInt) + return true; + if (nextInt % count == 0) + return false; + nextInt = nextInt - (nextInt / count); + count++; + return checkNumber(nextInt); + } + + private int aquireUserInput(Scanner input, String message) { + reportResult(message); + int nextInt = input.nextInt(); + return nextInt; + } +}