From 195196d0e15ad4eddac4f9a870c7f2151855796d Mon Sep 17 00:00:00 2001 From: Sabina Grisi Date: Thu, 9 Nov 2023 17:45:00 +0100 Subject: [PATCH] mein zweiter commit --- Lerntagebuch.md | 17 +++++++++++++++++ Uebung1.java | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ Uebung2.java | 48 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 116 insertions(+) create mode 100644 Uebung1.java create mode 100644 Uebung2.java diff --git a/Lerntagebuch.md b/Lerntagebuch.md index c32d452..ce105c2 100644 --- a/Lerntagebuch.md +++ b/Lerntagebuch.md @@ -37,3 +37,20 @@ --- ## SU 03 (10.11.2023) + +### Lernziel + - Grundlegende Kenntnisse der Entwurfsmuster. + - Kenntnisse über häufig verwendete Entwurfsmuster. + - Überblick über die Entwicklung von Programmierwerkzeugen. + - Einfluss von Plattformen und Technologien. + - Wiederholung von SOLID vs STUPID + - Verstehen der Debugger-Benutzeroberfläche. + - Setzen von Breakpoints. + - Durchführung von Schritt-für-Schritt-Debugging. + - Beobachtung von Variablenwerten. + +### Erkenntnis + - Debugging wird total wichtig sein, um Fehler in unserem Gruppenprojekt zu finden und zu beheben. Das macht die Zusammenarbeit einfacher und stärkt unser Verständnis für den Code. Wenn wir das in Zukunft nutzen, wird der Code, den wir als Team entwickeln, viel besser werden. + +### Wiederholung + - Die Geschichte der Programmierwerkzeuge, insbesondere der Zeileneditoren, hat sich von einfachen Texteditoren wie ed und vi zu leistungsstarken modernen Tools wie Eclipse und Visual Studio Code entwickelt. Von grundlegenden Funktionen bis hin zum Komfort und der Flexibilität der aktuellen Editoren spiegelt diese Entwicklung die steigenden Anforderungen und technologischen Fortschritte in der Welt der Programmierung wider. diff --git a/Uebung1.java b/Uebung1.java new file mode 100644 index 0000000..2ef9308 --- /dev/null +++ b/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/Uebung2.java b/Uebung2.java new file mode 100644 index 0000000..d9c9b7c --- /dev/null +++ b/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; + } +}