![]() |
Arrays mit drei Dimensionen... nicht einfach -.-
Hi Leutz,
Ich habe ja in der vergangenen Zeit viele Fragen zu arrays bzw. Automaten gestellt... ^^ Hier kommt die wahrscheinlich letzte: Wie kann ich drei Variablen in einem dynamischen Array speichern? Ich brauche ja die Zustände, den Kellerzustand und die Eingabe. Und dann muss dieses Array auch zwei Sachen ausgeben: Neuer Zustand und Kelleroperation. Bsp.: Wenn ich überprüfen lassen will, ob ein eingegebener Term dem Muster A^n*B^n entspricht, kann ich Zeichen für Zeichen vorgehen und habe dann die vier Zustände zS (Start- und Zielzustand), zA (mehr As als Bs), zB (mehr Bs als As) und zF (Fehlerzustand, aus dem man nie wieder raus kommt). Das Problem ist aber, dass ich jeden dieser Zustände noch aufteilen muss, je nachdem, ob in meinem Stack/Keller schon eine Marke, die Startmarke oder nichts liegt. Und wie gesagt müsste die Ausgabe ja auch beinhalten a) den neuen Zustand und b) die Kelleroperation -push, pop oder nop - z.B. wenn ein A kommt, ich im Zustand zB bin und nur eine Marke auf dem Stack liegt: zS|pop. Wie kann ich sowas machen? Ich krieg's einfach nicht in mein Hirn. Ohne den Keller wäre das einfacher, dann könnte man einfach ein Array array[Zustand, Eingabe] of NeuerZustand machen. Das wäre quasi die Automatentabelle. Kann mir einer helfen, das auch mit drei Dimensionen zu schaffen? pls? Danke schon mal, falls das ginge *unterwürfig* [edit=Jelly] Es geht um ![]() Nächstes Mal bitte selbst editieren... :warn: Mfg, Jelly[/edit] |
Re: Arrays mit drei Dimensionen... nicht einfach -.-
Hi,
was hälst du denn von einem Array mit einem Record?
Delphi-Quellcode:
Chris
TElement = record
variable1: String; variable2: Integer; end; var arr: array of TElement; EDIT: Ich glaube, ich hab' dich falsch verstanden... Wie wäre es, wenn du zu dem Thread mit der "Keller-Frage" verlinkst? |
Re: Arrays mit drei Dimensionen... nicht einfach -.-
Dafür würde ich einen Record deklarieren.
Mehrdimensional Array kann man aber leicht anlegen:
Delphi-Quellcode:
oder
myarray: Array of array of String;
Delphi-Quellcode:
type
sarray = Array of string; ... var myarray: Array of sarray; |
Re: Arrays mit drei Dimensionen... nicht einfach -.-
Keller
Stack Marke :roteyes: :roteyes: :roteyes: Nix comprende, compadre :wall: EDIT: Verlinke bitte in deinem ersten Beitrag auf den anderen Keller Thread... So blickt ja kein Mensch durch worums geht. |
Re: Arrays mit drei Dimensionen... nicht einfach -.-
Link
![]() Aber ich brauche ja quasi drei Dimensionen. array of array wäre doch nur 'ne Tabelle, oder? |
Re: Arrays mit drei Dimensionen... nicht einfach -.-
Und Array of Array of Array wäre eine 3D-Matrix ;)
Aber ich hab' dein Problem immer noch nicht verstanden... :stupid: Chris |
Re: Arrays mit drei Dimensionen... nicht einfach -.-
Überleg dir das noch mal mit dem Record.
Delphi-Quellcode:
myarray: array of array of array of string;
|
Re: Arrays mit drei Dimensionen... nicht einfach -.-
Naja, ich muss wissen, in welchem Zustand der Automat sich befindet, welchen Kellerzustand der Keller hat, und welche Eingabe getätigt wurde, um den Neuen Zustand und die Kelleroperation festlegen zu können. Inhaltlich musstes ja gar nicht verstehen, nur wie progge ich mir das zusammen?
Hlp pls! |
Re: Arrays mit drei Dimensionen... nicht einfach -.-
Wie gesagt, mit einem Record:
Delphi-Quellcode:
Chris
TKeller = record
Zustand: Integer; Kellerzustand: Integer; Eingabe: String; end; ... var Kellerelemente: array of TKeller |
Re: Arrays mit drei Dimensionen... nicht einfach -.-
Einen Stack (Keller) implementiert man besser mit einer Liste. Brauchst du den Zustand an einer bestimmten Position der Liste oder nur den aktuellen?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 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