Info Praktikum

Aufgaben, Lösungen, Klausuren
Dogmi
Beiträge: 49
Registriert: 08.12.2006 16:12

Info Praktikum

Beitrag von Dogmi » 07.06.2007 19:11

keine Testklassen, ist mir zuviel arbeit, aber die Probleme sind eh schon gelöst, nur halt das letzte nicht,

hab aber herausgefunden das es noch in zweites Signal memOut3 gibt was ich übersehen hab.

1490 memOut3 1
.
.
1580 memOut3 0

und die anderen werte stimmen, kann es vielleicht sein das die nur vergessen haben das Signal auszugeben, weil es sind ja auch nicht mehr Signale von memOut3 vorhanden, ich meine, wenn ich sage gib die nicht aus, stimmts ja. wäre ein ziemlich großer zufall, vorallem weil alles andere stimmt. Kann das vielleicht irgendjemand bestätigen, vielleicht Morpheus
scheinst ja ahnung zu haben, zumindesten stimmte alles was du geschrieben hast, nur halt zu spät.

Benutzeravatar
Morpheus
Beiträge: 370
Registriert: 31.01.2007 22:12
Name: Tobias
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden
Contact:

Info Praktikum

Beitrag von Morpheus » 07.06.2007 19:48

wenn, dann wäre es schlecht(für mich), denn meine simulationsausgabe stimmt genau mit der von der webseite überein
The honor is still mine.

Dogmi
Beiträge: 49
Registriert: 08.12.2006 16:12

Info Praktikum

Beitrag von Dogmi » 07.06.2007 20:04

ja meine eben auch, wenn ich nicht nach dem memOut3 Signal frage.

Till
Beiträge: 56
Registriert: 21.11.2006 20:24
Contact:

Info Praktikum

Beitrag von Till » 09.06.2007 13:56

ihr seid ja alle schon weit :(

habe ein kleines Problem bei der 2. Aufgabe: Grundsätzlich ist der Quelltext eigentlich fast fertig, wenn ich auf simulieren gehe labert der Debugger aber etwas von \"java.lang.NullPointerException\" und die Konsole bleibt leer - kompilieren ging aber problemlos...

[img]http://666kb.com/i/ap2fk1q81alpxl8a6.png[/img]

sry für das große Bild... welche Fehler könnten denn für solch ein Problem grundsätzlich in Betracht kommen?

Dogmi
Beiträge: 49
Registriert: 08.12.2006 16:12

Info Praktikum

Beitrag von Dogmi » 10.06.2007 10:58

grundsätzlich tritt die exception nur auf, wenn was mit null intialisiert wird wo egentlich was reingehört( event, integer, oder so was halt ), ich nehm mal an bei dir wird ein event nicht übergeben, da ich nichts mit blauen vögel am hut hab und in eclipse programmiere, wo es dir die stelle anzeigt, wo kein wert übergeben wurde, kann ich dir nicht weiter helfen, aber ich denke BlueJ zeigt dir auch die stelle, schau mit System.out.print anweisung bis wohin der wert übergebe wird oder halt wie lange er null ausgibt. je nachdem von welcher richtung ran gehst.

tharon
Beiträge: 23
Registriert: 05.12.2006 20:28

Info Praktikum

Beitrag von tharon » 12.06.2007 07:49

diese beiden ausgaben \"Q=false\" und nQ=false\" werden immer ausgegeben. \"nullpointer exception\" entsteht nie bei dem befehl system.out.println\"...\"; es entsteht wenn eine Array oder Arraylist nicht richtig erzeugt wurde.


ArrayList gatterliste;

hiernach würde ich mir genau diesen fehler Ausgeben \" NullPointerException\". du musst immer deiner arraylist/array durch den operator \"new\" erzeugen.

gatterliste=new ArrayList();

erst wenn beides abgearbeitet wurde, dann kannst du diese ArrayList/Array richtig nutzen ohne Fehlermeldung.

noch etwas: da deine beiden ausgänge zwar duch den findSteadyState berechnet werden sie aber erstens beide false sind, was schon mal falsch ist, und zweitens du es gar nicht in der methode \"setValue\" richtig berechnen könntest, da deine ArrayList/Array nicht richtig erzeugt wurde (s.o)... das hat zur folge, dass du in dem bereich noch noch ne ganze menge fehlt!

Nickname
Beiträge: 2
Registriert: 19.06.2007 17:41

Info Praktikum

Beitrag von Nickname » 19.06.2007 17:46

Hallo! Habe Problem bei der 2ten Aufgabe. Meine Konsole spuckt folgendes aus:

Baue event s2|| werttrue || t 5
Baue event s1|| werttrue || t 5
Q = false
nQ = false
Baue event S|| werttrue || t 10
Baue event S|| wertfalse || t 30
Baue event R|| werttrue || t 50
Baue event R|| wertfalse || t 100
Baue event S|| werttrue || t 120
Baue event R|| werttrue || t 150
Baue event S|| wertfalse || t 170
Baue event R|| wertfalse || t 180
Queue-Zeit = 5
Berechne nand s4
Baue event s4|| werttrue || t 15
Queue-Zeit = 10
Berechne nand s2
Baue event s2|| wertfalse || t 15
Queue-Zeit = 30
Berechne nand s2
Queue-Zeit = 50
Berechne nand s1
Queue-Zeit = 100
Berechne nand s1
Baue event s1|| werttrue || t 105
Queue-Zeit = 120
Berechne nand s2
Baue event s2|| wertfalse || t 125
Queue-Zeit = 150
Berechne nand s1
Queue-Zeit = 170
Berechne nand s2
Queue-Zeit = 15
Berechne nand s3
Baue event s3|| werttrue || t 25
Berechne nand nQ
=> nQ = false
Queue-Zeit = 125
Berechne nand s4
Queue-Zeit = 105
Berechne nand s3
Queue-Zeit = 15
Berechne nand s4
Queue-Zeit = 25
Berechne nand s4
Berechne nand Q
=> Q = false
Queue-Zeit = 180
Berechne nand s1

Das Problem ist, dass die Zeit der aktuellen Events nicht richtig verläuft, wahrscheinlich werden die Events falsch einsortiert.
Wer kann mir helfen?
Danke im voraus.

Benutzeravatar
Morpheus
Beiträge: 370
Registriert: 31.01.2007 22:12
Name: Tobias
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden
Contact:

Info Praktikum

Beitrag von Morpheus » 19.06.2007 20:38

um dir zu helfen, müsste man wissen, wie du die events einträgst, weil nur anhand der ausgaben ist nur ersichtlich, dass offenbar was nicht stimmt. ;-)
The honor is still mine.

Gelenke-Harald
Beiträge: 37
Registriert: 27.11.2006 22:44

Info Praktikum

Beitrag von Gelenke-Harald » 21.06.2007 20:39

hi ich hab ma ne frage, ich bin jetzt bei drittens und hab bissle probleme mit dem flip flop vielleicht hab ich auch nur schon wieder zulange programmiert und mir fällt keine gute mehr idee ein, wollt generell mal fragen wie ihr das flip flop realisiert habt?
Wer nicht arbeitet, soll wenigstens gut essen!!!

chris´^^
Beiträge: 217
Registriert: 27.11.2006 21:53

Info Praktikum

Beitrag von chris´^^ » 21.06.2007 21:08

@ KalrHeinz:

dein einschwingen ( findSteadySate(); ) funktioniert nicht, da die Werte Q=nQ=false ist und dies is ja ein verbotener zustand.
anscheinend verwendest du zum einschwingen schon das zeitabh. setValueMitEvents ... vlt reicht das ja schon.
\"Every gun that is made, every warship launched , every rocket fired, signifies in the final sense a theft from those who hunger and are not fed, those who are cold and not clothed.\"

-President Dwight D. Eisenhower

Benutzeravatar
Morpheus
Beiträge: 370
Registriert: 31.01.2007 22:12
Name: Tobias
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden
Contact:

Info Praktikum

Beitrag von Morpheus » 22.06.2007 09:20

@ hazard:
denk dran dass das flipflop aus zwei latches besteht, bei deinen die enable eingänge unterschiedlich reagieren. das erste ändert den wert bei clk = 0 und wenn die clk auf 1 geht, übernimmt latch zwei den wert des ersten latch und das erste latch kann sich nicht mehr ändern, weil der enable eingang negiert ist. schaus dir einfach nochmal in den folien vom ersten semester an, da ist es eigentlich sehr deutlich zu sehen.

lösungsvorschlag, einfach einen internen wert einführen, der dieses ausgang (ich glaub q1 in der zeichnung) vom ersten latch symbolisiert und dann entsprechend bei clk = 0 den normalen ausgang so lassen wie er ist(da entsteht kein event !!), den internen wert aber auf den wert des data eingangs ändern und wenn clk = 1 ist, dann den internen wert an den normalen q ausgang setzen(da muss jetzt nen event stehen, da sich q ja ändert). der interne wert bleibt aber gleich, der kann sich eben nicht mehr ändern.

so hoffe, das war hilfreich. zu dem thema events nochmal, alles was innerhalb des gatters passiert ist zeitlos, nur wenn sich wirkliche ausgänge ändern, dann müssen events gebastelt werden.
also das flipflop ist trotzdem nur ein \"kasten\" wobei aber zwei drinstecken, diese abstraktion muss man erstmal verstehen
The honor is still mine.

Gelenke-Harald
Beiträge: 37
Registriert: 27.11.2006 22:44

Info Praktikum

Beitrag von Gelenke-Harald » 23.06.2007 09:55

thx @ morpheus

gibts eigentlich irgend ne festlegung welcher eingang clk oder data ist?
Wer nicht arbeitet, soll wenigstens gut essen!!!

Benutzeravatar
Morpheus
Beiträge: 370
Registriert: 31.01.2007 22:12
Name: Tobias
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden
Contact:

Info Praktikum

Beitrag von Morpheus » 23.06.2007 17:01

in teil 3 war eingang 0 clk /enable, und eingang 1 data
The honor is still mine.

Dogmi
Beiträge: 49
Registriert: 08.12.2006 16:12

Info Praktikum

Beitrag von Dogmi » 24.06.2007 14:20

endlich fertig, wie siehts bei euch aus? :bounce:

hab aber noch ein paar fragen zu den dateien, einmal wurde gate klein geschrieben da hat mein programm rum geschimpft, sollte man das noch ändern, das man das einfach so hin nimmt (ist noch ein parameter den ich ändern müsste)

events bei null nehm ich zum einschwingen, aber wenn es keine null events gibt, soll ich einfach das erste nehmen.
(Schaltung 3 oder 2 war das, bei 4. natürlich)

sollte man den code noch ein bischen nachbearbeiten und dokumentieren oder soll der mist nur funzen

Benutzeravatar
Morpheus
Beiträge: 370
Registriert: 31.01.2007 22:12
Name: Tobias
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden
Contact:

Info Praktikum

Beitrag von Morpheus » 25.06.2007 12:47

@ dogmi

zum einschwingen solltest du eigentlich so was wie ne findsteadystate -methode haben, der an alle inputs einfach false anlegt. wie in den beiden timingsimulatoren

zum thema groß und kleinschreibung, entweder führst du auf dem string irgendwas mit toLowerCase (alles in kleinbuchstaben) oder toUpperCase(alles in großbuchstaben) oder du verwendest (weiß ja nicht wie du das machst) anstatt der equals() methode einfach die equalsIgnoreCase() methode.
kleiner tipp: Java Sun Referenz
The honor is still mine.

Benutzeravatar
henry
Beiträge: 221
Registriert: 02.04.2007 14:23
Name: henry
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Contact:

Info Praktikum

Beitrag von henry » 25.06.2007 14:11

Ich weiß es ja nicht so genau, aber ich halte das eher für einen Fehler, wenn die ein einziges mal dieses \"gate\" kleinschreiben.
Wenn man das extra behandelt, so kann man ja kein Gatter den Namen \"gate\" geben, weil das Programm dann von einer neuen Initialisierung ausgeht.
-------------------------
Bsp.:
# Dieser Fall wäre unmöglich:

Gate gate BUF Delay 60;
gate.i1 = s2;
-------------------------
mfg henry

P.S.: Natürlich kann man das auch machen, würde aber eine sehr viel komplexere Programmierung erfordern.
P.P.S.: Weil es mir gerade noch einfällt: Habt ihr für AND2, AND3, AND4 jeweils extra Klassen programmiert, oder das alles in einer erledigt?
"I'm not against all wars. I'm against dumb wars" -Barack Obama

Benutzeravatar
Morpheus
Beiträge: 370
Registriert: 31.01.2007 22:12
Name: Tobias
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden
Contact:

Info Praktikum

Beitrag von Morpheus » 25.06.2007 15:52

@ henry:

also ich habs so gemacht und es war aboslut nicht umständlich. brauchst doch nur den string tokenizer benutzen und dann das erste wort entsprechend der schlüsselwörter interpretieren und das programm darauf reagieren lassen.

klar, das wird absolut überischtlich, wenn du für AND2, AND3, AND4 jeweils ne eigne klasse schreibst *LOL*
viel spaß bei NAND2, NAND3, NAND4, OR2 .... soll ich weitermachen ?!
vllt. doch mal in der string doku nachschauen was so alles schönes gibt
The honor is still mine.

Benutzeravatar
henry
Beiträge: 221
Registriert: 02.04.2007 14:23
Name: henry
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Contact:

Info Praktikum

Beitrag von henry » 26.06.2007 12:39

@Morpheus:

Hast du alleine gemacht? Wann verteidigst du?
Mein Programm ist fast fertig. Wenn die sich mal auf eine einheitliche Grammatik verständigt hätten (also entweder Leerzeichen nach dem Komma bzw. Gleichheitszeichen oder nicht), dann wäre ich auch jetzt schon fertig. So werde ich mich heute abend noch einmal hinsetzen müssen.

Naja, bald ist der ganze Spuk vorbei. Danach spiele ich nur noch Moorhuhn!

mfg henry
P.S. Was die Klassen (AND2, AND3...) angeht, ich habe für alle nur eine, so dass ich insgesamt auf 9 Klassen komme, die alle von Gatter erben. Im Dateisimulator bestimme ich dann halt, wieviel Eingänge die einzelnen Gatter haben. Ich bin mir halt nur nicht sicher, ob die lieber 19 Klassen gehabt hätten, weil es ja in der Aufgabe so steht. Ich weiß ja nicht, wie die sich da so haben...
"I'm not against all wars. I'm against dumb wars" -Barack Obama

chris´^^
Beiträge: 217
Registriert: 27.11.2006 21:53

Info Praktikum

Beitrag von chris´^^ » 26.06.2007 12:56

is schon richtig so... zur 3ten aufgabe meinte doch der Hochberger, dass vererbung angewand werden soll. anders hatte man die aufgabe auch garnicht hinkriegen können, ohne den FullTimingSimulator zu verändern.

und da die aufgabe 4 auf die aufgabe 3 aufbaut, sollst du auch keine 19 klassen haben, sondern ne superklasse Gatter mit allmöglichen subklassen.
\"Every gun that is made, every warship launched , every rocket fired, signifies in the final sense a theft from those who hunger and are not fed, those who are cold and not clothed.\"

-President Dwight D. Eisenhower

Gelenke-Harald
Beiträge: 37
Registriert: 27.11.2006 22:44

Info Praktikum

Beitrag von Gelenke-Harald » 26.06.2007 15:08

man kann doch die berechnung für die gattertypen unabhängig von der anzahl der eingänge machen ich habs zum beispiel bei AND so gemacht, das das ergebnis vom ausgang standartmäßig true ist und sobald ein false an irgendeinem eingang anliegt ist natürlich auch der ausgang false, analog bei bei den andern klassen
zwecks vererbung bin ich noch einen schritt weiter gegangen, NAND ist zum beispiel wieder ne unterklasse von AND usw. und klappt auch wunderbar in der NAND klasse steht jetzt wenn man so will eigentlich sehr wenig drin man muss halt nur das ergebnis vom AND negieren ;-)

und ma nebenbei ich denke wenn das programm funktioniert dann ist denen doch egal wie man das gemacht hast, hauptsache man kanns erklären :)
Wer nicht arbeitet, soll wenigstens gut essen!!!

Benutzeravatar
Stormbreaker
Beiträge: 909
Registriert: 06.06.2004 13:07
Name: Gesine Schwan
Geschlecht: weiblich
Matrikel: 2012
Angestrebter Abschluss: Doktor

Info Praktikum

Beitrag von Stormbreaker » 26.06.2007 17:43

Wer jetzt nicht langsam fertig ist mit dem Praktikum, der sollte sich überlegen, was er hier eigentlich noch will!
Einen Tag nachdem Bundespräsident Köhler in China war, wird zB der Bau einer Transrapidstrecke über 750km abgesagt. Dieses Jahr, vor wenigen Wochen ist das ThyssenKrupp-Siemens-Konsortium getrennte Wege gegangen. Dies kann und darf nicht sein und genau deshalb nehme ich ab jetzt das Ruder in die Hände!

Benutzeravatar
henry
Beiträge: 221
Registriert: 02.04.2007 14:23
Name: henry
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Contact:

Info Praktikum

Beitrag von henry » 26.06.2007 19:47

[quote=Frère]Wer jetzt nicht langsam fertig ist mit dem Praktikum, der sollte sich überlegen, was er hier eigentlich noch will![/quote]

Wieso, ist das hier das Eliteforum, wo der einfache Student, der nicht nur 1.0 hat, nicht hingehört?

Ok, dann verabschiede ich mich wohl...

mfg blödi
"I'm not against all wars. I'm against dumb wars" -Barack Obama

chris´^^
Beiträge: 217
Registriert: 27.11.2006 21:53

Info Praktikum

Beitrag von chris´^^ » 26.06.2007 20:54

[quote=Frère]Wer jetzt nicht langsam fertig ist mit dem Praktikum, der sollte sich überlegen, was er hier eigentlich noch will![/quote]

Wer n polnischen Adler als Avatar und Viva Polska!! im Profil stehen hat, der sollte sich überlegen, ob in seiner Signatur Tipps zum Erobern (wohl anderer Länderein) wirklich angebracht sind. :(
\"Every gun that is made, every warship launched , every rocket fired, signifies in the final sense a theft from those who hunger and are not fed, those who are cold and not clothed.\"

-President Dwight D. Eisenhower

Benutzeravatar
Stormbreaker
Beiträge: 909
Registriert: 06.06.2004 13:07
Name: Gesine Schwan
Geschlecht: weiblich
Matrikel: 2012
Angestrebter Abschluss: Doktor

Info Praktikum

Beitrag von Stormbreaker » 27.06.2007 12:42

[quote=chris^^][quote=Frère]Wer jetzt nicht langsam fertig ist mit dem Praktikum, der sollte sich überlegen, was er hier eigentlich noch will![/quote]

Wer n polnischen Adler als Avatar und Viva Polska!! im Profil stehen hat, der sollte sich überlegen, ob in seiner Signatur Tipps zum Erobern (wohl anderer Länderein) wirklich angebracht sind. :([/quote]
Man versucht Streit zwischen Polen und Deutschland zu sähen.
Einen Tag nachdem Bundespräsident Köhler in China war, wird zB der Bau einer Transrapidstrecke über 750km abgesagt. Dieses Jahr, vor wenigen Wochen ist das ThyssenKrupp-Siemens-Konsortium getrennte Wege gegangen. Dies kann und darf nicht sein und genau deshalb nehme ich ab jetzt das Ruder in die Hände!

Gelenke-Harald
Beiträge: 37
Registriert: 27.11.2006 22:44

Info Praktikum

Beitrag von Gelenke-Harald » 27.06.2007 16:27

leute verlagert euer dünnes gelaber woanders hin, keiner will den mist hier lesen

ps: die admins lassen sich aber irgendwie auch nie blicken oder?
Wer nicht arbeitet, soll wenigstens gut essen!!!

Gesperrt

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