Несоответствие типов в программе и модуле при использовании множеств - Free Pascal

Формулировка задачи:

Нужно было написать программу, которая выбирает определенные числа из множества Х в множество Y (нечетные или делящиеся на 17) . Ввод и вывод происходит в главной программе.
uses crt, module12;
type m = set of byte;
var X, Y:m; ...
 
begin
((ввод множества X));
proc1(X,Y);
((вывод множества Y));
end.
Обработка множеств происходит в модуле "module12":
unit module12;
 
 interface
  type m= set of byte;
  procedure proc1(X:m; var Y:m);
   var i:byte;
 
 implementation
  procedure proc1;
   begin
    for i:=1 to 255 do
     if (i in X) and ((i mod 2<>0) or (i mod 17=0)) then
      include(Y,i);
   end;
end.
При вызове процедуры "proc1" из модуля в главной программе паскаль выдает: "Error 26: type mismatch", ссылаясь на переменную Y. -Если при объявлении глобальных переменных перед Y убрать "var", то ошибки нет, но мне нужно вывести значение из процедуры. -Если скопировать процедуру из модуля в основную программу, то всё работает, но мне нужно оформить процедуру в отдельном модуле.

Код к задаче: «Несоответствие типов в программе и модуле при использовании множеств - Free Pascal»

textual
type m = set of byte;

5   голосов, оценка 3.800 из 5


СОХРАНИТЬ ССЫЛКУ