Прямоугольный массив заполнить числами из файла, начиная с четвертого числа. С помощью функции в исходном массиве сделать элементы первой строки равными максимальному элементу соответствующего столбца

code: #pascal
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.      
Поделиться:

Похожие статьи: