diff --git a/LernProgramm/ProgrammMain.java b/LernProgramm/ProgrammMain.java index e366f97..1c82907 100644 --- a/LernProgramm/ProgrammMain.java +++ b/LernProgramm/ProgrammMain.java @@ -5,88 +5,152 @@ import java.util.Scanner; public class ProgrammMain { - //Aufzurufende Funktionen - - // Karteikarten - - public static void Karteikarten(){ - - - try (Scanner input = new Scanner(System.in)) { - - - String[][] karteikarten = {{"Was ist die Hauptstadt von Deutschland?", "Berlin"}, - {"Welches ist der größtes Planet in unserem Sonnensystem?", "Jupiter"}, - {"Wer hat die Mona Lisa gemalt?", "Leonardo da Vinci"}, - - //Sonstige Fragen - }; - - int counter = 0; - for (String[] karteikarte : karteikarten) { - System.out.println(karteikarte[0]); - String answer = input.nextLine(); - if (answer.equalsIgnoreCase(karteikarte[1])) { - System.out.println("Korrekt!"); - counter++; - } else { - System.out.println("Leider falsch. Die richtige Antwort wäre: " + karteikarte[1]); - } - } - System.out.println("Dein Punktestand ist " + counter + " von insgesamt " + karteikarten.length); - } + // Aufzurufende Funktionen + + // Karteikarten + + public static void Karteikarten() { + + try (Scanner input = new Scanner(System.in)) { + + String[][] karteikarten = { { "Was ist die Hauptstadt von Deutschland?", "Berlin" }, + { "Welches ist der größtes Planet in unserem Sonnensystem?", "Jupiter" }, + { "Wer hat die Mona Lisa gemalt?", "Leonardo da Vinci" }, + + // Sonstige Fragen + }; + + int counter = 0; + for (String[] karteikarte : karteikarten) { + System.out.println(karteikarte[0]); + String answer = input.nextLine(); + if (answer.equalsIgnoreCase(karteikarte[1])) { + System.out.println("Korrekt!"); + counter++; + } else { + System.out.println("Leider falsch. Die richtige Antwort wäre: " + karteikarte[1]); + } } - - + System.out.println("Dein Punktestand ist " + counter + " von insgesamt " + karteikarten.length); + } + } + // Quizz - - public static void Quizz() { - Random rand = new Random(); - try (Scanner scanner = new Scanner(System.in)) { - String[][] questions = { - {"Welche Farbe hat ein Bananen?", "A) Gelb", "B) Grün", "C) Blau", "D) Rot", "A"}, - {"Wie viele Beine hat eine Spinne?", "A) 4", "B) 6", "C) 8", "D) 10", "C"}, - {"Wer hat die Formel E=mc² entwickelt?", "A) Isaac Newton", "B) Albert Einstein", "C) Galileo Galilei", "D) Stephen Hawking", "B"}, - {"Welches ist der größte Planet im Sonnensystem?", "A) Merkur", "B) Venus", "C) Erde", "D) Jupiter", "D"} - //Sonstige Fragen - }; - int questionIndex = rand.nextInt(questions.length); - String[] currentQuestion = questions[questionIndex]; - - System.out.println(currentQuestion[0]); - System.out.println(currentQuestion[1]); - System.out.println(currentQuestion[2]); - System.out.println(currentQuestion[3]); - System.out.println(currentQuestion[4]); - String answer = scanner.nextLine(); - - if (answer.equalsIgnoreCase(currentQuestion[5])) { - System.out.println("Richtig!"); - } else { - System.out.println("Falsch!"); - } - } - } - - + + public static void Quizz() { + Random rand = new Random(); + try (Scanner scanner = new Scanner(System.in)) { + String[][] questions = { + { "Welche Farbe hat ein Bananen?", "A) Gelb", "B) Grün", "C) Blau", "D) Rot", "A" }, + { "Wie viele Beine hat eine Spinne?", "A) 4", "B) 6", "C) 8", "D) 10", "C" }, + { "Wer hat die Formel E=mc² entwickelt?", "A) Isaac Newton", "B) Albert Einstein", + "C) Galileo Galilei", "D) Stephen Hawking", "B" }, + { "Welches ist der größte Planet im Sonnensystem?", "A) Merkur", "B) Venus", "C) Erde", + "D) Jupiter", "D" } + // Sonstige Fragen + }; + int questionIndex = rand.nextInt(questions.length); + String[] currentQuestion = questions[questionIndex]; + + System.out.println(currentQuestion[0]); + System.out.println(currentQuestion[1]); + System.out.println(currentQuestion[2]); + System.out.println(currentQuestion[3]); + System.out.println(currentQuestion[4]); + String answer = scanner.nextLine(); + + if (answer.equalsIgnoreCase(currentQuestion[5])) { + System.out.println("Richtig!"); + } else { + System.out.println("Falsch!"); + } + } + } + // Prinmbis100 - public static void PrimBis100() { - for (int i = 2; i <= 100; i++) { - boolean isPrime = true; - for (int j = 2; j < i; j++) { - if (i % j == 0) { - isPrime = false; - break; - } - } - if (isPrime) { - System.out.print(i + " "); - } - } - } - - - + public static void PrimBis100() { + for (int i = 2; i <= 100; i++) { + boolean isPrime = true; + for (int j = 2; j < i; j++) { + if (i % j == 0) { + isPrime = false; + break; + } + } + if (isPrime) { + System.out.print(i + " "); + } + } + } + + // Binärinverter + + public static void Binaerrechner() { + + try (Scanner scanner = new Scanner(System.in)) { + System.out.print("Gebe den ersten Binärcode ein: "); + String binaryCode1 = scanner.nextLine(); + System.out.print("Gebe den zweiten Binärcode ein: "); + String binaryCode2 = scanner.nextLine(); + System.out.print("Gebe die gewünschte Operation ein (+, -, *, /): "); + char operation = scanner.next().charAt(0); + + int result = calculate(binaryCode1, binaryCode2, operation); + System.out.println("Das Ergebnis ist: " + result); + } + } + + public static int calculate(String binaryCode1, String binaryCode2, char operation) { + + int decimal1 = binaryToDecimal(binaryCode1); + int decimal2 = binaryToDecimal(binaryCode2); + + int result = 0; + switch (operation) { + case '+': + result = decimal1 + decimal2; + break; + case '-': + result = decimal1 - decimal2; + break; + case '*': + result = decimal1 * decimal2; + break; + case '/': + result = decimal1 / decimal2; + break; + default: + System.out.println("Ungültige Operation! Bitte wähle +, -, * oder /."); + return 0; + } + return decimalToBinary(result); + } + + public static int binaryToDecimal(String binaryCode) { + + int decimal = 0; + for (int i = binaryCode.length() - 1; i >= 0; i--) { + char currentChar = binaryCode.charAt(i); + if (currentChar == '1') { + decimal += Math.pow(2, binaryCode.length() - i - 1); + } else if (currentChar != '0') { + System.out.println("Ungültiger Binärcode! Bitte gebe nur Nullen und Einsen ein."); + return 0; + } + } + return decimal; + } + + public static int decimalToBinary(int decimal) { + int binary = 0; + int power = 0; + while (decimal > 0) { + binary += (decimal % 2) * (int) Math.pow(10, power); + decimal /= 2; + power++; + } + return binary; + } public static void main(String[] args) { @@ -99,35 +163,34 @@ public class ProgrammMain { try (Scanner einleser = new Scanner(System.in)) { int wahl = einleser.nextInt(); - switch(wahl) { + switch (wahl) { case 1: Karteikarten(); break; case 2: Quizz(); - //Funktion + // Funktion break; case 3: PrimBis100(); - //Funktion + // Funktion break; case 4: - System.out.println("Diese Funktion wird derzeit entwickelt! Hab bitte etwas Geduld oder sei kreativ und erstelle dir selber eine Funktion!"); - //Funktion + Binaerrechner(); + // Funktion break; case 5: - System.out.println("Diese Funktion wird derzeit entwickelt! Hab bitte etwas Geduld oder sei kreativ und erstelle dir selber eine Funktion!"); - //Funktion + System.out.println( + "Diese Funktion wird derzeit entwickelt! Hab bitte etwas Geduld oder sei kreativ und erstelle dir selber eine Funktion!"); + // Funktion break; - - default: System.out.println("Ungültige Eingabe, versuche es bitte erneut!\n"); + + default: + System.out.println("Ungültige Eingabe, versuche es bitte erneut!\n"); } } - - - + System.out.println("Programm beendet\n"); - } } diff --git a/LernProgramm/testProgramm.java b/LernProgramm/testProgramm.java index e845ebe..48501cf 100644 --- a/LernProgramm/testProgramm.java +++ b/LernProgramm/testProgramm.java @@ -25,5 +25,10 @@ class testProgramm { assertEquals("2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 ", out.toString()); } + @Test + public void testAddition() { + int result = ProgrammMain.calculate("1010", "1011", '+'); + assertEquals(10101, result); + } } diff --git a/bin/LernProgramm/ProgrammMain.class b/bin/LernProgramm/ProgrammMain.class index bb5bb36..cdeca86 100644 Binary files a/bin/LernProgramm/ProgrammMain.class and b/bin/LernProgramm/ProgrammMain.class differ diff --git a/bin/LernProgramm/testProgramm.class b/bin/LernProgramm/testProgramm.class index 3bb2c47..583d3d5 100644 Binary files a/bin/LernProgramm/testProgramm.class and b/bin/LernProgramm/testProgramm.class differ