Program PascalGuru;
type
arr = array [1 .. 100, 1 .. 100] of integer;
var
A: arr;
i, j, p, code, cislo: integer;
n: integer; { кол-во СТРОК }
m: integer; { кол-во СТОЛБЦОВ }
x, s: string;
f: text;
function max_stolb(j: integer): integer;
var
i, max: integer;
begin
max := A[1, j];
for i := 2 to n do
if A[i, j] > max then
max := A[i, j];
max_stolb := max;
end;
procedure write_isx;
var
i, j, t: integer;
f: text;
probel: string[7];
x: string;
begin
assign(f, 'ISX.TXT');
rewrite(f);
writeln(f, 'Ishodnyi massiv:');
writeln(f);
for i := 1 to n do
begin
if i > 1 then
writeln(f);
for j := 1 to m do
begin
if (i = 1) then
begin
if j > 3 then
begin
write(f, A[i, j]);
str(A[i, j], x);
for t := 1 to 8 - length(x) do
write(f, ' ');
end
else
for t := 1 to 8 do
write(f, ' ');
end
else
begin
write(f, A[i, j]);
str(A[i, j], x);
for t := 1 to 8 - length(x) do
write(f, ' ');
end;
end;
end;
{ --------------------------------------------------------------------- }
for j := 1 to m do
A[1, j] := max_stolb(j); { --- Записываем MAX в первую строку массива }
writeln(f);
writeln(f);
writeln(f);
writeln(f, 'Obrabotannyi massiv:');
writeln(f);
for i := 1 to n do
begin
if i > 1 then
writeln(f);
for j := 1 to m do
begin
if (i = 1) then
begin
if j > 3 then
begin
write(f, A[i, j]);
str(A[i, j], x);
for t := 1 to 8 - length(x) do
write(f, ' ');
end
else
for t := 1 to 8 do
write(f, ' ');
end
else
begin
write(f, A[i, j]);
str(A[i, j], x);
for t := 1 to 8 - length(x) do
write(f, ' ');
end;
end;
end;
close(f);
end;
procedure write_update;
var
i, j: integer;
f: text;
begin
assign(f, 'UPDATE.TXT');
rewrite(f);
for j := 1 to m do
A[1, j] := max_stolb(j); { --- Записываем MAX в первую строку массива }
for i := 1 to n do
begin
if i > 1 then
writeln(f);
for j := 1 to m do
write(f, A[i, j], ' ');
end;
close(f);
end;
{ ---------------------------------------------------------- }
begin
assign(f, 'DATI.TXT');
reset(f);
{ начало считывания массива с файла }
i := 0;
while (not eof(f)) do
begin
readln(f, s);
inc(i);
j := 0;
repeat
p := pos(' ', s);
x := copy(s, 1, p - 1);
if p = 0 then
x := s;
val(x, cislo, code);
if code = 0 then
begin
inc(j);
A[i, j] := cislo;
end;
delete(s, 1, p);
until p = 0;
end; { end while }
n := i;
m := j;
{ ---конец считывания массива с файла--- }
write_isx(); { запись исходного массива }
{ write_update(); } { запись изменённого массива }
writeln;
writeln('Fail "ISX.TXT" uspeshno zapisan...');
readln;
close(f);
end.