![]() |
Re: Arrays mit drei Dimensionen... nicht einfach -.-
Ich habe dir nur eine alternative, bessere Implementierung für den Stack geliefert.
Der Rest meines Vorschlags ging ja in die selbe Richtung wie alzaimars. |
Re: Arrays mit drei Dimensionen... nicht einfach -.-
Hmm, na dann, danke mkinzler. Aber ich kann das überhaupt nicht benutzen, das ist auf einem so hohen Niveau... ich verstehe zwar ein paar Sachen, aber die meisten Befehle kenne ich nicht und insgesamt ist das total gruselig gut xD
Zu gut für meine Durchschnittsprodukte :oops: €dit: Kann mir auch mal wer sagen, wie ich diese Übergangstabeller mit Werten füllen kann? Ich will die mal als Konstante vorgeben. Die liegt dann ausgelagert in einer Unit "Tabelle1" oder so. Damit man auch verschiedene Automatentafeln benutzen kann. Das Problem ist jetzt, wie fülle ich ein dreidimensionales Array mit 'nem Record drin? Wie fülle ich überhaupt 'nen Record? So:
Delphi-Quellcode:
?
UeT : TUebergangstabelle =
(((NZustand:=zsA,NKellerZustand:=kA),({...usw}),({usw...})), ({usw...}),({usw...})); Geht das? Hilfe! |
Re: Arrays mit drei Dimensionen... nicht einfach -.-
Fast richtig. Einfach die Werte eintragen, ohne 'Namen'.
Delphi-Quellcode:
Const
UT : TUebergangstabelle = ( (a1,b1,c1), (a2,b2,c2) ... ); |
Re: Arrays mit drei Dimensionen... nicht einfach -.-
Öh... hä? :wiejetzt: Ich bin ehrlich verwirrt... Ich dachte, in dem Record werden zwei Sachen gespeichert, muss man dann nicht auch immer zwei Werte eintragen? Also sozusagen
Delphi-Quellcode:
?
Const
UT : TUebergangstabelle = ( ((a1,b1),(c1,d1)), ((a2,b2),(c2,d2)) ... ); |
Re: Arrays mit drei Dimensionen... nicht einfach -.-
Du weisst schon, was ich meine.... Probier halt mal rum.
|
Re: Arrays mit drei Dimensionen... nicht einfach -.-
Hehe, ok, ich probier dann mal rum. Wenn's (wieder, heul) Probleme geben sollte melde ich mich. Wenn's klappt schalte ich die Frage auf beantwortet ;]
€dit: Aha, hab' schon ein Problem: Wie kann ich denn eine Methode in einem Record speichern / auslesen? Ich will ja nicht den neuen Kellerzustand in dem Record haben, sondern die Kelleroperation. |
Re: Arrays mit drei Dimensionen... nicht einfach -.-
Sorry für den Doppelpost, bin so ungeduldig.
Wie kann ich in dem Record eine Methode des Kellers speichern bzw. auslesen? €dit: So sieht mein Krempel bis jetzt aus:
Delphi-Quellcode:
Wo ist der Fehler? HILFE!!!
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.NZustand,TUebergang.Kellerops); const UeT : TUebergangstabelle = ( (((zA),(1)),((zB),(1)),((zF),(0))), // Keller: s zS (((zF),(0)),((zF),(0)),(zF,(0))), // s zA (((zF),(0)),((zF),(0)),(zF,(0))), // s zB (((zF),(0)),((zF),(0)),(zF,(0))), // s zF (((zF),(0)),((zF),(0)),(zF,(0))), // m zS (((zA),(1)),((zA),(-1)),(zF,(0))), // m zA (((zB),(-1)),((zB),(1)),(zF,(0))), // m zB (((zF),(0)),((zF),(0)),(zF,(0))), // m zF ); var e : TEingabe; z : TZustand; k : TKellerzustand; AKeller : TKeller; AUebergang : TUebergang; implementation constructor create; begin inherited create; AKeller := TKeller.create; z := zS; k := s; end; function proof(input:char):boolean; var i,n: integer; begin n := length(input); for i := 1 to n do begin e := input[i]; AUebergang end end; end. |
Re: Arrays mit drei Dimensionen... nicht einfach -.-
Hab' das Problem gelöst. Sry für den Tripelpost xD
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz