
Вопрос задан 16.05.2020 в 10:55.
Предмет Информатика.
Спрашивает Шабанян Лаура.
Помогите найти ошибку в программе на паскаль авс вот задача: 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 x<min then begin min:=x; jm:=j; end; end; writeln('Минимальная сумма в ',jm,'-м столбце'); writeln('Полученный массив:'); for i:=1 to n do begin for j:=1 to m do begin if j<>jm then a[i,j]:=a[i,jm]; write(a[i,j]:4); end; writeln; end; readln; end.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili