RosettaCodeData/Task/Array-length/Oberon/array-length.oberon

32 lines
544 B
Plaintext

MODULE ArrayLength;
IMPORT
Strings,
Out;
TYPE
String = POINTER TO ARRAY OF CHAR;
VAR
a: ARRAY 16 OF String;
PROCEDURE NewString(s: ARRAY OF CHAR): String;
VAR
str: String;
BEGIN
NEW(str,Strings.Length(s) + 1);COPY(s,str^);
RETURN str
END NewString;
PROCEDURE Length(a: ARRAY OF String): LONGINT;
VAR
i: LONGINT;
BEGIN
i := 0;
WHILE (a[i] # NIL) DO INC(i) END;
RETURN i;
END Length;
BEGIN
a[0] := NewString("apple");
a[1] := NewString("orange");
Out.String("length: ");Out.Int(Length(a),0);Out.Ln
END ArrayLength.