fdai7487
2 years ago
13 changed files with 160 additions and 577 deletions
-
6.idea/vcs.xml
-
154.idea/workspace.xml
-
60src/digital/technik/DigitalTechnik1.java
-
38src/digital/technik/DigitalTechnik10.java
-
37src/digital/technik/DigitalTechnik11.java
-
75src/digital/technik/DigitalTechnik2.java
-
70src/digital/technik/DigitalTechnik3.java
-
55src/digital/technik/DigitalTechnik4.java
-
55src/digital/technik/DigitalTechnik5.java
-
45src/digital/technik/DigitalTechnik6.java
-
43src/digital/technik/DigitalTechnik7.java
-
57src/digital/technik/DigitalTechnik8.java
-
42src/digital/technik/DigitalTechnik9.java
@ -0,0 +1,6 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<project version="4"> |
||||
|
<component name="VcsDirectoryMappings"> |
||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" /> |
||||
|
</component> |
||||
|
</project> |
@ -0,0 +1,154 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<project version="4"> |
||||
|
<component name="ChangeListManager"> |
||||
|
<list default="true" id="704d82ba-9aac-4351-be05-2a3266ddaa41" name="Changes" comment="refactoring: added final method DigitalTechnik 10-11"> |
||||
|
<change beforePath="$PROJECT_DIR$/src/digital/technik/DigitalTechnik1.java" beforeDir="false" /> |
||||
|
<change beforePath="$PROJECT_DIR$/src/digital/technik/DigitalTechnik10.java" beforeDir="false" /> |
||||
|
<change beforePath="$PROJECT_DIR$/src/digital/technik/DigitalTechnik11.java" beforeDir="false" /> |
||||
|
<change beforePath="$PROJECT_DIR$/src/digital/technik/DigitalTechnik2.java" beforeDir="false" /> |
||||
|
<change beforePath="$PROJECT_DIR$/src/digital/technik/DigitalTechnik3.java" beforeDir="false" /> |
||||
|
<change beforePath="$PROJECT_DIR$/src/digital/technik/DigitalTechnik4.java" beforeDir="false" /> |
||||
|
<change beforePath="$PROJECT_DIR$/src/digital/technik/DigitalTechnik5.java" beforeDir="false" /> |
||||
|
<change beforePath="$PROJECT_DIR$/src/digital/technik/DigitalTechnik6.java" beforeDir="false" /> |
||||
|
<change beforePath="$PROJECT_DIR$/src/digital/technik/DigitalTechnik7.java" beforeDir="false" /> |
||||
|
<change beforePath="$PROJECT_DIR$/src/digital/technik/DigitalTechnik8.java" beforeDir="false" /> |
||||
|
<change beforePath="$PROJECT_DIR$/src/digital/technik/DigitalTechnik9.java" beforeDir="false" /> |
||||
|
</list> |
||||
|
<option name="SHOW_DIALOG" value="false" /> |
||||
|
<option name="HIGHLIGHT_CONFLICTS" value="true" /> |
||||
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> |
||||
|
<option name="LAST_RESOLUTION" value="IGNORE" /> |
||||
|
</component> |
||||
|
<component name="Git.Settings"> |
||||
|
<option name="RECENT_BRANCH_BY_REPOSITORY"> |
||||
|
<map> |
||||
|
<entry key="$PROJECT_DIR$" value="main" /> |
||||
|
</map> |
||||
|
</option> |
||||
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> |
||||
|
</component> |
||||
|
<component name="MarkdownSettingsMigration"> |
||||
|
<option name="stateVersion" value="1" /> |
||||
|
</component> |
||||
|
<component name="ProjectId" id="2LXjJ2IZJRB4QcF4IIqK8succat" /> |
||||
|
<component name="ProjectLevelVcsManager" settingsEditedManually="true" /> |
||||
|
<component name="ProjectViewState"> |
||||
|
<option name="hideEmptyMiddlePackages" value="true" /> |
||||
|
<option name="showLibraryContents" value="true" /> |
||||
|
</component> |
||||
|
<component name="PropertiesComponent"><![CDATA[{ |
||||
|
"keyToString": { |
||||
|
"RunOnceActivity.OpenProjectViewOnStart": "true", |
||||
|
"RunOnceActivity.ShowReadmeOnStart": "true", |
||||
|
"WebServerToolWindowFactoryState": "false", |
||||
|
"last_opened_file_path": "C:/Users/arthu/IdeaProjects/gruppenprojekt/src/digital/technik", |
||||
|
"nodejs_package_manager_path": "npm" |
||||
|
} |
||||
|
}]]></component> |
||||
|
<component name="RecentsManager"> |
||||
|
<key name="CopyFile.RECENT_KEYS"> |
||||
|
<recent name="C:\Users\arthu\IdeaProjects\gruppenprojekt\src\digital\technik" /> |
||||
|
</key> |
||||
|
</component> |
||||
|
<component name="RunManager"> |
||||
|
<configuration name="Start" type="Application" factoryName="Application" nameIsGenerated="true"> |
||||
|
<option name="MAIN_CLASS_NAME" value="digital.technik.Start" /> |
||||
|
<extension name="coverage"> |
||||
|
<pattern> |
||||
|
<option name="PATTERN" value="digital.technik.*" /> |
||||
|
<option name="ENABLED" value="true" /> |
||||
|
</pattern> |
||||
|
</extension> |
||||
|
<method v="2"> |
||||
|
<option name="Make" enabled="true" /> |
||||
|
</method> |
||||
|
</configuration> |
||||
|
<configuration default="true" type="JetRunConfigurationType"> |
||||
|
<module name="gruppenprojekt" /> |
||||
|
<method v="2"> |
||||
|
<option name="Make" enabled="true" /> |
||||
|
</method> |
||||
|
</configuration> |
||||
|
<configuration default="true" type="KotlinStandaloneScriptRunConfigurationType"> |
||||
|
<module name="gruppenprojekt" /> |
||||
|
<option name="filePath" /> |
||||
|
<method v="2"> |
||||
|
<option name="Make" enabled="true" /> |
||||
|
</method> |
||||
|
</configuration> |
||||
|
</component> |
||||
|
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" /> |
||||
|
<component name="TaskManager"> |
||||
|
<task active="true" id="Default" summary="Default task"> |
||||
|
<changelist id="704d82ba-9aac-4351-be05-2a3266ddaa41" name="Changes" comment="" /> |
||||
|
<created>1676024252628</created> |
||||
|
<option name="number" value="Default" /> |
||||
|
<option name="presentableId" value="Default" /> |
||||
|
<updated>1676024252628</updated> |
||||
|
<workItem from="1676024254897" duration="47000" /> |
||||
|
<workItem from="1676025736889" duration="5744000" /> |
||||
|
<workItem from="1676033301544" duration="2260000" /> |
||||
|
<workItem from="1676041074750" duration="39000" /> |
||||
|
<workItem from="1676041137144" duration="3859000" /> |
||||
|
</task> |
||||
|
<task id="LOCAL-00001" summary="refactoring: added final method DigitalTechnik 1-3"> |
||||
|
<created>1676041825247</created> |
||||
|
<option name="number" value="00001" /> |
||||
|
<option name="presentableId" value="LOCAL-00001" /> |
||||
|
<option name="project" value="LOCAL" /> |
||||
|
<updated>1676041825247</updated> |
||||
|
</task> |
||||
|
<task id="LOCAL-00002" summary="refactoring: added final method DigitalTechnik 4-5"> |
||||
|
<created>1676042030326</created> |
||||
|
<option name="number" value="00002" /> |
||||
|
<option name="presentableId" value="LOCAL-00002" /> |
||||
|
<option name="project" value="LOCAL" /> |
||||
|
<updated>1676042030326</updated> |
||||
|
</task> |
||||
|
<task id="LOCAL-00003" summary="refactoring: added final method DigitalTechnik 6-7"> |
||||
|
<created>1676042189363</created> |
||||
|
<option name="number" value="00003" /> |
||||
|
<option name="presentableId" value="LOCAL-00003" /> |
||||
|
<option name="project" value="LOCAL" /> |
||||
|
<updated>1676042189363</updated> |
||||
|
</task> |
||||
|
<task id="LOCAL-00004" summary="refactoring: added final method DigitalTechnik 8-9"> |
||||
|
<created>1676042246877</created> |
||||
|
<option name="number" value="00004" /> |
||||
|
<option name="presentableId" value="LOCAL-00004" /> |
||||
|
<option name="project" value="LOCAL" /> |
||||
|
<updated>1676042246877</updated> |
||||
|
</task> |
||||
|
<task id="LOCAL-00005" summary="refactoring: added final method DigitalTechnik 10-11"> |
||||
|
<created>1676044239470</created> |
||||
|
<option name="number" value="00005" /> |
||||
|
<option name="presentableId" value="LOCAL-00005" /> |
||||
|
<option name="project" value="LOCAL" /> |
||||
|
<updated>1676044239470</updated> |
||||
|
</task> |
||||
|
<option name="localTasksCounter" value="6" /> |
||||
|
<servers /> |
||||
|
</component> |
||||
|
<component name="TypeScriptGeneratedFilesManager"> |
||||
|
<option name="version" value="3" /> |
||||
|
</component> |
||||
|
<component name="Vcs.Log.Tabs.Properties"> |
||||
|
<option name="TAB_STATES"> |
||||
|
<map> |
||||
|
<entry key="MAIN"> |
||||
|
<value> |
||||
|
<State /> |
||||
|
</value> |
||||
|
</entry> |
||||
|
</map> |
||||
|
</option> |
||||
|
</component> |
||||
|
<component name="VcsManagerConfiguration"> |
||||
|
<MESSAGE value="refactoring: added final method DigitalTechnik 1-3" /> |
||||
|
<MESSAGE value="refactoring: added final method DigitalTechnik 4-5" /> |
||||
|
<MESSAGE value="refactoring: added final method DigitalTechnik 6-7" /> |
||||
|
<MESSAGE value="refactoring: added final method DigitalTechnik 8-9" /> |
||||
|
<MESSAGE value="refactoring: added final method DigitalTechnik 10-11" /> |
||||
|
<option name="LAST_COMMIT_MESSAGE" value="refactoring: added final method DigitalTechnik 10-11" /> |
||||
|
</component> |
||||
|
</project> |
@ -1,60 +0,0 @@ |
|||||
package digital.technik; |
|
||||
|
|
||||
import java.util.Scanner; |
|
||||
|
|
||||
public class DigitalTechnik1 { |
|
||||
|
|
||||
public DigitalTechnik1() { |
|
||||
} |
|
||||
|
|
||||
void start() { |
|
||||
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!"); |
|
||||
} |
|
||||
} |
|
||||
} |
|
@ -1,38 +0,0 @@ |
|||||
package digital.technik; |
|
||||
|
|
||||
import java.util.Scanner; |
|
||||
|
|
||||
public class DigitalTechnik10 { |
|
||||
public DigitalTechnik10() { |
|
||||
} |
|
||||
|
|
||||
void start() { |
|
||||
|
|
||||
Scanner sc = new Scanner(System.in); |
|
||||
|
|
||||
System.out.println("Willkommen"); |
|
||||
System.out.println("Bitte wählen Sie ein Thema (Zahl):"); |
|
||||
System.out.println("1. Register"); |
|
||||
System.out.println("2. Register mit Enable"); |
|
||||
|
|
||||
int choice = sc.nextInt(); |
|
||||
sc.nextLine(); |
|
||||
|
|
||||
if (choice == 1) { |
|
||||
|
|
||||
System.out.println(""" |
|
||||
Ein Register aus D-Flipflops ist eine Anordnung von D-Flipflops, die verwendet wird, um digitale Daten zu speichern und zu übertragen. Jeder D-Flipflop im Register hat einen D-Eingang, einen Clock-Eingang und einen Q-Ausgang. |
|
||||
|
|
||||
Der D-Eingang jedes Flipflops empfängt ein Datensignal, das gespeichert werden soll, der Clock-Eingang steuert den Zeitpunkt, zu dem die Daten in den Flipflop geladen werden sollen, und der Q-Ausgang gibt die aktuelle Speicherung des Flipflops aus."""); |
|
||||
|
|
||||
} else if (choice == 2) { |
|
||||
System.out.println(""" |
|
||||
Ein Register mit Enable ist ein Register, das über einen zusätzlichen Eingang verfügt, der als "Enable"-Eingang bezeichnet wird. Dieser Eingang ermöglicht es, das Register zu aktivieren oder zu deaktivieren. |
|
||||
|
|
||||
Wenn der Enable-Eingang auf logisch 1 steht, arbeitet das Register normal und speichert die Daten, die über die D-Eingänge empfangen werden, wenn das Clock-Signal empfangen wird. Wenn der Enable-Eingang auf logisch 0 steht, arbeitet das Register nicht und die Daten werden nicht gespeichert."""); |
|
||||
|
|
||||
} else { |
|
||||
System.out.println("Ungültige Eingabe!"); |
|
||||
} |
|
||||
} |
|
||||
} |
|
@ -1,37 +0,0 @@ |
|||||
package digital.technik; |
|
||||
|
|
||||
import java.util.Scanner; |
|
||||
|
|
||||
public class DigitalTechnik11 { |
|
||||
public DigitalTechnik11() { |
|
||||
} |
|
||||
|
|
||||
void start() { |
|
||||
|
|
||||
Scanner sc = new Scanner(System.in); |
|
||||
|
|
||||
System.out.println("Willkommen"); |
|
||||
System.out.println("Bitte wählen Sie ein Thema (Zahl):"); |
|
||||
System.out.println("1. 4x4-Bit-Registerfile"); |
|
||||
System.out.println("2. Minimal Prozessor"); |
|
||||
|
|
||||
int choice = sc.nextInt(); |
|
||||
sc.nextLine(); |
|
||||
|
|
||||
if (choice == 1) { |
|
||||
|
|
||||
System.out.println(""" |
|
||||
4x4-Bit-Registerfile ist ein digitaler Speicherblock, |
|
||||
der aus vier 4-Bit-Registern besteht und verwendet wird, um mehrere Daten gleichzeitig zu speichern und zu übertragen.\s |
|
||||
Jedes Register im Registerfile hat einen Satz von Eingängen und Ausgängen."""); |
|
||||
|
|
||||
} else if (choice == 2) { |
|
||||
System.out.println("Ein Minimalprozessor, auch als \"Reduced Instruction Set Computer\" (RISC) bezeichnet, ist ein Prozessor, \n" + |
|
||||
"der nur eine begrenzte Anzahl von Befehlen (Instruktionen) unterstützt, die jedoch sehr schnell ausgeführt werden können. "); |
|
||||
|
|
||||
} else { |
|
||||
System.out.println("Ungültige Eingabe!"); |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
} |
|
@ -1,75 +0,0 @@ |
|||||
package digital.technik; |
|
||||
|
|
||||
import java.util.Scanner; |
|
||||
|
|
||||
public class DigitalTechnik2 { |
|
||||
|
|
||||
public DigitalTechnik2() { |
|
||||
} |
|
||||
|
|
||||
void start() { |
|
||||
Scanner sc = new Scanner(System.in); |
|
||||
|
|
||||
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"); |
|
||||
|
|
||||
int choice = sc.nextInt(); |
|
||||
sc.nextLine(); |
|
||||
|
|
||||
if (choice == 1) { |
|
||||
|
|
||||
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"""); |
|
||||
|
|
||||
} else if (choice == 2) { |
|
||||
System.out.println(""" |
|
||||
Um eine dezimale Zahl in eine binäre Zahl umzuwandeln, kann man den folgenden Prozess verwenden: |
|
||||
|
|
||||
Die dezimale Zahl durch 2 teilen und den Quotienten notieren. |
|
||||
|
|
||||
Den Rest des Teilens notieren und ihn als die letzte Ziffer der binären Zahl betrachten. |
|
||||
|
|
||||
Wiederholen Schritt 1 und 2 mit dem Quotienten, bis der Quotient 0 ist. |
|
||||
|
|
||||
Die Restschritte in umgekehrter Reihenfolge zusammensetzen, um die binäre Zahl zu erhalten."""); |
|
||||
|
|
||||
} else if (choice == 3) { |
|
||||
System.out.println(""" |
|
||||
Um eine dezimale Zahl in eine hexadezimale Zahl umzuwandeln, kann man den folgenden Prozess verwenden: |
|
||||
|
|
||||
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. |
|
||||
|
|
||||
Wiederholen Schritt 1 und 2 mit dem Quotienten, bis der Quotient 0 ist. |
|
||||
|
|
||||
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."""); |
|
||||
|
|
||||
} 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. |
|
||||
|
|
||||
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!"); |
|
||||
} |
|
||||
} |
|
||||
} |
|
@ -1,70 +0,0 @@ |
|||||
package digital.technik; |
|
||||
|
|
||||
import java.util.Scanner; |
|
||||
|
|
||||
public class DigitalTechnik3 { |
|
||||
|
|
||||
public DigitalTechnik3() { |
|
||||
} |
|
||||
|
|
||||
void start() { |
|
||||
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!"); |
|
||||
} |
|
||||
} |
|
||||
} |
|
@ -1,55 +0,0 @@ |
|||||
package digital.technik; |
|
||||
|
|
||||
import java.util.Scanner; |
|
||||
|
|
||||
public class DigitalTechnik4 { |
|
||||
|
|
||||
public DigitalTechnik4() { |
|
||||
} |
|
||||
|
|
||||
void start() { |
|
||||
Scanner sc = new Scanner(System.in); |
|
||||
|
|
||||
System.out.println("Willkommen"); |
|
||||
System.out.println("Bitte wählen Sie ein Thema (Zahl):"); |
|
||||
System.out.println("1. NOR"); |
|
||||
System.out.println("2. NAND"); |
|
||||
System.out.println("3. Aquivalenz"); |
|
||||
System.out.println("4. Implikation"); |
|
||||
System.out.println("5. Multiplexer"); |
|
||||
|
|
||||
int choice = sc.nextInt(); |
|
||||
sc.nextLine(); |
|
||||
|
|
||||
if (choice == 1) { |
|
||||
|
|
||||
System.out.println(""" |
|
||||
Der NOR-Operator ist ein logisches Schaltwerk in der Digitaltechnik, das die Funktion des "Nicht-Oder" ausführt. |
|
||||
Es hat zwei oder mehrere Eingänge und einen Ausgang. Der Ausgang ist "wahr" (1), wenn alle Eingänge "falsch" (0) sind. \n |
|
||||
Ansonsten ist der Ausgang "falsch" (0). Es ist das logische Gegenteil des OR-Operators."""); |
|
||||
|
|
||||
} else if (choice == 2) { |
|
||||
System.out.println(""" |
|
||||
Der NAND-Operator ist ein logisches Schaltwerk in der Digitaltechnik, das die Funktion des "Nicht-Und" ausführt.\s |
|
||||
Es hat zwei oder mehrere Eingänge und einen Ausgang.\s |
|
||||
Der Ausgang ist "falsch" (0), wenn alle Eingänge "wahr" (1) sind. Ansonsten ist der Ausgang "wahr" (1). \n |
|
||||
Es ist das logische Gegenteil des AND-Operators."""); |
|
||||
|
|
||||
} else if (choice == 3) { |
|
||||
System.out.println(""" |
|
||||
Der Äquivalenzoperator ist ein logisches Schaltwerk in der Digitaltechnik, das die Funktion des "Entweder-Oder" ausführt.\s |
|
||||
Es hat zwei Eingänge und einen Ausgang. Der Ausgang ist "wahr" (1), wenn die beiden Eingänge gleich sind (beide 1 oder beide 0) und "falsch" (0),\s |
|
||||
wenn die Eingänge unterschiedlich sind (einer ist 1 und der andere ist 0). Es ist das logische Gegenteil des XOR Operators."""); |
|
||||
|
|
||||
} else if (choice == 4) { |
|
||||
System.out.println("Funktionsweise: Das Ergebnis der Implikation zweier Variablen a\n" + |
|
||||
"und b ist genau dann 1 wenn aus Aussage ≫a folgt b≪ wahr ist."); |
|
||||
|
|
||||
} else if (choice == 5) { |
|
||||
System.out.println("Ein Multiplexer ist ein elektronisches Schaltwerk, das es ermöglicht, mehrere Eingangssignale auf einen einzigen Ausgang zu schalten."); |
|
||||
|
|
||||
} else { |
|
||||
System.out.println("Ungültige Eingabe!"); |
|
||||
} |
|
||||
} |
|
||||
} |
|
@ -1,55 +0,0 @@ |
|||||
package digital.technik; |
|
||||
|
|
||||
import java.util.Scanner; |
|
||||
|
|
||||
public class DigitalTechnik5 { |
|
||||
|
|
||||
public DigitalTechnik5() { |
|
||||
} |
|
||||
|
|
||||
void start() { |
|
||||
Scanner sc = new Scanner(System.in); |
|
||||
|
|
||||
System.out.println("Willkommen"); |
|
||||
System.out.println("Bitte wählen Sie ein Thema (Zahl):"); |
|
||||
System.out.println("1. KV-Diagram"); |
|
||||
System.out.println("2. Primimplikant"); |
|
||||
System.out.println("3. KPI, API, REPI"); |
|
||||
|
|
||||
|
|
||||
int choice = sc.nextInt(); |
|
||||
sc.nextLine(); |
|
||||
|
|
||||
if (choice == 1) { |
|
||||
|
|
||||
System.out.println("Ein KV-Diagramm ist ein Diagramm, in dem die Beziehung zwischen zwei oder mehr Variablen dargestellt wird."); |
|
||||
|
|
||||
} else if (choice == 2) { |
|
||||
System.out.println(""" |
|
||||
Primimplikant (Primterm): Term, der sich nicht weiter |
|
||||
vereinfachen (zusammenfassen) lässt. (Ein Term mit maximaler |
|
||||
Ordnung.) – Größtmögliche Zusammenfassung von 1, 2, 4, 8, etc. |
|
||||
1en (0en) im KV-Diagramm."""); |
|
||||
|
|
||||
} else if (choice == 3) { |
|
||||
System.out.println(""" |
|
||||
Kernprimimplikant KPI (essentieller Primterm): Primimplikant, |
|
||||
der zur Realisierung einer Funktion unbedingt erforderlich ist. Die |
|
||||
Minterme aus denen er entstand, können nicht anders überdeckt |
|
||||
werden. Diese werden zur Minimierung zwingend benötigt! |
|
||||
|
|
||||
Absolut eliminierbarer Primimplikant API: Primimplikant, |
|
||||
dessen Minterme (Maxterme) alle von Kernprimimplikanten |
|
||||
uberdeckt werden. Diese können zur Minimierung weggelassen |
|
||||
werden. |
|
||||
|
|
||||
Alle weiteren Primimplikanten sind relativ eliminierbare |
|
||||
Primimplikanten (REPI). Hier muss zur Minimierung eine |
|
||||
Auszahl erfolgen! |
|
||||
"""); |
|
||||
|
|
||||
} else { |
|
||||
System.out.println("Ungültige Eingabe!"); |
|
||||
} |
|
||||
} |
|
||||
} |
|
@ -1,45 +0,0 @@ |
|||||
package digital.technik; |
|
||||
|
|
||||
import java.util.Scanner; |
|
||||
|
|
||||
public class DigitalTechnik6 { |
|
||||
|
|
||||
public DigitalTechnik6() { |
|
||||
} |
|
||||
|
|
||||
void start() { |
|
||||
|
|
||||
Scanner sc = new Scanner(System.in); |
|
||||
|
|
||||
System.out.println("Willkommen"); |
|
||||
System.out.println("Bitte wählen Sie ein Thema (Zahl):"); |
|
||||
System.out.println("1. Dont Cares"); |
|
||||
System.out.println("2. Dekoder"); |
|
||||
System.out.println("3. Ripple-Cary-Addierer"); |
|
||||
|
|
||||
int choice = sc.nextInt(); |
|
||||
sc.nextLine(); |
|
||||
|
|
||||
if (choice == 1) { |
|
||||
|
|
||||
System.out.println(""" |
|
||||
In der Digitaltechnik sind Dont-Cares (engl. für "nicht interessiert") bestimmte Zustände oder Eingangskombinationen,\s |
|
||||
die für das Verhalten einer Schaltung nicht relevant sind. Sie können in der Schaltalgebra verwendet werden,\s |
|
||||
um die Anzahl der benötigten Gates in einer Schaltung zu reduzieren und somit die Leistung und Effizienz der Schaltung zu verbessern."""); |
|
||||
|
|
||||
} else if (choice == 2) { |
|
||||
System.out.println("In der Digitaltechnik sind Dekoder Schaltungen, die mehrere Eingangssignale in eine bestimmte Anzahl von Ausgangssignalen umwandeln. \n" + |
|
||||
"Sie werden verwendet, um digitale Codes zu interpretieren und bestimmte Aktionen auszuführen."); |
|
||||
|
|
||||
} else if (choice == 3) { |
|
||||
System.out.println(""" |
|
||||
Der Carry-Ripple-Addierer, auch Ripple-Carry-Addierer oder ripple-through carry, ist ein Addiernetz,\s |
|
||||
dient also der Addition mehrstelliger Binärzahlen. Ein n-Bit-Carry-Ripple-Addierer kann zwei n-stellige Binärzahlen addieren,\s |
|
||||
das Ergebnis hat n+1 Stellen. Das Schaltnetz hat damit 2n+1 Eingänge und n+1 Ausgänge."""); |
|
||||
|
|
||||
|
|
||||
} else { |
|
||||
System.out.println("Invalid choice. Please try again."); |
|
||||
} |
|
||||
} |
|
||||
} |
|
@ -1,43 +0,0 @@ |
|||||
package digital.technik; |
|
||||
|
|
||||
import java.util.Scanner; |
|
||||
|
|
||||
public class DigitalTechnik7 { |
|
||||
|
|
||||
public DigitalTechnik7() { |
|
||||
} |
|
||||
|
|
||||
void start() { |
|
||||
Scanner sc = new Scanner(System.in); |
|
||||
|
|
||||
System.out.println("Willkommen"); |
|
||||
System.out.println("Bitte wählen Sie ein Thema (Zahl):"); |
|
||||
System.out.println("1. ALU"); |
|
||||
System.out.println("2. Moore und Mealy Automaten"); |
|
||||
System.out.println("3. Schaltwerke (asynchrone Automaten)"); |
|
||||
|
|
||||
|
|
||||
int choice = sc.nextInt(); |
|
||||
sc.nextLine(); |
|
||||
|
|
||||
if (choice == 1) { |
|
||||
|
|
||||
System.out.println("In der Digitaltechnik ist eine ALU (Arithmetisch-Logische Einheit) ein Baustein in einem Prozessor, der die grundlegenden arithmetischen und logischen Operationen ausführt. \n" + |
|
||||
"Dazu gehören Operationen wie Addition, Subtraktion, Multiplikation, Division, Vergleich, Schaltungen und Bitverschiebungen."); |
|
||||
|
|
||||
} else if (choice == 2) { |
|
||||
System.out.println(""" |
|
||||
Ein Moore-Automat ist ein FA, bei dem jeder Zustand durch einen Ausgabewert (auch als "Zustandsvariable" bezeichnet) repräsentiert wird. Die Ausgabe des Automaten hängt also nur vom aktuellen Zustand ab und nicht von den Eingabezeichen. |
|
||||
|
|
||||
Ein Mealy-Automat ist ein FA, bei dem die Ausgabe von sowohl dem aktuellen Zustand als auch den Eingabezeichen abhängt."""); |
|
||||
|
|
||||
} else if (choice == 3) { |
|
||||
System.out.println("Asynchrone Schaltwerke (auch asynchrone Automaten genannt) sind Schaltungen, die unabhängig von einem gemeinsamen Takt funktionieren und sich nicht synchron im gleichen Takt ändern. \n" + |
|
||||
"Diese Schaltungen werden oft in digitalen Systemen verwendet, die Daten in Echtzeit verarbeiten müssen, da sie schnelle Reaktionen auf Ereignisse ermöglichen und eine hohe Flexibilität in der Datenverarbeitung bieten."); |
|
||||
|
|
||||
|
|
||||
} else { |
|
||||
System.out.println("Ungültige Eingabe!"); |
|
||||
} |
|
||||
} |
|
||||
} |
|
@ -1,57 +0,0 @@ |
|||||
package digital.technik; |
|
||||
|
|
||||
import java.util.Scanner; |
|
||||
|
|
||||
public class DigitalTechnik8 { |
|
||||
|
|
||||
public DigitalTechnik8() { |
|
||||
} |
|
||||
|
|
||||
void start() { |
|
||||
Scanner sc = new Scanner(System.in); |
|
||||
|
|
||||
System.out.println("Willkommen"); |
|
||||
System.out.println("Bitte wählen Sie ein Thema (Zahl):"); |
|
||||
System.out.println("1. JK-FlipFlop"); |
|
||||
System.out.println("2. T-Flipflop"); |
|
||||
System.out.println("3. Taktpegelgesteuertes D-Latch"); |
|
||||
System.out.println("4. Taktflankengesteuertes D-Flipflop"); |
|
||||
|
|
||||
|
|
||||
int choice = sc.nextInt(); |
|
||||
sc.nextLine(); |
|
||||
|
|
||||
if (choice == 1) { |
|
||||
|
|
||||
System.out.println(""" |
|
||||
Ein JK-Flipflop ist eine Art von Flipflop, das auf eine Kombination von Eingangssignalen J und K reagiert. Es hat zwei Eingänge (J und K) und einen Ausgang (Q).\s |
|
||||
Der Ausgang wird auf den Wert von J gesetzt, wenn K auf logisch 0 steht und auf den Wert von K gesetzt, wenn J auf logisch 0 steht.\s |
|
||||
Wenn beide J und K auf logisch 1 stehen, wird der Ausgang invertiert."""); |
|
||||
|
|
||||
|
|
||||
} else if (choice == 2) { |
|
||||
System.out.println(""" |
|
||||
Ein T-Flipflop ist eine Art von Flipflop, das auf ein Eingangssignal T reagiert. Es hat nur einen Eingang (T) und einen Ausgang (Q). \n |
|
||||
Der Ausgang wird invertiert, wenn das Eingangssignal T auf logisch 1 steht. |
|
||||
|
|
||||
Es ist ein Schaltkreis, der den Zustand des Ausgangs auf die negierte Form des Eingangs setzt. |
|
||||
|
|
||||
"""); |
|
||||
|
|
||||
} else if (choice == 3) { |
|
||||
System.out.println(""" |
|
||||
Das Taktpegelgesteuerte D-Latch ist eine digitale Schaltung, die zur Speicherung von binären Informationen verwendet wird. Es besteht aus zwei Eingängen (D und CLK), einem Taktpegel, und einem Ausgang (Q).\s |
|
||||
Der Wert des Eingangs "D" wird bei einem negativen Flankenwechsel des Takteingangs "CLK" gespeichert und bleibt bis zum nächsten negativen Flankenwechsel bestehen."""); |
|
||||
|
|
||||
} else if (choice == 4) { |
|
||||
System.out.println(""" |
|
||||
Das Taktflankengesteuerte D-Flipflop ist eine digitale Schaltung, die zur Speicherung von binären Informationen verwendet wird. Es besteht aus zwei Eingängen (D und CLK), einem Takt, und einem Ausgang (Q).\s |
|
||||
Der Wert des Eingangs "D" wird bei einer positiven Taktflanke des Takteingangs "CLK" gespeichert und bleibt bis zur nächsten positiven Taktflanke bestehen.\s |
|
||||
Dieses Flipflop ist ein sehr wichtiger Baustein in der digitalen Technik und wird oft in der Registerspeicherung, bei der Übertragung von Daten und in sequentiellen Schaltungen eingesetzt."""); |
|
||||
|
|
||||
|
|
||||
} else { |
|
||||
System.out.println("Ungültige Eingabe!"); |
|
||||
} |
|
||||
} |
|
||||
} |
|
@ -1,42 +0,0 @@ |
|||||
package digital.technik; |
|
||||
|
|
||||
import java.util.Scanner; |
|
||||
|
|
||||
public class DigitalTechnik9 { |
|
||||
|
|
||||
public DigitalTechnik9() { |
|
||||
} |
|
||||
|
|
||||
void start() { |
|
||||
|
|
||||
Scanner sc = new Scanner(System.in); |
|
||||
|
|
||||
System.out.println("Willkommen"); |
|
||||
System.out.println("Bitte wählen Sie ein Thema (Zahl):"); |
|
||||
System.out.println("1. Mod-4 Zähler mit enable"); |
|
||||
System.out.println("2. Unterschied Moore/Mealy Automaten"); |
|
||||
|
|
||||
|
|
||||
int choice = sc.nextInt(); |
|
||||
sc.nextLine(); |
|
||||
|
|
||||
if (choice == 1) { |
|
||||
|
|
||||
System.out.println(""" |
|
||||
Der Mod-4-Zähler mit Enable ist ein Zähler, der dazu verwendet wird, eine bestimmte Anzahl von Schritten oder Zustände durchzugehen, bevor er wieder zum Anfang zurückkehrt.\s |
|
||||
Der Mod-4-Zähler hat 4 Zustände: 0, 1, 2 und 3, und er wechselt zum nächsten Zustand, wenn ein Taktsignal empfangen wird.\s |
|
||||
Wenn der Zähler in den Zustand 3 gelangt, kehrt er zurück zum Zustand 0, und der Prozess beginnt erneut."""); |
|
||||
|
|
||||
} else if (choice == 2) { |
|
||||
System.out.println(""" |
|
||||
Der Unterschied zwischen den beiden besteht darin, wie sie Zustände und Übergänge definieren und wie sie Ausgänge berechnen: |
|
||||
|
|
||||
Moore-Automaten: In Moore-Automaten werden Ausgänge ausschließlich durch den aktuellen Zustand berechnet. Jeder Zustand hat einen festen Ausgangswert, der unabhängig von den Eingängen ist. |
|
||||
|
|
||||
Mealy-Automaten: In Mealy-Automaten werden Ausgänge auf der Basis sowohl des aktuellen Zustands als auch der Eingänge berechnet. Jeder Übergang hat einen festen Ausgangswert, der von beiden bestimmt wird."""); |
|
||||
|
|
||||
} else { |
|
||||
System.out.println("Ungültige Eingabe!"); |
|
||||
} |
|
||||
} |
|
||||
} |
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue