Экономика

помогите найти ошибку в программе на паскаль авс вот задача: 1)Дан типизированный файл, содержащий символы. Скопировать элементы этого файла в квадратную матрицу размером n×n (если элементов файла недостает, заполнить оставшиеся элементы матрицы символом «точка»). Заменить все столбцы на столбец с минимальной суммой кодов элементов. вот решение: type mas2=array[1..20, 1..20] of char; procedure create(var T: text; var n: byte; var a: mas2); var i, j: byte; begin write('Введите размер матрицы: '); readln(n); for i:=1 to n do for j:= 1 to n do a[i, j]:= '.'; reset(T); i:=1; while not seekeof(T) and (i<=n) do begin j:=1; while not seekeof(T) and (j<=n) do begin read(T, a[i, j]); j:= j+1; end; i:=i+1 end end; procedure sum(var a: mas2); var i,j,m,n,sum,min,p,k:integer; t: char; begin min:=-maxint; for j:=1 to m do begin p:=0; min:=-maxint-1; for k:=j to m do begin sum:=0; for i:=1 to n do sum:=sum+ord(a[i,j]); if sum begin min:=sum; p:=k; end; end; for i:= 1 to n do begin t:=a[i,j]; a[i,j]:=a[i,p]; a[i,p]:=t; end; end; writeln(sum:7,' '); end; procedure zam(var T: text; var n: byte; var a: mas2); var i, j: byte; begin for i:=1 to n do for j:= 1 to n do a[i, j]:= '1'; reset(T); i:=1; while not seekeof(T) and (i<=n) do begin j:=1; while not seekeof(T) and (j<=n) do begin read(T, a[i, j]); j:= j+1; end; i:=i+1 end end; procedure print(const n: byte; const a: mas2); var i, j: byte; begin for i:=1 to n do begin writeln; for j:=1 to n do write(a[i, j]:5); end; writeln end; var T: Text; a: mas2; n: byte; s: string; begin write('Введите имя файла: '); readln(s); assign(T, s); create(T, n, a); writeln('Исходная матрица: '); print(n, a); sum(a); zam(T,n,a); writeln; writeln; writeln; writeln('Результирующая матрица: '); print(n, a); end.