Дана матрица 12х12,которая читается из выходного файла в двумерный массив. Определить самое большое число в массиве, начиная со следующего э
Дана матрица 12х12,которая читается из выходного файла в двумерный массив. Определить самое большое число в массиве, начиная со следующего элемента, упорядочить по возрастанию на экране в виде таблице входные данные и отдельно выходные данные..
program PascalGuru; var A:array[1..100,1..100] of integer; sort:array[1..100] of integer; i,j,max,n,k:integer; b:boolean; t,g:text; {---------------------------------------------------------------------} procedure exchange(var a,b:integer); {процедура обмена = для сортировки} var c:integer; begin c:=a; a:=b; b:=c; end; {---------------------------------------------------------------------}
begin assign(t,'in_array.txt'); reset(t); assign(g,'out_array.txt'); rewrite(g);
{считывание эл-ов массива с файла} for i:=1 to 10 do begin for j:=1 to 10 do read(t,A[i,j]); readln(t,A[i,12]); end;
{выводим массив на экран} write ('Scitannyi massiv A: '); for i:=1 to 12 do begin writeln; for j:=1 to 12 do write (A[i,j]:3,' '); end;
{определяем максимальный эл-т} max:=A[1,1]; for i:=1 to 12 do for j:=1 to 12 do if A[i,j]>max then max:=A[i,j];
{начиная от МАКС - последующие записываем в отдельный массив "sort"} b:=false; for i:=1 to 12 do for j:=1 to 12 do begin if A[i,j]=max then b:=true; if b then begin inc(k); sort[k]:=A[i,j]; end; end;
{сортируем массив} n:=k; repeat b:=false; for i:=1 to n-1 do if sort[i]>sort[i+1] then begin {esli "<" togda po ubivaniiu} exchange(sort[i],sort[i+1]); b:=true; end; n:=n-1; until not b;
{начиная от МАКС - переписываем уже отсортированные данные} k:=0; b:=false; for i:=1 to 12 do for j:=1 to 12 do begin if not b then if A[i,j]=max then begin b:=true; continue; end;
if b then begin inc(k); A[i,j]:=sort[k]; end; end;
{выводим массив на экран} writeln;writeln; write ('Preobrazovannyi massiv A: '); for i:=1 to 12 do begin writeln; for j:=1 to 12 do write (A[i,j]:3,' '); end;
{выводим массив в выходной файл} for i:=1 to 12 do begin for j:=1 to 11 do write(g,A[i,j],' '); writeln(g,A[i,12],' '); end;