Ладно, будем считать, что совместными усилиями пришли сюда:
Код:
program kyrs;
uses crt;
type
mas=array[1..15,1..15] of integer;
vector=array[1..15] of integer;
var
i,j,n:integer;
A,B:mas;
V,V1,V2:vector;
procedure vvod;
begin
repeat
clrscr;
write('vvedite razmernost massiva ot 5 do 15: ');
readln(n);
until (n>=5) and (n<=15);
for i:=1 to n do
for j:=1 to n do
A[i,j]:=-100+random(201);
end;
procedure vivod(Av:mas);
var i1,j1:integer;
begin
i1:=(n div 2)+1;
if (n mod 2)=0 then
j1:=(n div 2)
else
j1:=(n div 2)+1;
for i:=1 to n do
begin
for j:=1 to n do
begin
if (i<i1) or ((i>i1) and (j<=i-i1)) or
((i>=i1) and (j>j1) and (j<n-(i-i1))) then
textcolor(13) else textcolor(14);
write(Av[i,j]:5);
end;
writeln;
textcolor(13);
end;
Writeln('Press "Enter" to continue...');
ReadLn;
end;
procedure vivod_V(Vv:vector);
begin
for i:=1 to n do
write(Vv[i]:5);
writeln;
end;
procedure obmen(Ao:mas; var Bo:mas);
var i1,j1:integer;
begin
Bo:=Ao;
i1:=(n div 2)+1;
if (n mod 2)=0 then
begin
j1:=(n div 2);
for i:=i1 to n do
for j:=i-i1+1 to j1 do
begin
Bo[j1+j,n-(i-i1)]:=Ao[i,j];
Bo[i,j]:=Ao[j1+j,n-(i-i1)];
end;
end
else
begin
j1:=(n div 2)+1;
for i:=i1 to n do
for j:=i-i1+1 to j1 do
begin
Bo[j1+j-1,n-(i-i1)]:=Ao[i,j];
Bo[i,j]:=Ao[j1+j-1,n-(i-i1)];
end;
end;
end;
procedure traekt;
begin
writeln('traektoriya:');
V:=A[n];
for j:=1 to n do
write(V[j]:5);
writeln;
Writeln('Press "Enter" to continue...');
ReadLn;
end;
procedure order(Vo:vector; var Vo1:vector; var Vo2:vector);
var d:integer;
begin
Vo1:=V;
for i:=1 to n do
for j:=1 to n-i do
if Vo1[j]>Vo1[j+1] then
begin
d:=Vo1[j+1];
Vo1[j+1]:=Vo1[j];
Vo1[j]:=d;
end;
Vo2:=V;
for i:=1 to n do
for j:=1 to n-i do
if Vo2[j]<Vo2[j+1] then
begin
d:=Vo2[j+1];
Vo2[j+1]:=Vo2[j];
Vo2[j]:=d;
end;
end;
procedure maxmin;
var
min,max,i1,j1:integer;
begin
i1:=(n div 2)+1;
if (n mod 2)=0 then
j1:=(n div 2)
else
j1:=(n div 2)+1;
max:=A[1,1];
min:=A[1,1];
for i:=1 to i1-1 do
for j:=1 to n do
begin
if A[i,j]>max then
max:=A[i,j];
if A[i,j]<min then
min:=A[i,j];
end;
for i:=i1 to n-2 do
for j:=j1+1 to n-(i-i1+1) do
begin
if A[i,j]>max then
max:=A[i,j];
if A[i,j]<min then
min:=A[i,j];
end;
for i:=i1+1 to n do
for j:=1 to i-i1 do
begin
if A[i,j]>max then
max:=A[i,j];
if A[i,j]<min then
min:=A[i,j];
end;
writeln('max=',max);
writeln('min=',min);
end;
BEGIN
clrscr;
randomize;
textbackground(9);
textcolor(13);
vvod;
clrscr;
Writeln('Ishodnaya matritsa:');
vivod(A);
obmen(A,B);
Writeln('Preobrazovannaya matritsa:');
vivod(B);
clrscr;
traekt;
order(V,V1,V2);
Writeln;
vivod_v(V1);
Writeln;
vivod_v(V2);
Writeln('Press "Enter" to continue...');
Readln;
Writeln;
Maxmin;
ReadLn;
END.