Thomas Papendieck
2 years ago
committed by
Thomas Papendieck
commit
4ef19d1b72
4 changed files with 210 additions and 0 deletions
-
50README.md
-
61pom.xml
-
51src/main/java/de/edu/hsfulda/pmut/debugging/Uebung1.java
-
48src/main/java/de/edu/hsfulda/pmut/debugging/Uebung2.java
@ -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"*) |
||||
|
|
||||
|
|
||||
|
|
@ -0,0 +1,61 @@ |
|||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" |
||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
|
<modelVersion>4.0.0</modelVersion> |
||||
|
|
||||
|
<groupId>de.edu.hsfulda.pmut</groupId> |
||||
|
<artifactId>Debugging</artifactId> |
||||
|
<version>1.0-SNAPSHOT</version> |
||||
|
<packaging>jar</packaging> |
||||
|
<properties> |
||||
|
<maven.compiler.target>11</maven.compiler.target> |
||||
|
<maven.compiler.source>11</maven.compiler.source> |
||||
|
<junit.jupiter.version>[5.8.1,6)</junit.jupiter.version> |
||||
|
<junit.platform.version>[1.8.1,2)</junit.platform.version> |
||||
|
<mockito.version>4.1.0</mockito.version> |
||||
|
<assertj.version>[3.20.2,4)</assertj.version> |
||||
|
</properties> |
||||
|
<dependencies> |
||||
|
<dependency> |
||||
|
<groupId>org.junit.jupiter</groupId> |
||||
|
<artifactId>junit-jupiter-api</artifactId> |
||||
|
<version>${junit.jupiter.version}</version> |
||||
|
<scope>test</scope> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>org.junit.jupiter</groupId> |
||||
|
<artifactId>junit-jupiter-params</artifactId> |
||||
|
<version>${junit.jupiter.version}</version> |
||||
|
<scope>test</scope> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>org.assertj</groupId> |
||||
|
<artifactId>assertj-core</artifactId> |
||||
|
<version>${assertj.version}</version> |
||||
|
<scope>test</scope> |
||||
|
</dependency> |
||||
|
<dependency> |
||||
|
<groupId>org.mockito</groupId> |
||||
|
<artifactId>mockito-junit-jupiter</artifactId> |
||||
|
<version>${mockito.version}</version> |
||||
|
<scope>test</scope> |
||||
|
</dependency> |
||||
|
</dependencies> |
||||
|
<build> |
||||
|
<plugins> |
||||
|
<plugin> |
||||
|
<groupId>org.apache.maven.plugins</groupId> |
||||
|
<artifactId>maven-surefire-plugin</artifactId> |
||||
|
<version>3.0.0-M5</version> |
||||
|
<dependencies> |
||||
|
<dependency> |
||||
|
<groupId>org.junit.jupiter</groupId> |
||||
|
<artifactId>junit-jupiter-engine</artifactId> |
||||
|
<version>${junit.jupiter.version}</version> |
||||
|
</dependency> |
||||
|
</dependencies> |
||||
|
</plugin> |
||||
|
</plugins> |
||||
|
</build> |
||||
|
|
||||
|
</project> |
@ -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; |
||||
|
} |
||||
|
} |
@ -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; |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue