procedure Work (var M:mas; var G:mas; N:integer);
var j,i,b,sym,ost:integer; f,q:boolean;
begin
for j:=1 to 178 do
G[j]:=j*j;
for i:=1 to N do
begin f:=true; sym:=0; ost:=0; q:=false;
b:=m[i];
for j:=1 to 178 do
begin
if g[j]=m[i] then
begin
q:=true; break;
end;
end;
repeat
ost:=b mod 10;
sym:=sym + ost;
b:=b div 10;
until b=0;
if sym mod 2=0 then f:=false;
if (f=true) and (q=true) then
begin
for i:=i to N do
begin
m[i]:=m[i+1];
N:=N-1;
end;
end;
end;
end;

сделал так вроде работает но почему то когда хочу распечатать массив M после обработки то выдает File not open for output в процедуре печати, вот она

procedure Print (var M:mas; N:integer);
var i:integer;
begin
for i:=1 to N do
write (M[i],'; ');
writeln;
end;