Type Ta=arrayof something; Var a:Ta; Procedure Proc(a:Ta); - внутри процедуры создаётся копия массива, внутри процедуры работа осуществляется только с копией данных
Procedure Proc(var a:Ta); - внутри процедуры код работает именно с переменной а и её содержимым Procedure Proc(const a:Ta);- внутри процедуры запрещено изменять данные переменной а Procedure Proc(out a:Ta); - при входе в процедуру массив рассматривается как пустой, но после выполнения процедуры можно получить значения