Browse Source

debugging übung

master
Thomas Papendieck 2 years ago
committed by Thomas Papendieck
commit
4ef19d1b72
  1. 50
      README.md
  2. 61
      pom.xml
  3. 51
      src/main/java/de/edu/hsfulda/pmut/debugging/Uebung1.java
  4. 48
      src/main/java/de/edu/hsfulda/pmut/debugging/Uebung2.java

50
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"*)

61
pom.xml

@ -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>

51
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;
}
}

48
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;
}
}
Loading…
Cancel
Save