Возврат функцией/процедурой массива -- как это сделать в Паскаль. Пример

Вернуть массив из подпрограммы (процедуры или функции)можно через предварительное описание пользовательского типа массива.

Ниже пример описания и вызова функции, возвращающей массив из 8 элементов -- односимвольных строк (то есть строк состоящих из одного символа) -- первых восьми символов введённой пользователем строки:


type
  TMyArray = array[1..8] of String; // предвариательное описание типа

var
  a: TMyArray; // используем предварительно описанный тип
  i: integer;

{Опишем функцию, которая возвращает тип TMyArray --
считывая первые 8 символов введённой пользователем строки,
в качестве входящего аргумента функция принимает
строку-подсказку, для вывода её пользователю}
function getFirst8Symbols(message: string): TMyArray;
var s:string;
    arr: TMyArray;
    i: integer;
begin
  writeln(message);
  readln(s);

  i:=1;
  while ((i <= length(s)) AND (i<=high(arr))) do
  begin
      arr[i] := s[i];
      i:=i+1;
  end;
  result :=arr;
end;


begin  // начало программы

  // вызываем функцию, возвращающую массив
  a := getFirst8Symbols('Vvedite proizvolnuiu stroku');

  { обойдём массив и выведем значения, чтобы
    посмотреть что вернула функция}
  writeln('polushaem massiv s elementami:');
  for i:=low(a) to high(a) do
  begin
    write(a[i], ' ');
  end;

  readln();
end.