Program sem5; {$AppType CONSOLE} Uses SysUtils, // для исключений Windows; // для руссификации при выводе сообщений var a: array [1..10, 1..10] of real; n,m,i,j,err: byte; fi,fo: TextFile; begin err:=0; // номер ошибки будет; 0 - нет ошибок SetConsoleOutputCP(1251); // кодировка с кириллицей: ANSI, Windows-1251 //1 ввод исходных данных - n,m,a try AssignFile(fi, ParamStr(1)); Reset(fi); try try readln(fi, n,m); for i:=1 to n do begin for j:=1 to m do read(fi, a[i,j]); readln(fi); end; except err:=2; end; finally CloseFile(fi); end; except err:=1; end; if err>0 then begin case err of 1: writeln('Не удалось открыть файл с исходными данными ', ParamStr(1)); 2: writeln('Некорректные данные в файле с исходными данными'); end; write('ENTER'); readln; exit; end; //2 вывод исходных данных try AssignFile(fo, ParamStr(2)); ReWrite(fo); try try writeln(fo, 'Исходная матрица из ',n,' строк и ', m, ' столбцов:'); for i:=1 to n do begin for j:=1 to m do write(fo, ' ', a[i,j]:5:1); writeln(fo); end; except err:=4; end; finally CloseFile(fo); end; except err:=3; end; if err>0 then begin case err of 3: writeln('Не удалось создать выходной файл ', ParamStr(2)); 4: writeln('Ошибка при выводе исходных данных'); end; write('ENTER'); readln; exit; end; //3 решение for i:=1 to n do for j:=1 to m do a[i,j]:=abs(a[i,j]); //4 вывод результатов try Append(fo); // дозапись try try writeln(fo, 'Измененная матрица из ',n,' строк и ', m, ' столбцов:'); for i:=1 to n do begin for j:=1 to m do write(fo, ' ', a[i,j]:5:1); writeln(fo); end; except err:=6; end; finally CloseFile(fo); end; except err:=5; end; if err>0 then begin case err of 5: writeln('Не удалось открыть выходной файл ', ParamStr(2)); 6: writeln('Ошибка при выводе результатов'); end; end; write('ENTER'); readln; exit; end. ------------------------------- Создать массив B из значений максимумов столбцов матрицы A(nxm) For j:=1 to m do // повторение begin //------------ максимум в столбце j Amax:=a[1,j]; For i:=2 to n do If a[i,j] > Amax then begin Amax:=a[i,j]; end; //------------------------- B[j]:=Amax; // запоминаем end; -------------------- Найти сумму максимумов столбцов в a(nxm)? S:=0; For j:=1 to m do // сумма (максимумов столбцов) begin //------------ max:=a[1,j]; For i:=2 to n do // максимум в столбце j If a[i,j] > max then max:=a[i,j]; //------------ S:=S+max; // добавляем end; -------------------- Найти сумму максимумов строк в a(nxm)? S:=0; For i:=1 to n do // сумма (максимумов строк) begin //------------ max:=a[i,1]; For j:=2 to m do // максимум в строке i If a[i,j] > max then max:=a[i,j]; //------------ S:=S+max; // добавляем end; -------------------- Найти максимум среди сумм строк в a(nxm)? //------------ S:=0; For j:=1 to m do // сумма 1-ой строки S:=S+a[i,j]; max:=S; // нач.значение максимума //------------ For i:=2 to n do // максимум (сумм) begin //------------ S:=0; For j:=1 to m do // сумма строки i S:=S+a[i,j]; //------------ If S > max then // новый максимум? max:=S; end;