Codeverständnis zum Info Praktikum

Antworten
don_molo
Beiträge: 41
Registriert: 21.06.2008 13:28

Codeverständnis zum Info Praktikum

Beitrag von don_molo » 20.05.2010 16:19

Hallo.
Ich bin mitlerweilen beim 2.Teil vom Info Praktikum. Hab mich beim Bearbeiten der Aufgabe an nem hochgeladenen Code vom Forum orientiert - hab jetzt allerdings nen paar Probleme einen Teil des Quelltextes zu verstehen(bei der evaluate Mehtode des Nand-Gatters):

if (zaehler > 0)
{
zaehler--;

if(zaehler == 9)
{
letzterOutput = resultat;
ausgang.setValue(resultat);
return;
}

if(letzterOutput != resultat)
{
letzterOutput = resultat;
ausgang.setValue(resultat);
}
}
}

Ich hab den 2.Teil, den ich als Vorlage benutzt hab, nochmal komplett angehängt. Wäre top, wenn mir vllt jmd aus den älteren Semestern auf die Sprünge helfen könnte, was in dem Teilstück genau passiert.
Danke schonmal im Vorraus
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Blade
Beiträge: 11
Registriert: 22.06.2009 18:24
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2008

Re: Codeverständnis zum Info Praktikum

Beitrag von Blade » 21.05.2010 22:01

So weit ich mich erinnern kann: Bei rückgekoppelten Schaltungen käme es zu einer Endlosschleife. Der Zähler bewirkt, dass das NAND-Gatter nur 10 mal berechnet werden kann. Die 10 ist hier zufällig gewählt, aber bei größeren Schaltungen reichen manchmal die 10 Durchläufe nicht aus.
Beim ersten Durchlauf der Schaltung (zaehler == 9) wird normal der Ausgang gesetzt. Dann wird nur noch mit der unteren if-Bedingung kontrolliert, ob sich der Ausgang im Vergleich zur vorhergehenden Berechnung geändert hat. Wenn nein, dann muss nicht neu berechnet werden.

aizzz
Beiträge: 140
Registriert: 02.10.2007 12:36
Matrikel: 2012

Re: Codeverständnis zum Info Praktikum

Beitrag von aizzz » 01.06.2010 12:56

for(Map.Entry<String, Gatter> g : gatter.entrySet())
{
((Gatter)(g.getValue())).setName(g.getKey());
}

kann mir vllt jmd kurz erklären was hier in etwa passiert?
('gatter' ist eine HashMap)
Bei dem Ganzen geht es wohl um eine TreeMap (wäre nett wenn ihr gleich mal erklären könntet was eine TreeMap macht und wie sie funktioniert).

Benutzeravatar
Locutus
Beiträge: 604
Registriert: 30.10.2008 23:04
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2008
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden
Contact:

Re: Codeverständnis zum Info Praktikum

Beitrag von Locutus » 01.06.2010 16:38

(Gatter) müsste cast-operation sein (sprich, das, was rauskommt, wird als typ gatter gewertet).
das ganze ist eine for-schleife - hierbei wird einfach die gatter-liste abgefahren und damit im endeffekt die funktion setName des gatters, welches in dem schleifendurchgang in g abgelegt wird und dessen wert über die funktion g.getValue() geholt wird, ausgeführt, wobei der wert, der von getKey des gatters g zurückgegeben wird - so schwer ist das wirklich nicht. nur etwas verschachtelt, da durchzuschauen kann schon manchmal etwas... unangenehm sein. ^^

Antworten

Zurück zu „2. Semester: Diskussionen“