Oops, I forgot to address a particular question you asked
do i use it like a[n], n = integer within low(a)..high(a) inside the function ?
Yes, that is perfectly fine to do inside your function. Even stronger, that is the preferred way of doing it.
Besides that you can also use for ... in construct to iterate a dynamic array.
This is my take on your input_a() (I made it a) procedure, since it did not seem to me as if it should return anything.
procedure input_a(arr: t_dynamic_long_integer_array);
var
v: longint;
i: sizeint;
begin
// approach 1, using for ... in
for v in arr
do writeln('value=',v);
writeln;
// approach 2, using low(array) to high(array)
for i:= low(arr) to high(arr)
do writeln('value=',arr[i]);
writeln;
end;