Schaltung fürs Praktikum

Aufgaben, Lösungen, Klausuren
Gesperrt
derEine
Beiträge: 50
Registriert: 02.04.2004 15:51
Contact:

Schaltung fürs Praktikum

Beitrag von derEine » 15.06.2004 14:25

Hab mal ne Schaltung fürs Praktikum hochgeladen, die sollte auch funktionieren. Wenn trotzdem jemand einen Fehler findet, kann er ihn ja berichtigen. Kanns nämlcih auch noch nicht testen, weil ich auch noch nicht fertig bin.

Na wer findet zuerst raus, was die Schaltung macht, der kriegt auch nen schönen :keks: .
Keine Angst irgendwann lös ich das auch auf.
Sie brauchen einen Computer nicht einzuschalten um festzustellen, ob Windows installiert ist.
Sehen Sie einfach nach, ob die Aufschrift auf der Reset-Taste noch lesbar ist...

Benutzeravatar
MrGroover
Beiträge: 3593
Registriert: 02.12.2003 09:48
Name: Micha
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2003
Angestrebter Abschluss: Dipl-Ing.
Contact:

Schaltung fürs Praktikum

Beitrag von MrGroover » 15.06.2004 19:17

Deine Schaltung ist schön und gut, du wirst bloß fast niemanden finden, der die richtig einlesen kann. Problem ist, dass du mehr als ein komplexes Gatter definierst, in der Aufgabe ist nur eins gefordert. Als nächstes is das Problem, dass du eins anfängst, und dann ein neues, ohne das erste zu beenden. Es wird so sein, das viele die Circuit und die darauffolgende End-\"Anweisung\" als Begrenzung des komplexen Gatters ansehen, was bei deiner Datei zu Problemen führt... Die Verschachtelung machts problematisch.
Um das doch zu realisieren, was du vor hast, bau doch einfach den Volladierer als Element auf und dann die Schaltung etwas realitätsferner nur aus Volladdern und auch da, wo eigentlich ein Halbadder reicht. Die Eingänge sollten eigentlich schon als null angesehen werden, weil wo nix is, is keine Spannung, und wo in echt keine Spannung ist, ist auch kein Wert zum Rechnen. Es sind dann nur die Ausgangszeiten evtl net mehr ganz richtig...

Vom groben überfliegen hattest du vor, oder es auch geschafft, einen 4-Bit Parallelmultiplizierer zu beschreiben... Die Idee hat ich eigentlich auch schon, aber da eben die Aufgabe fordert, dass man nur ein komplexes Element beschreiben dürfen soll, wird das sich mit dem Volladder und dem Halbadder net ganz ausgehen. Mein erster Versuch zum Praktikum schafft das auf jeden, da\'s dem egal is, wieviele Circuit...End Bereiche man hat, aber obs mein aktueller schafft??? Du kannst mal wenigstens den Halfadder vorm Volladder komplett beschreiben und dann im Volladder daruaf zugreifen, da bei jedem, der die Datei von oben nach unten abarbeitet, den Halbadder schon im Speicher haben müßte, wenn der Volladder erstellt wird, so dass sich die Katze da net in Schwanz beißt...

kermit
Beiträge: 297
Registriert: 03.01.2004 22:28
Studienrichtung: Informatik
Matrikel: 2003

Schaltung fürs Praktikum

Beitrag von kermit » 15.06.2004 19:22

Die Frage nach den verschachtelten Circuits wollte ich auch gerade stellen.

Aber wer hat gesagt, dass eine Schaltung nur 1 Circuit enthalten darf? Ich hatte diese Frage vorige Woche Frau Pöckel gestellt und sie wollte nicht ausschließen, dass eine Schaltung nicht auch mehrere Circuits besitzen könnte.

Und genau an dem Problem, mehrere Circuits zu verwalten, arbeite ich schon seit gestern, leider bisher ohne durchschlagenden Erfolg. Wenn also jemand definitiv sagen könnte, dass es maximal 1 komplexes Gatter geben wird, wäre ich einen großen Schritt weiter.

EDIT:
Oh, steht ja im 3. Teil der Aufgabe. Asche auf mein Haupt....

Benutzeravatar
MrGroover
Beiträge: 3593
Registriert: 02.12.2003 09:48
Name: Micha
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2003
Angestrebter Abschluss: Dipl-Ing.
Contact:

Schaltung fürs Praktikum

Beitrag von MrGroover » 15.06.2004 19:41

In der Aufgabenstellung sind 2 Punkte drin, wo man erkennt, dass es nur ein Gatter sein soll.
Erstens heißt es:
[quote]Desweiteren soll die Simulation um ein zusammengesetztes Element erweitert werden[/quote]
Der nächste Satz geht dann auch mit
[quote]Dieses Element soll...[/quote] und mitten in diesem Satz heißt es auch [quote]dann unter seinem Namen[/quote]
Da wir an ner Uni sind, und es gelernt haben, mache Sachen doch sehr genau zu nehmen, ist anhand dieser Formulierungen eindeutig klar, dass es nur ein Circuit-Element ist. In so einem Fall würd ich mich auch mit den Leuten streiten... Da der Prof aber selber weiß, dass wir die Versuchskaninchen sin, wird er sich wegen so nen Kleingkeiten net zum Spielverderber entwickeln. Er ist net wie sein Vorgänger...

Und ja, darauf was die Pöckel oder der Schöne sagen leg ich net mehr viel Wert. Ich hatte auf die beim ersten Mal gehört, eine lauffähige Version geschrieben und die dann auch mal gezeigt. Nach nem kurzen Gespräch meinte der Schöne, dass wir es doch gleich mal beim Prof versuchen sollten, ob der noch im Haus sei, um das mal zu besprechen. Gesagt getan. Irgendwann in dem Gespräch fragt der dann, warum wir für jedes Gatter ne eigene Klasse haben. Hab ich ihm erklärt, dass zum, für mich ersten Praktikum, der Schäne gesagt hat, dass ne Superklasse net so gut is (ein Komilitone hatte so nen Ansatz), aber einzlene Klassen pro Gatter gut is. Naja, bei Hochberger kam raus, dass der grob nur 2 Klassen brauch, ne Gate- und ne Signal-Klasse. Der Filereader is noch eine und ich hab noch eine, die den Programablauf steurt. Summa summrum: 4 Klassen und das Progi geht ohne Probs.
Hochberger hat aber auch eingesehen, dass er das nächste mal am Anfang schon mal zeigt, wie er sich das so vorstellt, damits etwas einfacher wird. Da er selber weiß, dass wir die ersten sin, wird er die Bewertung auch nicht ganz so streng machen und nicht nur die zur Prüfung zulassen, bei denen das Teil zu 99% funzt... Naja, Angabe ohne Gewähr...

kermit
Beiträge: 297
Registriert: 03.01.2004 22:28
Studienrichtung: Informatik
Matrikel: 2003

Schaltung fürs Praktikum

Beitrag von kermit » 15.06.2004 19:55

Ok, Danke für die Infos. Ich habe zwar auch für jedes Gatter eine Klasse und die dann abgeleitet von einer Superklasse, aber solange das Ergebnis stimmt...

Dann hat also derEine eine Schaltung entwickelt, die wir in dieser Form nie werden testen können. Schade um die Arbeit.

Benutzeravatar
MrGroover
Beiträge: 3593
Registriert: 02.12.2003 09:48
Name: Micha
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2003
Angestrebter Abschluss: Dipl-Ing.
Contact:

Schaltung fürs Praktikum

Beitrag von MrGroover » 15.06.2004 20:00

Naja, die Arbeit war net ganz umsonst. Er muss halt den Voll und Halbadder seperat deklarieren, in der richtigen Reihenfolge, und bei denen, die net nur ein complex Circuit managen können, die könns ja mal versuchen.

@Kermit: Aber warum fällt dir das so schwer, mehr als einen Circuit zu handeln? Du kannst doch die Struktur für den einen, den de in jedem Fall brauchst, doch in ne HashMap unter dem Namen das Gatters speichern. Um das Teil zu simulieren nimmste die Methode die das jetzt schon macht, nur dass se eben evtl um nen Parameter erweitert werden muss, und die benötigte Struktur des Complex Gatters aus der HashMap holt. Solange du keinen Variable Klasse dafür hast, sollte der Cast beim rausholen auch gehen...

Simplimus
Beiträge: 1305
Registriert: 23.11.2003 20:55
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2003
Angestrebter Abschluss: Dipl-Ing.
Contact:

Schaltung fürs Praktikum

Beitrag von Simplimus » 15.06.2004 21:13

Fertig....
www.klatti.de.vu
Just because an OS holds 90% of the market doesn`t mean it`s superior.
Remember 90% of all animals are insects.

Simplimus
Beiträge: 1305
Registriert: 23.11.2003 20:55
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2003
Angestrebter Abschluss: Dipl-Ing.
Contact:

Schaltung fürs Praktikum

Beitrag von Simplimus » 15.06.2004 21:25

Ein Hinweis noch, die Pöckel meinte zu mir, wer das komplexe Gatter wirklich nicht hinbekommt, der kanns auch lassen, aber ihr solltet wenigstens so tun, als hättet ihr euch angestrengt!
www.klatti.de.vu
Just because an OS holds 90% of the market doesn`t mean it`s superior.
Remember 90% of all animals are insects.

derEine
Beiträge: 50
Registriert: 02.04.2004 15:51
Contact:

Schaltung fürs Praktikum

Beitrag von derEine » 15.06.2004 22:54

Danke für die Kritik, aber ich hab mein Programm in der der Theorie auch schon so ausgelegt, das es auch das schaffen müsste (Betonung müsste, da es ja noch net läuft). Das was Hochberger sagt ist doch echt dumm er gibt uns so eine ungenaue Praktikumsaufgabe, und dann denkt der das alle sowas ähnliches wie er machen :kopfkratz: . Leute gibts.

@MrGroover :O Respekt hast rausgefunden was das ist, hier kriegst du den versprochenen :keks: .
Und soviel Zeit hats ja auch nicht gekostet die Schaltung zusammenzubauen.

OffTopic: Man war Deutschland - Niederlande ein schlechtes Spiel
Sie brauchen einen Computer nicht einzuschalten um festzustellen, ob Windows installiert ist.
Sehen Sie einfach nach, ob die Aufschrift auf der Reset-Taste noch lesbar ist...

Benutzeravatar
MrGroover
Beiträge: 3593
Registriert: 02.12.2003 09:48
Name: Micha
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2003
Angestrebter Abschluss: Dipl-Ing.
Contact:

Schaltung fürs Praktikum

Beitrag von MrGroover » 16.06.2004 10:16

Danke für den Keks, aber das war wirklich net schwer zu sehen, denn hatten wir noch ne Schaltung wo nur Voll und Halbaddier und ein paar lustige ANDS drin waren??? Naja...

Em ja zu dem komplexen Gatter: Ihr müßt ja in der Signal-Klasse eine Methode drin haben, wo ihr die Eingänge der Schaltung belegen könnt. Außerdem noch eine, die die Ausgänge zurückgibt. Wenn ihr die Methode habt, dann nehmt ihr die, bennent die um und modded die so, dass die das für das komplexe Gatter macht.
Zum Parsen der Datei, da verhält sich das sehr ähnlich. Einfach nach Circuit suchen und das darauffolgenden End; Der Parser funze genauso wie der der eigentlichen Schaltung. Also wenn ihr die 2 Sachen erstmal habt, also Parser und Methoden, dann is das komplexe Gatter auch kein Problem mehr. Was man noch einbaun könnt, is ne Abfrage, die prüft, ob es sich bei dem angegebenen Gatter um ein Komplexes, oder ein einfaches handelt. Das is dann nur bei dem Ablauf der Schaltung von Intresse...

derEine
Beiträge: 50
Registriert: 02.04.2004 15:51
Contact:

Schaltung fürs Praktikum

Beitrag von derEine » 16.06.2004 13:42

So hab jetzt V.2.0 hochgeladen, die sollte wenn ich keine Fehler gemacht hab und das Programm gut geschrieben ist bei jedem funktionieren. Kann leider immer noch nicht testen, mir fehlt noch die Eventqueue und alle Gatter bis aufs AND2 :-O
Sie brauchen einen Computer nicht einzuschalten um festzustellen, ob Windows installiert ist.
Sehen Sie einfach nach, ob die Aufschrift auf der Reset-Taste noch lesbar ist...

larva
Beiträge: 66
Registriert: 11.12.2003 23:42

Schaltung fürs Praktikum

Beitrag von larva » 16.06.2004 14:29

Huh? Wenn man eine einzige Klasse für alle verschiedenen Gatter-Typen nimmt, muss man ja andauernd (vor jeder Berechnung) überprüfen, welche Logik-Operation ausgeführt werden soll..

Also ich hab mich auch für ne Gate-Klasse entschieden, und alle speziellen davon abgeleitet, da muss man sich wenigstens keine Gedanken mehr um den Typ des Gatters machen.

Benutzeravatar
MrGroover
Beiträge: 3593
Registriert: 02.12.2003 09:48
Name: Micha
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2003
Angestrebter Abschluss: Dipl-Ing.
Contact:

Schaltung fürs Praktikum

Beitrag von MrGroover » 16.06.2004 15:05

Naja, die Überprüfung ist doch schnell gemacht. Einfach nen Switch und schon wars das. Der Geschwindigkeitsunterschied zur Abgeleiteten Klasse is net so arg, also geht das schon...
Außerdem merken sich meine Gatter was se sind, und sagen dass nur zur Berechnungszeit, wie se nu am Liebsten ihre Eingänge miteinander verknüpft haben wollen. Wir sind ja bei Wünsch dir was, zumindest, was da angeht...

Aber mal ne Frage: Wie greifst du da denn auf die Klasse zu, also wie realisierst du den Zugriff auf die AND2-Klasse? Und wie funzt das wenn de net weeßt wie die Klasse vorher heeßt???

larva
Beiträge: 66
Registriert: 11.12.2003 23:42

Schaltung fürs Praktikum

Beitrag von larva » 16.06.2004 15:31

Wozu gibts denn sonst Polymorphismus?

Man muss nur beim Erstellen wissen, was es für ein Gatter ist (im Parser also). Dann wird das Objekt mittels AND-Konstruktor (die Anzahl der Eingänge speicher ich in einer Klassenvariable) erstellt und in eine Hashmap überführt, in der alle Gatter gespeichert werden.

Somit braucht man jetzt nur noch einen Cast nach Gate (der Superklasse von AND) und Java ruft selbstständig die richtigen AND-Methoden auf.

Das funktioniert allerdings nur, wenn in der Superklasse ein Methoden-Prototyp vorliegt, der in den Unterklassen überladen wird.
(is wie das \"virtual\" in C++; ich hab Ewigkeiten gebraucht um festzustellen, dass Java das auch kann, in den Büchern steht jedenfalls nichts davon)
- Editiert von LRV am 16.06.2004, 17:07 -

kermit
Beiträge: 297
Registriert: 03.01.2004 22:28
Studienrichtung: Informatik
Matrikel: 2003

Schaltung fürs Praktikum

Beitrag von kermit » 16.06.2004 17:47

[quote]@Kermit: Aber warum fällt dir das so schwer, mehr als einen Circuit zu handeln? [/quote]

Keine Ahnung, machmal versuche ich wohl, über zu viele Ecken zu denken, bzw. ich finde nicht schnell genug die einfachste Lösung. Ich bin vorhin auf die Idee gebracht worden, das Circuit wie alle anderen Gatter von der Superklasse abzuleiten. Somit kann ich mir dann dynamisch auch beliebig viele komplexe Gatter erzeugen.

Ich werde das heute Abend noch testen.

Jochen
Beiträge: 18
Registriert: 09.05.2004 17:08
Contact:

Schaltung fürs Praktikum

Beitrag von Jochen » 17.06.2004 09:36

@derEine; jaja ich setze mich an die EventQueue
Aber da ist ein Problem, theoretisch müsste doch die Eventqueue jeden Gatterausgang zurückbekommen und ihn nach einer Verzögerung in dann an das nächste Gatter weitergeben, dein Programmrumpf gibt momentan zwischen den Gattern gar nichts zurück; ich weis aber auch nicht ob das wirklich nötig ist!

Gesperrt

Zurück zu „1. und 2. Semester“