WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Zustandsautomaten

 

T_0
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 03.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.11.2016, 15:28     Titel: Zustandsautomaten
  Antworten mit Zitat      
Moin, ich habe ein Problem mit einer Übungsaufgabe für eine Prüfung.

Die Aufgabe lautet:
"Definieren Sie einen Zustandautomaten, der erkennt, ob das Wort "Hallöchen" am Anfang einer beliebigen Zeichenkette wort enthalten ist. Es genügt
hierbei, zu erkennen, ob jeweils die ersten vier Buchstaben des Wortes "Hallöchen" in wort enthalten sind. Der Einfachheit
halber sollen nur Kleinbuchstaben des lateinischen Alphabets in der Zeichenkette
vorkommen.
• Zeichnen Sie jeweils den Graphen des ZA-Automaten.
• Geben Sie jeweils den regulären Ausdruck an, der eine Zeichenkette erkennt, die
auch von dem Automaten als richtig erkannt werden soll.
• Ein solcher Automat lässt sich auch mittels einer Tabelle definieren, die erstens zu
jedem Zustand die Ausgabe angibt und zweitens zu jedem Zustand und jedem
Eingabezeichen den Folgezustand beschreibt."



Meine Idee ist bisher relativ kurz:
Code:
function Zustandsautomat(wort,str)
%str='Halloechen'
%z.b. wort = 'Hallo ich bins'



k = strfind(wort,str(1:4))


kann mir vielleicht einer helfen, da ich nicht weiß wie genau ich nun weiter verfahren soll nachdem geprüft worden ist, ob das Wort in wort enthalten ist.



Vielen Dank im Voraus!
Private Nachricht senden Benutzer-Profile anzeigen


Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.11.2016, 16:11     Titel:
  Antworten mit Zitat      
Ein guter Start wäre vielleicht, wenn Du nochmal kurz ins Skript oder in die Vorlesungsaufzeichnung guckst, was ein Zustandsautomat denn überhaupt ist...
Private Nachricht senden Benutzer-Profile anzeigen
 
T_0
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 03.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.11.2016, 16:32     Titel:
  Antworten mit Zitat      
Hallo,
das problem liegt darin, das der Zustandsautomat mit Buchstaben bzw wörtern gefüllt wirdund ich dann nicht weiß wie ich das lösen soll.
lg
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.11.2016, 16:50     Titel:
  Antworten mit Zitat      
Hast Du mal probiert, den Automaten auf ein Blatt Papier zu skizzieren? Wenn das geklappt hat, ist die Umsetzung in der Regel kein Problem mehr...
Private Nachricht senden Benutzer-Profile anzeigen
 
T_0
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 03.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.11.2016, 16:55     Titel:
  Antworten mit Zitat      
hallo,
ja habe ich versucht und zwar habe ich nur

1 ->Hallöchen -> 2->Hall ->3 -> wort ->3
..............................->öchen 4

weil ich nicht verstehe wie das mit strings geht.
Die vorlesung und das Skript sind leider sehr mager.

Vielen Dank dir schonmal
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.11.2016, 17:12     Titel:
  Antworten mit Zitat      
Der Vorteil auf dem Papier ist, dass Papier sich nicht um Datentypen kümmert :-)

Wenn Du in Matlab auf einzelne Buchstaben eines Strings zugreifen willst, ist das ganz einfach, weil ein String nichts anderes ist, als ein Array:
Code:
mein_string = 'abcdef'
erster_buchstabe = mein_string(1)
zweiter_buchstabe = mein_string(2)
erste_vier_buchstaben = mein_string(1:4)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
T_0
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 03.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.11.2016, 17:15     Titel:
  Antworten mit Zitat      
hallo,
danke schonmal für deine antwort, aber ich bin ein echter anfänger.
oben im code habe ich ja
Code:
k = strfind(wort,str(1:4))
. Aber ich weiß ja nicht wie ich dann einen Automaten daraus machen soll.
lg
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.11.2016, 18:11     Titel:
  Antworten mit Zitat      
Beschreib Deinen Automaten am besten erst mal mit Worten in natürlicher Sprache.

Ein Beispiel findest Du z.B. hier: http://www.iwi.hs-karlsruhe.de/~lin.....nPDF/VorlesungAuto2_4.pdf
Private Nachricht senden Benutzer-Profile anzeigen
 
T_0
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 03.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.11.2016, 18:12     Titel:
  Antworten mit Zitat      
danke dir sowas habe ich die ganze zeit gesucht.
mfg
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.