Autor |
Beitrag |
ArchaicSeraphim
Hält's aus hier
Beiträge: 6
Win 95, Win 98, Win 2000, Win ME, Win XP, Suse Linux
Delphi 7 PE
|
Verfasst: Do 15.11.07 19:11
Hallo Leute!
Mein erster Thread, wow. Und schon hab' ich 'ne Frage: Wie genau funktioniert "record"? Ich habe mal versucht, das anzuwenden, aber es ist voll fehlgeschlagen. Aber seht selbst (Anhang).
Ich habe mir zuerst einmal einen Keller gebastelt (Kellerunit). Dann habe ich versucht einen Automaten zu bauen, der den Keller als Stack benutzen kann. Problem: Geht nicht. Warum weiß ich nicht. Ich bin alles x mal durchgegangen...
Bitte helft mir!
Danke schon mal im vorraus,
ArchaicSeraphim
Einloggen, um Attachments anzusehen!
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Do 15.11.07 19:23
Hallo und  !
Bitte beschreibe doch etwas genauer, was nicht funktioniert. Kommen Fehlermeldungen beim Kompilieren (wenn ja, welche?), funktioniert etwas währen der Ausführung nicht?
Es ist außerdem besser, wenn Du Deinen Quellcode bzw. die relevanten Stellen davon im Beitrag postest, damit man sich nicht erst was herunterladen muss.
Grüße
Christian
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
ArchaicSeraphim 
Hält's aus hier
Beiträge: 6
Win 95, Win 98, Win 2000, Win ME, Win XP, Suse Linux
Delphi 7 PE
|
Verfasst: Do 15.11.07 19:31
Ups, sorry. Also Folgendes:
Relevanter Teil der Unit "Automat":
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44:
| unit Automat;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Keller;
type TAutomat = class constructor create; function proof(input:char):boolean; end; TEingabe = (eA,eB,eI); TZustand = (zS,zA,zB,zF); TKellerZustand = (s,m); TUebergang = record NZustand:TZustand; Kellerops:integer; end; TUebergangstabelle = array [TEingabe,TZustand,TKellerzustand] of TUebergang;
const UeT : TUebergangstabelle = ( (((zA),(1)),((zB),(1)),((zF),(0))), (((zF),(0)),((zF),(0)),(zF,(0))), (((zF),(0)),((zF),(0)),(zF,(0))), (((zF),(0)),((zF),(0)),(zF,(0))), (((zF),(0)),((zF),(0)),(zF,(0))), (((zA),(1)),((zA),(-1)),(zF,(0))), (((zB),(-1)),((zB),(1)),(zF,(0))), (((zF),(0)),((zF),(0)),(zF,(0))), );
var e : TEingabe; z : TZustand; k : TKellerzustand; AKeller : TKeller; AUebergang : TUebergang;
implementation |
Fehlermedlungen beim compilen: viele, aber die wichtigsten:
[Fehler] Automat.pas(26): Undefinierter Bezeichner: 'zA'
[Fehler] Automat.pas(26): '=' erwartet, aber ')' gefunden
Zeile 26 ist im Quelltext mit comment gekennzeichnet. Reicht das erstmal?
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Do 15.11.07 20:23
Vielleicht solltest du hier auch auf den Beitrag in der DP verweisen, aus der der Code stammt.
Dann solltest du die Reihenfolge, Eingabe, Zustand einhalten und dann Werte aus den Wertemengen nehmen.
_________________ Markus Kinzler.
|
|
ArchaicSeraphim 
Hält's aus hier
Beiträge: 6
Win 95, Win 98, Win 2000, Win ME, Win XP, Suse Linux
Delphi 7 PE
|
Verfasst: Do 15.11.07 20:28
Hoi mkinzler!
Schön dich auch mal wieder zu treffen  .
Irgendwie ist mein Beitrag dort (in der DP) in die Bedeutungslosigkeit abgedriftet, deshalb versuche ich hier mal mein Glück.
Der Beitrag.
Aber die anderen Kritikpunkte verstehe ich nicht ganz, ich halte doch alles ein. Kannst du mir ein Beispiel geben, wo ich das nicht getan habe?
Greetz 
_________________ In diesem Sinne,
Arc
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Do 15.11.07 22:51
Du hast Dich mit deiner Aufgabenstellung übernommen, aber egal. Vielleicht schaffst Du es ja trotzdem.
Du deklarierst deine TÜebergangstabelle als Array [...] Of TEinRecord;
Der 'TEinRecord' besteht aus DREI Elementen. Wieviele Elemente weisst Du jedem der TUebergangstabelle-Einträge zu? Zähl mal.
_________________ Na denn, dann. Bis dann, denn.
|
|
ArchaicSeraphim 
Hält's aus hier
Beiträge: 6
Win 95, Win 98, Win 2000, Win ME, Win XP, Suse Linux
Delphi 7 PE
|
Verfasst: Do 15.11.07 23:58
TUebergang ist der Record. Und der besteht nur aus NZustand:TZustand und Kellerops:integer oder?
€dit: sorry das ich so spät antworte, war mal kurz weg.
€dit2: Hab's jetzt auch ohne eure Hilfe geschafft ;P. Ich war wirklich blöd. Hab' jetzt zwei Tabellen.
_________________ In diesem Sinne,
Arc
|
|
|