Отлично спасибо. Еще вопрос не по теме, а именно по динамическим массивам. Два модуля: Graphics рисует графики по данным из динамического одинарного массива. Массив создается в модуле Graphics но потом передается в модуль AddValue где увеличивает свою размерность на один и заполняет его определенным значением. Но чтото я делаю не так. Кажется чтото я напутал с этими Pointerами. Может я сам массив както не создал? Спасибо

## Код:
```
MODULE Graphics;
   Data : POINTER TO ARRAY OF INTEGER;

   PROCEDURE Restore;
   BEGIN
      NEW(Data,1); Data[0] := 0;
      DataModel.AddValue(Data);
   END Restore;
END Graphics.

MODULE  DataModel;
   
      
   PROCEDURE AddValue* (OUT DataArray: POINTER TO ARRAY OF INTEGER);
   VAR
      old, new: INTEGER;
   BEGIN
      
      old := DataArray[LEN(DataArray)-1]; [b](*Выхожу за рамки массива здесь*)[/b]
      new := old + Rand.Int(21)-10;
      NEW(DataArray,1);
      DataArray[LEN(DataArray)-1] := -new - 2*old;
      
   END AddValue;
   

END DataModel.
```
