1.
, .
. , , . , ( ).
Program Task201;
Const Mmax = 20; Nmax = 15;
Type Matrix = array [1..Mmax,1..Nmax] of real;
Var i,j,m,n,imax,imin: byte;
Amax,Amin,R: real;
A: Matrix;
Begin
m, n, A
Amax:=a[1,1]; imax:=1;
Amin:=a[1,1]; imin:=1;
For i:=1 to m do { }
For j:=1 to n do { }
If a[i,j]>Amax then { }
Begin { }
Amax:=a[i,j]; imax:=i;
End
Else
Ifa[i,j]<Amin then
Begin
Amin:=a[i,j]; imin:=i;
End;
If imax<>imin then
For j:=1 to n do { }
Begin
R:=a[imin,j]; a[imin,j]:=a[imax,j]; a[imax,j]:=R
End;
A
End.
2.
, , , , .
, ( ):
a[1,2] a[1,3] a[1,4]... a[1,n-1] a[1,n]
a[2,3] a[2,4]... a[2,n-1] a[2,n]
a[3,4]... a[3,n-1] a[3,n]
...............................
a[n-2,n-1] a[n-2,n]
a[n-1,n]
1 n-1, .. i = 1.. (n-1); - i+1 n, .. j = (i+1).. n.
:
a[2,1]
a[3,1] a[3,2]
a[4,1] a[4,2] a[4,3]
.......................
a[n,1] a[n,2] a[n,3]... a[n,n-2] a[n,n-1]
i = 2.. n, j = 1.. (i-1).
Program Task202;
Const Nmax = 20;
Type Matrix = array [1..Nmax,1..Nmax] of real;
Var i,j,n,imax,imin,jmax,jmin: byte;
Amax,Amin: real;
A: Matrix;
Begin
n, A
Amax:=a[1,2]; imax:=1; jmax:=2;
For i:=1 to n-1 do { }
For j:=i+1 to n do { }
If a[i,j]>Amax then { }
Begin
Amax:=a[i,j]; imax:=i; jmax:=j
End;
Amin:=a[2,1]; imin:=2; jmin:=1;
For i:=2 to n do { }
For j:=1 to i-1 do { }
If a[i,j]<Amin then { }
Begin
Amin:=a[i,j]; imin:=i; jmin:=j
End;
a[imin,jmin]:=Amax; a[imax,jmax]:=Amin;
A
End.
3.
, ( ), , .
, :
1,1 2,2 3,3 4,4... n-2,n-2 n-1,n-1 n,n
|
|
1,2 2,3 3,4 4,5... n-2,n-1 n-1,n
1,3 2,4 3,5 4,6... n-2,n
.......................................
1,n-1 2,n
1,n
k : . , k- , j = k.. n; i = j - k +1.
Program Task203;
Const Nmax = 20;
Type Matrix = array [1..Nmax,1..Nmax] of real;
SumType = array [1..Nmax] of real;
Var i,j,k,kmax,n: byte;
SumMax: real;
A: Matrix;
S: SumType;
Begin
n, A
For k:=1 to n do { S, }
Begin { }
S[k]:=0; { }
For j:=k to n do
Begin
i:=j-k+1; S[k]:=S[k]+abs(a[i,j]);
End;
End;
SumMax:=S[1]; kmax:=1;
For k:=2 to n do { }
If S[k]>SumMax then { S }
Begin
SumMax:=S[k]; kmax:=k
End;
SumMax, kmax
End.
. , , , : j - i = k - 1, k - .
, :
- S;
- , ( i = 1.. n, j = i.. n), ;
- S.
4.
, . , , , .
, :
n,2 n-1,3 n-2,4... 4,n-2 3,n-1 2,n
n,3 n-1,4 n-2,5... 4,n-1 3,n
n,4 n-1,5 n-2,6... 4,n
.......................................
n,n-1 n-1,n
n,n
k : . , k- , i = n.. k; j = n - i+k. n-k+1.
Program Task204;
Const Nmax = 20;
Type Matrix = array [1..Nmax,1..Nmax] of real;
Ar = array [2..Nmax] of real;
Var i,j,k,kmax,n: byte;
ArMax: real;
A: Matrix;
Sar: Ar;
Begin
n,A
For k:=2 to n do { Sar, }
Begin { }
Sar[k]:=0; { }
For i:=n downto k do { }
Begin
j:=n-i+k; Sar[k]:=Sar[k]+a[i,j];
End;
Sar[k]:=Sar[k]/(n-k+1);
End;
ArMax:=Sar[2]; kmax:=2;
For k:=3 to n do { }
If Sar[k]>ArMax then { }
Begin { Sar }
ArMax:=Sar[k]; kmax:=k
End;
ArMax, kmax
End.
. , , : i + j = n + k, k - . , , 3.
5.
.
Task205 , - .
|
|
Program Task205;
Const Mmax = 20; Nmax = 15;
Type Matrix = array [1..Mmax,1..Nmax] of real;
Var i,j,k,m,n: byte;
R: real;
A: Matrix;
Begin
m, n, A
i:=1; k:=m; { }
While i<k do { }
Begin
For j:=1 to n do
Begin
R:=a[i,j]; a[i,j]:=a[k,j]; a[k,j]:=R;
End;
Inc(i); Dec(k);
End;
j:=1; k:=n; { }
While j<k do { }
Begin
For i:=1 to m do
Begin
R:=a[i,j]; a[i,j]:=a[i,k]; a[i,k]:=R;
End;
Inc(j); Dec(k);
End;
A
End.
6.
, .
RepElem Task206 , i j A. RepElem(i, j) = true Cond = true ( ), , - . Cond = false , , , .
Program Task206;
Const Mmax = 30; Nmax = 50;
Type Matrix = array [1..Mmax,1..Nmax] of integer;
Var m,n, { }
imax,jmax, { . }
i,j,is,js: byte;
Amax: integer; { . }
Cond: boolean;
A: Matrix; { }
{ -------------------------------------------- }
Function RepElem(ik,jk:byte):boolean;
{ RepElem=true, a[ik,jk] }
Var i,j,is,js: byte;
R: integer;
Begin
R:=a[ik,jk]; RepElem:=false;
For i:=1 to m do
For j:=1 to n do
If (R=a[i,j]) and (i<>ik) and (j<>jk) then
Begin
RepElem:=true; Exit
End;
End { RepElem };
{ -------------------------------------------- }
Begin
imax:=0; jmax:=0; Amax:=0; Cond:=true;
For i:=1 to m do
For j:=1 to n do
Begin
If RepElem(i,j) then
IfCond then
Begin
imax:=i; jmax:=j;
Amax:=a[i,j]; ond:=false
End
Else
Ifa[i,j]>Amax then
Begin
imax:=i; jmax:=j; Amax:=a[i,j];
End
End;
Writeln('imax = ',imax,' jmax = ',jmax,' Amax = ',Amax);
End.
7.
, .
, 6- (1,6) :
16 17 18 19 20 1
15 30 31 32 21 2
14 29 36 33 22 3
13 28 35 34 23 4
12 27 26 25 24 5
11 10 9 8 7 6
Program Task207;
{ : 1 - ; 2 - }
{ ; 3 - ; 4 - }
Const Nmax = 30;
Type Matrix = array [1..Nmax,1..Nmax] of word;
Var n, { }
i,j,
k, { }
is, { .- }
ik, { }
js, { .- }
jk: byte; { }
Number: word; { }
Cond: boolean;
A: Matrix;
{ ---------------------------------------------- }
Procedure ToRight;
{ }
Var j: byte;
Begin
For j:=js to jk do
Begin
a[is,j]:=Number; Inc(Number);
End;
End { ToRight };
{ ---------------------------------------------- }
Procedure ToDown;
{ }
Var i: byte;
Begin
For i:=is to ik do
Begin
a[i,jk]:=Number; Inc(Number);
End;
End { ToDown };
{ ---------------------------------------------- }
Procedure ToLeft;
{ }
Var j: byte;
Begin
For j:=jk downto js do
Begin
a[ik,j]:=Number; Inc(Number);
|
|
End;
End { ToLeft };
{ ---------------------------------------------- }
Procedure ToUp;
{ }
Var i: byte;
Begin
For i:=ik downto is do
Begin
a[i,js]:=Number; Inc(Number);
End;
End { ToUp };
{ ---------------------------------------------- }
Begin
n k
Number:=1; Cond:=true;
is:=1; js:=1; ik:=n; jk:=n;
While Cond do
Begin
Case k of
1: Begin
ToRight; Inc(is);
End;
2: Begin
ToDown; Dec(jk);
End;
3: Begin
ToLeft; Dec(ik);
End;
4: Begin
ToUp; Inc(js);
End;
end;
Inc(k);
If k>4 then k:=1;
If (ik<is) or (jk<js) then
Cond:=false;
End;
End.
8.
A :
a[1,1] < a[1,2] < a[1,3] <... < a[1,n] < a[2,1] <...
... < a[2,n] < a[3,1] <... < a[m,n]
, , . , .
, .
1.
, , . . , = 2.. , , , -1. ( -1)- . , m- .
1 .
Program Task208a;
Label 10;
Const Mmax = 30; Nmax = 50;
Type Matrix = array [1..Mmax,1..Nmax] of integer;
Var m,n, { }
is,js, { -, b }
i,j: byte;
b: integer;
Cond: boolean;
A: Matrix; { }
Begin
m, n, A, b
is:=0; js:=0;