|
PROCEDURE Sum(READONLY a: ARRAY OF REFANY): REAL =
|
|
VAR sum := 0.0;
|
|
BEGIN
|
|
FOR i := FIRST(a) TO LAST(a) DO
|
|
TYPECASE a[i] OF
|
|
| NULL => (* skip *)
|
|
| REF INTEGER (e) => sum := sum + FLOAT(e^);
|
|
| REF REAL(e) => sum := sum + e^;
|
|
ELSE (* skip *)
|
|
END;
|
|
END;
|
|
RETURN sum;
|
|
END Sum;
|