Подозреваю, что у Вас не работало по такой причине: Вы в самой программе массив объявили так:
А, поскольку в модуле уже есть объявление нового типа для массива, который Вы используете для передачи в процедуры, то нужно было написать так:
Дело всё в том, что Паскаль имеет такую особенность: Real_array и array[1..100] of real для него разные типы данных, хоть и физически представлены одинаково. Можно, конечно, привести массив a, имеющий тип array[1..100] of real, с помощью конструкции:
и попробовать передать процедуре (я не проверял). Ниже поправленный код программы (поправлял на Delphi 7).
Код:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,
Unit1; // положил его в каталог с программой
var
n,i: integer;
a: Real_array; // так объявил массив
k: real;
begin
writeln('Input n ');
readln(n);
writeln('Input Array');
for i := 1 to n do readln(a[i]);
Array_out(n,a);
Sort_array(n,a);
Array_out(n,a);
readln;
end.