Autor |
Beitrag |
Uwe Faulhaber (Uvwa)
| Veröffentlicht am Donnerstag, den 14. Juni, 2001 - 14:18: |
|
Brauche dringend Hilfe !! Konstruieren Sie einen endlichen Automaten, der alle Zeichenfolgen akzeptiert, die syntaktisch korrekte (PASCAL-) Gleitpunktzahlen darstellen. Beispiele für syntaktisch korrekte Gleitpunktzahlen sind: 0, +12, -43E7, 17.1, 43.758E-25. Informell kann der Aufbau von Gleitpunktzahlen wie folgt beschrieben werden: Eine Gleitpunktzahl kann mit einem Vorzeichen beginnen, sie muß aber kein Vorzeichen besitzen. Der ganzzahlige Anteil besteht aus einer Folge von Ziffern, die nicht leer sein darf. Der Dezimalanteil beginnt mit einem Punkt, dem eine nicht leere Folge von Ziffern folgen muß. Der Exponentenanteil beginnt mit dem Symbol E, worauf eine nicht leere Folge von Ziffern folgen muß, die ein Vorzeichen haben kann. Dezimalanteil oder Exponentenanteil oder beide können fehlen. |
Thomas
| Veröffentlicht am Freitag, den 15. Juni, 2001 - 01:02: |
|
Der folgende Automat mit 8 Zuständen müsste genau diese Zeichenfolgen erkennen: Startzustand: z0 Endzustände: z2,z4,z7 Übergänge: z0->z1 mit +,- z0->z2 mit 0..9 z1->z2 mit 0..9 z2->z2 mit 0..9 z2->z3 mit . z2->z5 mit E z3->z4 mit 0..9 z4->z4 mit 0..9 z4->z5 mit E z5->z6 mit +,- z5->z7 mit 0..9 z6->z7 mit 0..9 z7->z7 mit 0..9 Bedeutung: - von z0 kann man + oder - lesen (nach z1) oder gleich mit einer Ziffer nach z2 gehen - in z2 liest man alle Ziffern vor dem Komma und geht dann entweder zu z3 (Nachkomma) oder z5 (Exponent) - in z3 liest man die eine notwendige Ziffer und dann in z4 beliebig viele weitere. Man kann dann auch noch nach z5 (Exponent) gehen - beim Exponenten liest man eventuell ein + oder - (z6) und dann mindestens eine Ziffer (um nach z7 zu kommen) worauf dann beliebig viele weitere Ziffern folgen können. |
Uwe Faulhaber (Uvwa)
| Veröffentlicht am Samstag, den 16. Juni, 2001 - 13:10: |
|
Vielen Dank Thomas |
|