Hi!
Ich möchte hier kein Blatt vor den Mund nehmen........ich studiere momentan E-Technik und habe im Rahmen eines Informatik-Praktikums die Aufgabe mit Java einen Simulator für Logikschaltungen zu implementieren, jedoch keine Ahnung. Zunächst gilt dabei die Vereinfachung nur mit NAND Gattern und ohne Zeitverhalten zu simulieren. Einlesen von Schaltungen wird ebenso noch nicht betrachtet.
Nun ist das Problem, dass ich nie in meinem Leben programmiert habe und entsprechend große Probleme dabei habe.
Konkret habe ich die Sache bis jetzt wie folgt aufgebaut:
Es existieren 2 Klassen (Signal und NAND), die meine NAND-Gatter bzw. Signale enthalten. Je eine enthält einen Konstruktor, der beim erstellen eines Gatters nach der Anzahl der Eingänge fragt (int Eingaenge), in der Klasse Signal, wird über den Konstruktor lediglich der Name des Signals implementiert. (String)
Nun habe ich 2 Probleme:
1. Wie soll ich nun aus dem int entsprechend die Variablen gewinnen? Wenn ich beispielsweise dort 3 eingebe, möchte ich ja, dass 3 Variablen für dieses Objekt erzeugt werden. Diese sollen Durchnummeriert sein, also eben Eingang 0, 1.....etc heissen.
2. Wie schaffe ich es nachher bei den Signalen diese an das Gatter zu knüpfen. Prnzipiell soll es eine Methode geben, die (je nach Gatter) die Eingänge belegt. Also nach der Nummer des Eingangs am Gatter fragt und welches Signal darauf gesetzt werden soll. Dabei aber nicht ob true/false sondern eben den Namen des Signals.
zu 1. fiel mir bis jetzt noch garnichts ein, ausser einer if Bedingung.........also eben:
usw. Das hat aber den Nachteil, dass die Anzahl der Eingänge begrenzt ist und es ist sicherlich auch die beknackteste Variante die es gibt.
zu 2. wollte ich eine HashMap erstellen, die eben alle Signale kennt und sie dann einem Gattereingang zuordnet. Dabei müsste man jedoch zwischen den verschiedenen Gattern unterscheiden, denn es wird ja mehr als eines geben.
Ich habe in der Hinsicht extreme Probleme von meinen realen Sachverhalten aus zu abstrahieren (das ist ja das Prinzip, wenn ichs richtig verstanden habe). Ich hoffe ihr könnt mir irgendwie helfen, denn weder Google noch sonst was gab mir eine absolute Deppenbeschreibung zum programmieren mit Java. Leider nichtmal unsere Bibliothek.
In größter Ehrfurcht vor Programmierern.....
Manuel
Ich möchte hier kein Blatt vor den Mund nehmen........ich studiere momentan E-Technik und habe im Rahmen eines Informatik-Praktikums die Aufgabe mit Java einen Simulator für Logikschaltungen zu implementieren, jedoch keine Ahnung. Zunächst gilt dabei die Vereinfachung nur mit NAND Gattern und ohne Zeitverhalten zu simulieren. Einlesen von Schaltungen wird ebenso noch nicht betrachtet.
Nun ist das Problem, dass ich nie in meinem Leben programmiert habe und entsprechend große Probleme dabei habe.
Konkret habe ich die Sache bis jetzt wie folgt aufgebaut:
Es existieren 2 Klassen (Signal und NAND), die meine NAND-Gatter bzw. Signale enthalten. Je eine enthält einen Konstruktor, der beim erstellen eines Gatters nach der Anzahl der Eingänge fragt (int Eingaenge), in der Klasse Signal, wird über den Konstruktor lediglich der Name des Signals implementiert. (String)
Nun habe ich 2 Probleme:
1. Wie soll ich nun aus dem int entsprechend die Variablen gewinnen? Wenn ich beispielsweise dort 3 eingebe, möchte ich ja, dass 3 Variablen für dieses Objekt erzeugt werden. Diese sollen Durchnummeriert sein, also eben Eingang 0, 1.....etc heissen.
2. Wie schaffe ich es nachher bei den Signalen diese an das Gatter zu knüpfen. Prnzipiell soll es eine Methode geben, die (je nach Gatter) die Eingänge belegt. Also nach der Nummer des Eingangs am Gatter fragt und welches Signal darauf gesetzt werden soll. Dabei aber nicht ob true/false sondern eben den Namen des Signals.
zu 1. fiel mir bis jetzt noch garnichts ein, ausser einer if Bedingung.........also eben:
Code:
if (int Eingaenge >= 1) {
boolean a;}
if (int Eingaenge >= 2) {
boolean b
usw. Das hat aber den Nachteil, dass die Anzahl der Eingänge begrenzt ist und es ist sicherlich auch die beknackteste Variante die es gibt.
zu 2. wollte ich eine HashMap erstellen, die eben alle Signale kennt und sie dann einem Gattereingang zuordnet. Dabei müsste man jedoch zwischen den verschiedenen Gattern unterscheiden, denn es wird ja mehr als eines geben.
Ich habe in der Hinsicht extreme Probleme von meinen realen Sachverhalten aus zu abstrahieren (das ist ja das Prinzip, wenn ichs richtig verstanden habe). Ich hoffe ihr könnt mir irgendwie helfen, denn weder Google noch sonst was gab mir eine absolute Deppenbeschreibung zum programmieren mit Java. Leider nichtmal unsere Bibliothek.
In größter Ehrfurcht vor Programmierern.....
Manuel