EBSILON®Professional Online Dokumentation
In diesem Thema
    Arrays
    In diesem Thema

    Arrays

     Möglichkeiten für die Handhabung der Arrays:

    Integer array of length 5: 13:13, 14:-14, 15:15, 16:-16, 17:17
    Integer array of length 5: 13:13, 14:-14, 15:151515, 16:-16, 17:17

     

    Es gibt drei Typen von Arrays:

    Für statische Arrays gibt es diese Funktionen:

    Name

    Zweck

    Arguments

    Return value

    Example

    high

    liefert den Index des letzten Array-Elements,

    wenn das Array mehrdimensional ist, der erste Index wird verwendet

    1: array

    INTEGER

    i:=high (array);

     

    length

    liefert die Länge des Arrays

    1: array

    INTEGER

    a:array [1..10] of array [2..5] of integer;
    b:array [1..10, 2..5] of integer;

    e. g.  length(a)==length(b)==10

    but length(a[1])==length(b[1])==4

    low

    liefert den Index des ersten Array-Elements,

    1: array

    INTEGER

    i:=low (array);

    Für dynamische Arrays gibt es diese Funktionen:

    Name

    Zweck

    Argumente

    Rückgabe-
    wert

    Beispiel

    append

    hängt ein Array an ein anderes an
    erlaubt auch das Anhängen eines einzelnen Elements

    1: array of: Ziel=dyn. array
    2: array: Quelle

    kein

     

    copy

    kopiert ein Array auf ein anderes

    1: array: Quelle

    array of: Ziel

     

    high

    liefert den Index des letzten Array-Elements

    1: array of

    INTEGER

    i:=high (arObjects);

    insert

    setzt ein Array an einer bestimmten Position in ein anderes ein,
    erlaubt auch das Einfügen eines einzelnen Elements

    1: array of: Ziel=dyn. array
    2: array: Quelle
    3: INTEGER: Position

    kein

     

    length

    liefert die Länge des Arrays

    1: array of

    INTEGER

     

    low

    liefert den Index des ersten Array-Elements

    1: array of

    INTEGER

    i:=low (arObjects);

    remove

    entfernt bestimmte Elemente aus einem Array

    1: array of: dyn. array
    2: INTEGER: Startposition
    3: INTEGER: Anzahl Elemente

    kein

     

    setLength

    setzt die Länge des Arrays auf einen neuen Wert

    1: array of: dyn. array
    2: INTEGER: neue Länge

    kein

    var dyn_arr: array of real;
    setLength (dyn_arr, 2);
    dyn_arr[0]:= -45.7;
    dyn_arr[1]:=  5.7;

    reserve

    erlaubt Mindest-Speicherreservierung für gegebene Anzahl von Elementen in einem Array (Achtung: es werden keine Elemente angelegt oder gelöscht, sondern nur der dafür notwendige Speicher reserviert,
    reserve ersetzt NICHT den Aufruf von setLength() - diese Funktion kann zur Langzeitoptimierung eingesetzt werden um unnötige
    Reallokationen des Array-Speichers zu vermeiden

    1: dyn. array

    2: INTEGER: Anzahl der zu reservierende Elemente
                   

     

    var arr: array of string;
             i: integer;
    begin
             reserve( arr, 2000000);      
             println(capacity(arr));
             for i:=0 to 1999999 do

             begin
             setLength(arr, i+1);
             arr[i] := string(i);
             end;

             println("finished");
    end.  

    capacity

    gibt die maximale Anzahl Elemente zurück, die das Array enthalten kann, ohne automatisch neuen Speicher anzulegen

    1: dyn. array
                   

     

     Siehe reserve

     

    Für offene Arrays gibt es folgende Funktionen:

    Name

    Zweck

    Argumente

    Rückgabe-
    wert

    Beispiel

    setLow

    setzt den Index des ersten Elements

    1: array * of
    2: INTEGER: neuer Index

    array * of

    procedure PrintCA (a: array * of char);
    var k:integer;
    begin
        print ("Char array of length ", length (a), ": ");
        for k := low  (a) to high (a) do
           print (k,":", a[k], ", ");
       print ("\n");
    end;

    var dyn_c: array of char;
    begin 
       setLength (dyn_c, 5);
       dyn_c[0]:= 'x';  dyn_c[1]:= '真';
       dyn_c[2]:= 'ü';   dyn_c[3]:= '仿';
       dyn_c[4]:= 'ê';

        PrintCA (dyn_c);
        PrintCA (setlow (dyn_c,-10));
       PrintCA (sliceLeft (dyn_c,3));
       PrintCA (sliceRight(dyn_c,2));
       PrintCA (sliceMid  (dyn_c,1,4));
    end.

    sliceLeft

    liefert die n ersten Elemente eines Arrays

    1: array
    2: INTEGER: Anzahl Elemente

    array * of

    sliceMid

    liefert die n Elemente eines Arrays ab einer bestimmten Position

    1: array
    2: INTEGER: Startindex
    3: INTEGER: Anzahl Elemente

    array * of

    sliceRight

    liefert die n letzten Elemente eines Arrays

    1: array
    2: INTEGER: Anzahl Elemente

    array * of