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