From 09266228abf3384ca8181fce84e0dab3df0bba88 Mon Sep 17 00:00:00 2001 From: teridax Date: Wed, 19 Apr 2023 15:06:25 +0200 Subject: [PATCH] added tasks from blatt 3 --- .idea/.gitignore | 8 ++ .idea/Java-Programming.iml | 9 +++ .idea/misc.xml | 6 ++ .idea/modules.xml | 14 ++++ .idea/vcs.xml | 6 ++ GgtUndKgv/.gitignore | 29 +++++++ GgtUndKgv/GgtUndKgv.iml | 11 +++ GgtUndKgv/src/Main.java | 78 ++++++++++++++++++ GreogorianischerKalender/.gitignore | 29 +++++++ .../GreogorianischerKalender.iml | 11 +++ GreogorianischerKalender/src/Main.java | 14 ++++ Konto/.gitignore | 29 +++++++ Konto/Konto.iml | 11 +++ Konto/src/Konto.java | 35 ++++++++ Maximum/.gitignore | 29 +++++++ Maximum/Maximum.iml | 11 +++ Maximum/src/Main.java | 28 +++++++ Verzinsung/.gitignore | 29 +++++++ Verzinsung/Verzinsung.iml | 11 +++ Verzinsung/src/Main.java | 44 ++++++++++ Zaubern/.gitignore | 29 +++++++ Zaubern/Zaubern.iml | 11 +++ Zaubern/src/Main.java | 81 +++++++++++++++++++ 23 files changed, 563 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/Java-Programming.iml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 GgtUndKgv/.gitignore create mode 100644 GgtUndKgv/GgtUndKgv.iml create mode 100644 GgtUndKgv/src/Main.java create mode 100644 GreogorianischerKalender/.gitignore create mode 100644 GreogorianischerKalender/GreogorianischerKalender.iml create mode 100644 GreogorianischerKalender/src/Main.java create mode 100644 Konto/.gitignore create mode 100644 Konto/Konto.iml create mode 100644 Konto/src/Konto.java create mode 100644 Maximum/.gitignore create mode 100644 Maximum/Maximum.iml create mode 100644 Maximum/src/Main.java create mode 100644 Verzinsung/.gitignore create mode 100644 Verzinsung/Verzinsung.iml create mode 100644 Verzinsung/src/Main.java create mode 100644 Zaubern/.gitignore create mode 100644 Zaubern/Zaubern.iml create mode 100644 Zaubern/src/Main.java diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/Java-Programming.iml b/.idea/Java-Programming.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/Java-Programming.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..639900d --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..d21f443 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/GgtUndKgv/.gitignore b/GgtUndKgv/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/GgtUndKgv/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/GgtUndKgv/GgtUndKgv.iml b/GgtUndKgv/GgtUndKgv.iml new file mode 100644 index 0000000..9c8aa59 --- /dev/null +++ b/GgtUndKgv/GgtUndKgv.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/GgtUndKgv/src/Main.java b/GgtUndKgv/src/Main.java new file mode 100644 index 0000000..a515445 --- /dev/null +++ b/GgtUndKgv/src/Main.java @@ -0,0 +1,78 @@ +import javax.swing.*; + +class Rechnen { + static int ggt(int x, int y) { + if (x == 0) + return y; + + return ggt(x, y % x); + } + + static int kgv(int x, int y) { + return (x * y) / ggt(x, y); + } +} + +public class Main { + + public static void main(String[] args) { + while (true) { + String z1_S = null; + String z2_S = null; + int z1 = 0; + int z2 = 0; + z1_S = JOptionPane.showInputDialog("Bitte erste Zahl (positiv und ganz)"); + if (z1_S == null) break; + z2_S = JOptionPane.showInputDialog("Bitte zweite ganze Zahl (positiv und ganz)"); + if (z2_S == null) break; + try { + z1 = Integer.parseInt(z1_S); + z2 = Integer.parseInt(z2_S); + } catch (NumberFormatException e) { + JOptionPane.showMessageDialog(null, "Bitte korrekte Zahlen eingeben"); + continue; + } + String action = getAction_Dialog("KGV berechnen", "GGT berechnen"); + if (action == null) + break; + try { + switch (action) { + case "KGV berechnen": + JOptionPane.showMessageDialog(null, "KGV von " + z1 + ", " + z2 + "=" + Rechnen.kgv(z1, z2)); + break; + case "GGT berechnen": + JOptionPane.showMessageDialog(null, "GGT von " + z1 + ", " + z2 + "=" + Rechnen.ggt(z1, z2)); + break; + } + } catch (IllegalArgumentException e) { + JOptionPane.showMessageDialog(null, "Bitte geben Sie positive Zahlen ein!"); + continue; + } + } + JOptionPane.showMessageDialog(null, "Danke und auf Wiedersehen!"); + System.exit(0); + } + + private static String getAction_Dialog(String... actions) { + JRadioButton[] buttons = new JRadioButton[actions.length]; + ButtonGroup group = new ButtonGroup(); + for (int i = 0; i < actions.length; i++) { + buttons[i] = new JRadioButton(actions[i]); + group.add(buttons[i]); + } + buttons[0].setSelected(true); + Object[] message = buttons; + Object[] options = { "OK", "Abbruch" }; + int n = JOptionPane.showOptionDialog(new JFrame(), message, "Aktionswahl", + JOptionPane.YES_NO_OPTION, + JOptionPane.QUESTION_MESSAGE, null, options, options[0]); + if (n == JOptionPane.OK_OPTION) { + for (int i = 0; i < actions.length; i++) { + if (buttons[i].isSelected()) { + return actions[i]; + } + } + } + return null; + } +} \ No newline at end of file diff --git a/GreogorianischerKalender/.gitignore b/GreogorianischerKalender/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/GreogorianischerKalender/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/GreogorianischerKalender/GreogorianischerKalender.iml b/GreogorianischerKalender/GreogorianischerKalender.iml new file mode 100644 index 0000000..9c8aa59 --- /dev/null +++ b/GreogorianischerKalender/GreogorianischerKalender.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/GreogorianischerKalender/src/Main.java b/GreogorianischerKalender/src/Main.java new file mode 100644 index 0000000..ba3d3ad --- /dev/null +++ b/GreogorianischerKalender/src/Main.java @@ -0,0 +1,14 @@ +public class Main { + + private static boolean isLeapYearGregorianCalendar(int year) { + int decade = year / 10; + return decade % 4 != 0; + } + + public static void main(String[] args) { + System.out.println("is leap year: 1904: " + isLeapYearGregorianCalendar(1904)); + System.out.println("is leap year: 1003: " + isLeapYearGregorianCalendar(1003)); + System.out.println("is leap year: 1422: " + isLeapYearGregorianCalendar(1422)); + System.out.println("is leap year: 2022: " + isLeapYearGregorianCalendar(2022)); + } +} \ No newline at end of file diff --git a/Konto/.gitignore b/Konto/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/Konto/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/Konto/Konto.iml b/Konto/Konto.iml new file mode 100644 index 0000000..9c8aa59 --- /dev/null +++ b/Konto/Konto.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Konto/src/Konto.java b/Konto/src/Konto.java new file mode 100644 index 0000000..b6fff52 --- /dev/null +++ b/Konto/src/Konto.java @@ -0,0 +1,35 @@ +public class Konto { + + private double guthaben; + + void abheben(double betrag) { + var neuesGuthaben = guthaben - betrag; + if (neuesGuthaben < 0) { + System.out.println("Sie konnten nur " + guthaben + " abheben"); + this.guthaben = 0; + return; + } + guthaben = neuesGuthaben; + } + + void einzahlen(double betrag) { + if (betrag < 0) { + System.err.println("no"); + return; + } + this.guthaben += betrag; + } + + double getGuthaben() { + return guthaben; + } + + public static void main(String[] args) { + var konto = new Konto(); + + konto.einzahlen(134); + konto.einzahlen(0.345); + System.out.println("guthaben: " + konto.getGuthaben()); + konto.abheben(1e6); + } +} diff --git a/Maximum/.gitignore b/Maximum/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/Maximum/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/Maximum/Maximum.iml b/Maximum/Maximum.iml new file mode 100644 index 0000000..9c8aa59 --- /dev/null +++ b/Maximum/Maximum.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Maximum/src/Main.java b/Maximum/src/Main.java new file mode 100644 index 0000000..0d332a2 --- /dev/null +++ b/Maximum/src/Main.java @@ -0,0 +1,28 @@ +public class Main { + + static int max(int a, int b) { + int max = a > b ? a : b; + System.out.println("max: " + max); + return max; + } + + static int max(int a, int b, int c) { + if (a < b) { + return b > c ? c : a; + } + return a > c ? a : c; + } + + static double max(double a, double b, double c) { + if (a < b) { + return b > c ? c : a; + } + return a > c ? a : c; + } + + public static void main(String[] args) { + System.out.println(max(2, 3)); + System.out.println(max(5, 49, -3)); + System.out.println(max(0.2345, Math.PI, 99.23)); + } +} \ No newline at end of file diff --git a/Verzinsung/.gitignore b/Verzinsung/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/Verzinsung/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/Verzinsung/Verzinsung.iml b/Verzinsung/Verzinsung.iml new file mode 100644 index 0000000..9c8aa59 --- /dev/null +++ b/Verzinsung/Verzinsung.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Verzinsung/src/Main.java b/Verzinsung/src/Main.java new file mode 100644 index 0000000..bca7a5d --- /dev/null +++ b/Verzinsung/src/Main.java @@ -0,0 +1,44 @@ +import javax.swing.*; + +public class Main { + + static double linearZins(double kp, double zs, int n) { + double k = kp; + + for (int i = 0; i < n; i++) { + k += kp * zs; + } + + return k; + } + + static double expZins(double kp, double zs, int n) { + double k = kp; + + for (int i = 0; i < n; i++) { + k += k * zs; + } + + return k; + } + + static double enterUnsigendDouble(String message) { + while (true) { + try { + double value = Double.parseDouble(JOptionPane.showInputDialog(message)); + if (value >= 0.0) { + return value; + } + } catch (Exception e) { + System.out.println("not a number"); + } + } + } + + public static void main(String[] args) { + int n = (int) enterUnsigendDouble("Iterationen: "); + double kp = enterUnsigendDouble("Kapital: "); + double zs = enterUnsigendDouble("Zinssatz: "); + System.out.println(linearZins(kp, zs, n) + " / " + expZins(kp, zs, n)); + } +} \ No newline at end of file diff --git a/Zaubern/.gitignore b/Zaubern/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/Zaubern/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/Zaubern/Zaubern.iml b/Zaubern/Zaubern.iml new file mode 100644 index 0000000..9c8aa59 --- /dev/null +++ b/Zaubern/Zaubern.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Zaubern/src/Main.java b/Zaubern/src/Main.java new file mode 100644 index 0000000..73060d0 --- /dev/null +++ b/Zaubern/src/Main.java @@ -0,0 +1,81 @@ +import java.util.Random; + +public class Main { + + enum Zauberspruch { + ENTWAFFNUNGSZAUBER, + BELEUCHTUNGSZAUBER, + SCHWEBEZAUBER, + AUFRUFEZAUBER, + VERDUNKLUNGSZAUBER, + SCHUTZZAUBER, + VERKLEINERUNGSZAUBER, + } + + private static int anzahlZauber; + + private static void printSpellCount() { + System.out.println("anzahl Zauber: " + anzahlZauber); + } + + //hier kommt Ihr Enum hin + public static void main(String[] args) { + System.out.println("Harry Potter lernen seine Zaubersprüche und deren Bedeutung"); + System.out.println("----------------------------------------------------------\n"); + zauber(Zauberspruch.BELEUCHTUNGSZAUBER); + zauber(Zauberspruch.SCHUTZZAUBER); + Zauberspruch faulerZauber = Zauberspruch.AUFRUFEZAUBER; + zauber(faulerZauber); + zauber(zufaelligerZauber()); + printSpellCount(); + } + + public static void zauber(Zauberspruch zauber) { + switch (zauber) { + case ENTWAFFNUNGSZAUBER -> { + anzahlZauber ++; + System.out.println("Expelliarmus!"); + System.out.println("Sprachliche Herkunft: lat. expellere = vertreiben; arma = Waffen"); + System.out.println("Bedeutung: Mit diesem Zauberspruch wird einem Gegner der Zauberstab aus der Hand entrissen, damit er nicht zaubern kann.\n"); + } + case BELEUCHTUNGSZAUBER -> { + anzahlZauber ++; + System.out.println("Lumos!"); + System.out.println("Sprachliche Herkunft: lat. frz. lumière = Licht"); + System.out.println("Bedeutung: Lässt den Zauberstab aufleuchten, um Licht ins Dunkle zu bringen.\n"); + } + case SCHWEBEZAUBER -> { + anzahlZauber ++; + System.out.println("Wingardium Leviosa!"); + System.out.println("Sprachliche Herkunft: engl. wing = Flügel; lat. arduus hoch/engl. arduous = schwer besteigbar, steil; lat. levis = leicht"); + System.out.println("Bedeutung: Lässt Gegenstände oder Personen durch die Luft schweben. Besser nicht draußen bei starkem Wind benutzen!\n"); + } + case AUFRUFEZAUBER -> { + anzahlZauber ++; + System.out.println("Accio!"); + System.out.println("Sprachliche Herkunft: lateinisch accio ‚ich rufe herbei‘"); + System.out.println("Bedeutung: Dieser Zauber wird benutzt, um Gegenstände zu sich fliegen zu lassen. Fernbedienungen hassen diesen Trick\n"); + } + case VERDUNKLUNGSZAUBER -> { + anzahlZauber ++; + System.out.println("Nox!"); + System.out.println("Sprachliche Herkunft: lat. nox = Nacht"); + System.out.println("Bedeutung: Macht einen durch Lumos leuchtenden Zauberstab wieder aus.\n"); + } + case SCHUTZZAUBER -> { + anzahlZauber ++; + System.out.println("Expecto Patronum!"); + System.out.println("Sprachliche Herkunft: lat. für ich erwarte den Schutzgeist"); + System.out.println("Bedeutung: Beschwört einen Schutzgeist, genannt „Patronus“. Der Patronus schützt vor Gefahren wie Todessern. Kann aber nicht vor Regen, dem Zuspätkommen oder Heißhunger schützen!\n"); + } + default -> { + anzahlZauber ++; + System.out.println("Fauler Zauber\n"); + } + } + } + public static Zauberspruch zufaelligerZauber() { + Random random = new Random(); + return Zauberspruch.values()[random.nextInt( Zauberspruch.values().length) ]; + } +} \ No newline at end of file