0 Daumen
56 Aufrufe

Ich habe folgenden Codeausschnitt gegeben:

Zustand s1 = new Zustand();
Zustand s2 = new Zustand();
Zustand s2 = new Zustand();
Zustand s4 = new Zustand();

EndlicherAutomat ea = new EndlicherAutomat(s1);

s3.accepting = true;
s1.aNext = s2;
s1.bNext = s3;
s3.bNext = s4;
s4.bNext = s3;

Meine Aufgabe ist es, eine Zeichnung vom Automaten mit entsprechenden ZustÀnden zu machen. Der Startzustand hat einen extra Pfeil, der auf ihn gerichtet ist, der Endzustand hat zwei Kreise, um diesen als solchen zu kennzeichnen.
Ich habe eine Zeichnung gemacht, die fĂŒr mich irgendwie schlĂŒssig war, allerdings habe ich andere Lösungen gesehen, die zb Pfeile auf den Zustand selbst hatten. 

Kann mir jemand sagen, wie ich diesen Code interpretieren soll, um dann auf meine Lösung zu kommen ? Anscheinend deute ich etwas mit den Zeigern falsch.

Gefragt von

1 Antwort

+1 Punkt
Kann mir jemand sagen, wie ich diesen Code interpretieren soll

Ich muss an dieser Stelle auch interpretieren, da die nötige Informationsmenge nicht vollstĂ€ndig ist. Wieso wird z. B. die Unterscheidung zwischen aNext und bNext getroffen? Ich vermute, dass damit die Zeichen gemeint sind, die auf den Pfeilen stehen sollen. Zudem nehme ich an, dass im Konstruktor eines EndlicherAutomat-Objekts der Startzustand ĂŒbergeben wird. Folgende Interpretationen sind auf dieser Basis sinnvoll:

1.png

Oder

3.png

Man könnte es aber auch so sehen, dass jeder Zustand zwei FolgezustÀnde haben kann/sollte.

Ich brauche hier mehr Input von Deiner Seite (z. B. den vollstÀndigen Aufgabentext)!

Beantwortet von 7,6 k

"In der Vorlesung haben sie Turingmaschinen kennengelernt. Die wesentlichen Bestandteile einer Turingmaschine sind eine Menge von ZustĂ€nden, eine Übergangsfunktion und ein Band. In dieser Aufgabe wollen wir uns mit einem schwĂ€cheren Berechnungsmodel beschĂ€ftigen; dem endlichen Automaten. Wie Turingamschinen entscheidet ein endlicher Automat, ob ein Wort zu einer Sprache gehört oder nicht. Wir schrĂ€nken uns auf Sprache ĂŒber dem Alphabet âˆ‘={a,b} ein. Wie eine Turingmaschine besteht ein endlicher Automat aus eine Menge von ZustĂ€nden und einer Übergangsfunktion. Allerdings kann ein endlicher Automat ein Eingabwort nur einmal von links nach rechts lesen. Er verfĂŒgt also ĂŒber kein Band, auf dem er sich beliebig bewegen kann. Ein endlicher Automat hat einen Startzustand. Eine Teilmenge der ZustĂ€nden sind akzeptierende ZustĂ€nde. Befindet sich ein endlicher Automat nach dem Lesen eines Eingabewortes in einem akzeptierenden Zustand, wird das Wort akzeptiert.

[an dieser Stelle ist ein Beispiel mit Zeichnung und zwei Wörtern, mit denen man ĂŒberprĂŒft ob der Automat in den endlichen Zustand kommt]

In dieser Aufgabe soll ein endlicher Automat in Java implementiert werden. Dazu reprĂ€sentiert die Klasse Zustand einen Zustand eines endlichen Automaten zusammen mit der Übergangsfunktion. Um die Übergangsfunktion darzustellen, soll ein Zustand zwei Zeiger vom Typ Zustand enthalten: aNext und bNext. Der Zeiger aNext soll auf den Folgezustand zeigen, fĂŒr den Fall, dass ein a gelesen wird, analog fĂŒr den Zeiger bNext. [Infos fĂŒr die andern Teilaufgaben bzgl weiterer Methoden und Klassen]

[Das ist der einleitende Text gewesen mit ErlĂ€uterungen fĂŒr die anderen Teilaufgaben]

a) Der folgende Code-Ausschnitt soll den Gebrauch der Klassen verdeutliche. Zeichnen Sie den Automaten der im Code-Ausschnitt erzeugt wird. Benutzen Sie Notationen wie in Abbildung 1 [gemeint sind zb S1,etc] ZustĂ€nde sind beschriftete Kreise. Die Übergangsfunktion stellen Sie als beschriftete Pfeile dar. Kennzeichnen Sie den Startzustand mit einem zusĂ€tzlichen Pfeil und einen akzeptieren Zustand durch einen Doppelkreis.

[hier kommt der oben beschriebene Code]"

Die Frage ist nun, ob nicht explizit festgelegte Werte fĂŒr aNext und bNext einen Selfpointer als Default haben. Falls ja, dann sieht der Automat wie folgt aus:

1.png

Ach...mir ist gerade klar geworden, warum die Zeichnung so aussieht. Oh man!

Danke!

Ich weiß nicht ganz was du mit dem Default meinst, aber mehr Informationen zu den Zeigern gibt es in der Aufgabe leider nicht

Gerne :-)

Ich weiß nicht ganz was du mit dem Default meinst [...]

Mit "Default" meine ich/meint man: Wenn nicht anders angegeben, wird ein Standardwert verwendet (wie z. B. false bei boolean).

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage sofort und kostenfrei

x
Made by a lovely community
...