From 6d77e2141a3c1f793e310eb46be10c7480c2ead4 Mon Sep 17 00:00:00 2001 From: fdai7487 Date: Fri, 10 Feb 2023 16:10:25 +0100 Subject: [PATCH] refactoring: added final method DigitalTechnik 1-3 --- src/digital/technik/DigitalTechnik.java | 211 ++++++++++++++++++------ 1 file changed, 161 insertions(+), 50 deletions(-) diff --git a/src/digital/technik/DigitalTechnik.java b/src/digital/technik/DigitalTechnik.java index 2faaeb5..b89bba8 100644 --- a/src/digital/technik/DigitalTechnik.java +++ b/src/digital/technik/DigitalTechnik.java @@ -1,76 +1,187 @@ package digital.technik; -public class DigitalTechnik { +import java.util.Scanner; +public class DigitalTechnik { public DigitalTechnik() { } - public static void main(String[] args) { - System.out.println("DigitalTechnik1: \n"); - final DigitalTechnik1 digitalTechnik1 = new DigitalTechnik1(); - digitalTechnik1.start(); - - System.out.println("\n"); - - System.out.println("DigitalTechnik2: \n"); - final DigitalTechnik2 digitalTechnik2 = new DigitalTechnik2(); - digitalTechnik2.start(); - - System.out.println("\n"); + void digitalTechnik1() { + Scanner sc = new Scanner(System.in); + + System.out.println("Willkommen"); + System.out.println("Bitte wählen Sie ein Thema (Zahl):"); + System.out.println("1. Information"); + System.out.println("2. Bit"); + System.out.println("3. Codes"); + System.out.println("4. Huffmann-Codierung"); + + int choice = sc.nextInt(); + sc.nextLine(); + + if (choice == 1) { + System.out.println(""" + Information: Kommunizierte oder empfangene Daten, die + Ungewissheit über ein bestimmtes Fakt oder einen Sachverhalt\s + auflöst."""); + + } else if (choice == 2) { + System.out.println(""" + Bit ist die Kurzform für binary digit.\s + Lateinisch bina bedeutet doppelt oder zwei. + Ein Bit kann zwei Werte annehmen: 0 und 1. + Das Bit ist die kleinste Informationseinheit. + Beipsiele: + Spannung vorhanden, z.B. 5V (1) oder nicht (0) + Schalter geschlossen (1) oder offen (0) + Material magnetisiert (1) oder nicht (0) + """); + + } else if (choice == 3) { + System.out.println(""" + Ein Code ist eine Abbildungsvorschrift für eindeutige\s + Zuordnung (Codierung) von + Symbolen einer Urmenge zu + Symbolen einer Bildmenge. + Die Zuordnung muss nicht (eindeutig) umkehrbar sein! + """); + + } else if (choice == 4) { + System.out.println(""" + Die Huffmann Codierung ist ein Codierungsverfahren, das\s + zu einem optimalen Code mit möglichst kleiner mittlerer Codelänge führt! + """); + + } else { + System.out.println("Ungültige Eingabe!"); + } + } + void digitalTechnik2() { + Scanner sc = new Scanner(System.in); - System.out.println("DigitalTechnik3: \n"); - final DigitalTechnik3 digitalTechnik3 = new DigitalTechnik3(); - digitalTechnik3.start(); + System.out.println("Willkommen"); + System.out.println("Bitte wählen Sie ein Thema (Zahl):"); + System.out.println("1. Hexadezimale Zahlen"); + System.out.println("2. Umrechnung dezimal in binär"); + System.out.println("3. Umrechnung dezimal in hexadezimal"); + System.out.println("4. Einerkomplement"); + System.out.println("5. Zweierkomplement"); - System.out.println("\n"); + int choice = sc.nextInt(); + sc.nextLine(); - System.out.println("DigitalTechnik4: \n"); - final DigitalTechnik4 digitalTechnik4 = new DigitalTechnik4(); - digitalTechnik4.start(); + if (choice == 1) { - System.out.println("\n"); + System.out.println(""" + Hexadezimale Zahlen (R = 16) werden häufig zur kompakten + Darstellung von Binärzahlen verwendet. + Es werden die Ziffern {0, 1, 2, . . . , 9,A,B,C, D,E, F} verwendet + (A bis F repräsentieren die Wertigkeit 10 bis 15) + Jedes Hexadezimale Digit kann mit genau 4 Bit dargestellt + werden"""); - System.out.println("DigitalTechnik5: \n"); - final DigitalTechnik5 digitalTechnik5 = new DigitalTechnik5(); - digitalTechnik5.start(); + } else if (choice == 2) { + System.out.println(""" + Um eine dezimale Zahl in eine binäre Zahl umzuwandeln, kann man den folgenden Prozess verwenden: - System.out.println("\n"); + Die dezimale Zahl durch 2 teilen und den Quotienten notieren. - System.out.println("DigitalTechnik6: \n"); - final DigitalTechnik6 digitalTechnik6 = new DigitalTechnik6(); - digitalTechnik6.start(); + Den Rest des Teilens notieren und ihn als die letzte Ziffer der binären Zahl betrachten. - System.out.println("\n"); + Wiederholen Schritt 1 und 2 mit dem Quotienten, bis der Quotient 0 ist. - System.out.println("DigitalTechnik7: \n"); - final DigitalTechnik7 digitalTechnik7 = new DigitalTechnik7(); - digitalTechnik7.start(); + Die Restschritte in umgekehrter Reihenfolge zusammensetzen, um die binäre Zahl zu erhalten."""); - System.out.println("\n"); + } else if (choice == 3) { + System.out.println(""" + Um eine dezimale Zahl in eine hexadezimale Zahl umzuwandeln, kann man den folgenden Prozess verwenden: - System.out.println("DigitalTechnik8: \n"); - final DigitalTechnik8 digitalTechnik8 = new DigitalTechnik8(); - digitalTechnik8.start(); + Die dezimale Zahl durch 16 teilen und den Quotienten notieren. + Den Rest des Teilens notieren und ihn als die letzte Ziffer der hexadezimalen Zahl betrachten. - System.out.println("\n"); + Wiederholen Schritt 1 und 2 mit dem Quotienten, bis der Quotient 0 ist. - System.out.println("DigitalTechnik9: \n"); - final DigitalTechnik9 digitalTechnik9 = new DigitalTechnik9(); - digitalTechnik9.start(); + Die Restschritte in umgekehrter Reihenfolge zusammensetzen, um die hexadezimale Zahl zu erhalten."""); + } else if (choice == 4) { + System.out.println(""" + Ein Einerkomplement ist ein Zahlensystem, das verwendet wird, um negative Werte in einem Computer darzustellen.\s + Es basiert auf der Idee, dass jede Zahl in einem binären System (bestehend aus 1en und 0en) ihre negativ vorzeichenbehaftete Entsprechung hat. + Eine negative Zahl wird durch das Invertieren aller Bits (Änderung von 1 zu 0 und von 0 zu 1) einer positiven Zahl und das Hinzufügen 1 zum Ergebnis dargestellt."""); - System.out.println("\n"); + } else if (choice == 5) { + System.out.println(""" + Das Zweierkomplement ist eine Methode zur Darstellung von negativen Werten in einem Computer. Es ermöglicht es, negative und positive Werte mit der gleichen Anzahl von Bits zu repräsentieren. - System.out.println("DigitalTechnik10: \n"); - final DigitalTechnik10 digitalTechnik10 = new DigitalTechnik10(); - digitalTechnik10.start(); + In einem Zweierkomplement-System, wird die höchstwertige Bit (die sogenannte "Vorzeichenbit") verwendet, um das Vorzeichen einer Zahl anzugeben. Eine 0 bedeutet eine positive Zahl, während eine 1 eine negative Zahl darstellt. + Die übrigen Bits repräsentieren den Wert der Zahl. Um eine negative Zahl zu berechnen, werden die Bits der positiven Entsprechung invertiert und 1 hinzugefügt."""); + } else { + System.out.println("Ungültige Eingabe!"); + } + } + void digitalTechnik3() { + Scanner sc = new Scanner(System.in); + + System.out.println("Willkommen"); + System.out.println("Bitte wählen Sie ein Thema (Zahl):"); + System.out.println("1. Boolsche Algebra"); + System.out.println("2. Minterme"); + System.out.println("3. Maxterme"); + System.out.println("4. KDNF"); + System.out.println("5. KKNF"); + System.out.println("6. DNF"); + System.out.println("7. KNF"); + + + int choice = sc.nextInt(); + sc.nextLine(); + + if (choice == 1) { + System.out.println(""" + In der Digitaltechnik ist die boolsche Algebra eine spezielle Form der Algebra, \n + die sich mit logischen Ausdrücken und Operationen beschäftigt. Sie wird hauptsächlich in der Schaltungstechnik und der Informatik verwendet. \n + Die Grundelemente der boolschen Algebra sind die logischen Variablen "wahr" (1) und "falsch" (0) sowie die logischen Operatoren "und" (∧), "oder" (∨), "nicht" (¬) und "gleich" (⇔). \n + Mit diesen Operatoren können komplexe logische Ausdrücke erstellt und ausgewertet werden, die in digitalen Schaltungen verwendet werden, + + wie z.B. in Computern, Mobiltelefonen und anderen elektronischen Geräten. + """); + + } else if (choice == 2) { + System.out.println(""" + In der Digitaltechnik werden Minterme verwendet, um eine bestimmte Funktion zu implementieren.\s + Minterme beziehen sich auf die kleinsten logischen Funktionen, die in einem digitalen System verwendet werden können.\s + Sie bestehen aus einer oder mehreren Eingängen und einem Ausgang und können durch eine Wahrheitstabelle oder eine Boolean-Funktion beschrieben werden."""); + + } else if (choice == 3) { + System.out.println("In der Digitaltechnik sind Maxterme die negierten Minterme. Ein Maxterm ist eine logische Funktion, die durch die Negation eines Minterms beschrieben wird. \n" + + "Maxterme haben die gleiche Anzahl an Eingängen wie Minterme, aber der Ausgang eines Maxterms ist das Gegenteil des Ausgangs eines entsprechenden Minterms."); + + } else if (choice == 4) { + System.out.println("Die kanonische disjunktive Normalform (KDNF) ist eine Darstellung einer boolschen Funktion als Summe der Produkte der Minterme."); + + } else if (choice == 5) { + System.out.println("Die kanonische konjunktive Normalform (KKNF) ist eine Darstellung einer boolschen Funktion als Produkt der Summen der Maxterme."); + + } else if (choice == 6) { + System.out.println(""" + Treten nicht alle Variablen in den Mintermen auf, + spricht man von der Disjunktiven + Normalform DNF. + """); + + } else if (choice == 7) { + System.out.println(""" + Treten nicht alle Variablen in den Maxtermen auf, + spricht man von der nicht-kanonischen Konjunktiven + Normalform KNF. + """); + + } else { + System.out.println("Ungültige Eingabe!"); + } + } - System.out.println("\n"); - System.out.println("DigitalTechnik11: \n"); - final DigitalTechnik11 digitalTechnik11 = new DigitalTechnik11(); - digitalTechnik11.start(); - } -} +} \ No newline at end of file