Помогите найти ошибку в программе на паскаль авс вот задача: 1)Дан типизированный файл, содержащий символы. Скопировать элементы этого файла в квадратную матрицу размером n×n (если элементов файла недостает, заполнить оставшиес...

Помогите найти ошибку в программе на паскаль авс вот задача: 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.
Гость
Ответ(ы) на вопрос:
Гость
var   a: array[1..20,1..20] of integer;   n,m,i,j,min,jm,x: integer; begin   randomize;   write('Введите размеры массива: ');   readln(n,m);   writeln('Исходный массив:');   for i:=1 to n do   begin     for j:=1 to m do     begin       a[i,j]:=random(19)-9;       write(a[i,j]:4);     end;     writeln;   end;   min:=0;   for i:=1 to n do min:=min+a[i,1];   writeln('Сумма элементов 1-го столбца = ',min);   jm:=1;   for j:=2 to m do   begin     x:=0;     for i:=1 to n do       x:=x+a[i,j];     writeln('Сумма элементов ',j,'-го столбца = ',x);     if xjm then a[i,j]:=a[i,jm];     write(a[i,j]:4);     end;     writeln;   end;   readln; end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы