Christian: dynamische Arrays in Modula3

Hallo!

Im Studium programmieren wir mit Modula3.
Ich weiß, das es sowas wie dynamische Arrays gibt, wo man nicht vorher scon angeben muß, wieviele Elemente zum Schluss drin sein werden. Kann mir jemand sagen, wie ich sowas definiere, wie ich drauf zugreife und wie ich rausfinden kann, wie viele Elemente schon drin sind?

Vielen Dank für eure Hilfe
Maik

  1. Hi Maik, Christian

    Ich weiß, das es sowas wie dynamische Arrays gibt, wo man nicht vorher scon angeben muß, wieviele Elemente zum Schluss drin sein werden. Kann mir jemand sagen, wie ich sowas definiere, wie ich drauf zugreife und wie ich rausfinden kann, wie viele Elemente schon drin sind?

    Bist du dir sicher, dass dies ein vordefinierter Datentyp ist? -
    Bei einer 3GL Sprache ist dies sehr unüblich.

    Was ich mit dynamischen Arrays assoziiere sind Listen oder Sequenzen.
    Beide verwenden einen Sentinel um das Ende zu kennzeichnen. Bei
    Sequenzen im Filesystem ist es der BOOLEAN eof (End Of File), bei
    Listen ist es der NULL-Pointer. Die Länge findest du durch Zählen
    der Schritte, bis du auf den Sentinel triffst.

    Viele Grüsse

    Philipp

    PS: Wie stellt man ein "kapputes" (500-er), gesperrtes Profile
    wiederher?

  2. Im Studium programmieren wir mit Modula3.
    Ich weiß, das es sowas wie dynamische Arrays gibt, wo man nicht vorher scon angeben muß, wieviele Elemente zum Schluss drin sein werden.

    Du meinst nicht zufälligerweise offene Felder? Die werden genauso definiert wie normale Felder, nur daß man den Index weglässt:

    TYPE Offen = ARRAY OF CHAR;

    Diese Typform ist aber nur in speziellen Fällen anwendbar, zum Beispiel in der Parameterdeklaration einer Prozedur, falls ein Feld übergeben werden soll. Die Grenzen erhält man über FIRST() (hier immer 0), LAST() und NUMBER().

    Andere Typen mit den von Dir beschriebenen Eigenschaften gibt es AFAIK nicht, zumindest nicht als Basistype. Du kannst ja aber nochmal einen Blick in den Modula-3-Standard werfen: http://www.research.compaq.com/SRC/m3defn/html/m3.html.

    Gruß,
      soenk.e