.


:




:

































 

 

 

 


If (b<a[1,1]) or(b>a[m,n]) then




Goto 10;

For i:=2 to m do

If b<a[i,1] then

Begin

For j:=1 to n do

If b=a[i-1,j] then

Begin

is:=i-1; js:=j; { , b }

Goto 10

End;

Goto 10; { , b }

End;

For j:=1 to n do { - }

If b=a[m,j] then

Begin

is:=i-1; js:=j; Goto 10

End;

10:

Writeln('is = ',is,' js = ',js);

End.

 

Task208a 20 Goto. , . For While, Goto :

 

Begin

m, n, A, b

is:=0; js:=0;

If (b>=a[1,1]) and (b<=a[m,n]) then

Begin

i:=2; Cond:=true;

While (i<=m) and Cond do

Begin

Ifb<a[i,1] then

Begin

j:=1;

While (j<=n) and Cond do

Begin

If b=a[i-1,j] then

Begin

is:=i-1; js:=j; { , }

Cond:=false { b }

End;

Inc(j);

End;

Cond:=false; { , b }

End;

Inc(i);

End;

If is=0 then { - }

Begin

j:=1; Cond:=true;

While (j<=n) and Cond do

Begin

If b=a[m,j] then

Begin

is:=i-1; js:=j; Cond:=false

End;

Inc(j);

End;

End;

End;

Writeln('is = ',is,' js = ',js);

End.

 

2. , ln()/ln(2) (.Task116). , 1.18, .

, - ( ). .

: .

i = (k-1) div n + 1; .

 

Program Task208b;

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;

k,k1,k2: word;

b: integer;

A: Matrix; { }

Begin

m, n, A, b

k1:=1; k2:=m*n;

is:=0; js:=0;

While k1<=k2 do

Begin

k:=(k1+k2) div 2;

i:=(k-1) div n + 1; j:=k-(i-1)*n;

If b=a[i,j] then

Begin

is:=i; js:=j; Goto 10

End

Else

If b<a[i,j] then

k2:=k-1

Else

k1:=k+1;

End;

10:

Writeln('is = ',is,' js = ',js);

End.

9.

, .

,

6 12 -4 17 1 0 9 11 14

14 6 12 17 -4 1 0 9 11

 

Program Task209;

Label 10;

Const Mmax = 30; Nmax = 50;

Type Matrix = array [1..Mmax,1..Nmax] of real;

Var i,j,jmax,m,n: byte;

Amax,R: real;

A: Matrix;

Begin

m, n, A

For i:=1 to m do { }

Begin

Amax:=a[i,1]; jmax:=1; { }

For j:=2 to n do { . i- }

If a[i,j]>Amax then

Begin

Amax:=a[i,j]; jmax:=j

End;

If jmax=1 then { - }

Begin { }

R:=a[i,n];

For j:=n downto 3 do

a[i,j]:=a[i,j-1];

a[i,2]:=R;

End

Else

If jmax=n then { - }

Begin { }

R:=a[i,n-1];

For j:=n-1 downto 2 do

a[i,j]:=a[i,j-1];

a[i,1]:=R;

End

Else { }

Begin { }

R:=a[i,n]; { }

For j:=n downto jmax+2 do

a[i,j]:=a[i,j-1];

a[i,jmax+1]:=a[i,jmax-1];

For j:=jmax-1 downto 2 do

a[i,j]:=a[i,j-1];

a[i,1]:=R;

End;

End;

A

End.

10.

, .

 

Program Task210;

Const Mmax = 30; Nmax = 50;

Type Matrix = array [1..Mmax,1..Nmax] of integer;

Var i,j,iz,k,m,n: byte;

A: Matrix;

Begin

m, n, A

For j:=1 to n do

Begin

k:=0;

For i:=1 to m do

If a[i,j]=0 then

Begin

Inc(k);

For iz:=i downto k+1 do

a[iz,j]:=a[iz-1,j];

a[k,j]:=0;

End;

End;

End.

11.

, .

 

Program Task211;

Const Mmax = 30; Nmax = 50;

Type Matrix = array [1..Mmax,1..Nmax] of real;

Vector = array [1..Mmax] of real;

Var i,j,k,m,n: byte;

S: real;

Cond: boolean;

A: Matrix;

D: Vector;

Begin

m, n, A

For j:=1 to n do

Begin

S:=0; { }

For i:=1 to m do { S }

S:=S+a[i,j]; { j- }

S:=S/m;

For i:=1 to m do { d }

d[i]:=abs(S-a[i,j]); { }

Cond:=true; k:=m-1;

While Cond do { }

Begin { }

Cond:=false; k:=m-1;{ d }

For i:=1 to k do

If d[i]>d[i+1] then

Begin

S:=a[i,j]; a[i,j]:=a[i+1,j]; a[i+1,j]:=S;

S:=d[i]; d[i]:=d[i+1]; d[i+1]:=S;

Cond:=true;

End;

Dec(k);

End;

End;

A

End.

12.

, , .

 

Program Task212;

Const Mmax = 30; Nmax = 50;

Type Matrix = array [1..Mmax,1..Nmax] of real;

Var i,j,m,n: byte;

R: real;

A: Matrix;

Begin

m, n, A

R:=a[1,1]; { - }

For i:=1 to m-1 do { }

a[i,1]:=a[i+1,1];

For j:=1 to n-1 do { }

a[m,j]:=a[m,j+1];

For i:=m downto 2 do { }

a[i,n]:=a[i-1,n];

For j:=n downto 3 do { }

a[1,j]:=a[1,j-1];

a[1,2]:=R; { }

End.

13.

. , , , .

 

Program Task213;

Const Mmax = 30; Nmax = 50;

Type Matrix = array [1..Mmax,1..Nmax] of integer;

Var i,j,imax,jmax,m,n: byte;

R,Amax: integer;

A: Matrix;

Begin

m, n, A

Amax:=abs(a[1,1]); { }

imax:=1; jmax:=1; { }

For i:=1 to m do

For j:=1 to n do

If abs(a[i,j])>Amax then

Begin

Amax:=a[i,j]; imax:=i; jmax:=j;

End;

If imax>1 then { }

For j:=1 to n do { 1 imax }

Begin

R:=a[1,j]; a[1,j]:=a[imax,j]; a[imax,j]:=R;

End;

If jmax>1 then { }

For i:=1 to m do { 1 jmax }

Begin

R:=a[i,1]; a[i,1]:=a[i,jmax]; a[i,jmax]:=R;

End;

imax, jmax, Amax, A

End.

14.

, ( , ).

 

,

( , ).

SignGroup Task214 - . true, , false . , - . , .

 

Program Task214;

Const Mmax = 30; Nmax = 50;

Type Matrix = array [1..Mmax,1..Nmax] of integer;

Var i,j,imax,jmax,m,n: byte;

Amax: integer;

A: Matrix;

{ ------------------------------------ }

Function SignGroup(k:byte):boolean;

{ k- }

Label 10;

Var j: byte;

b: boolean;

Begin

b:=true;

For j:=1 to n-1 do

If a[k,j]<>a[k,j+1] then

Begin

b:=a[k,j]<a[k,j+1]; Goto 10

End;

10:

SignGroup:=true;

If b then

For j:=2 to n-1 do

If a[k,j]>=a[k,j+1] then

Begin

SignGroup:=false; Exit

End;

If not b then

For j:=2 to n-1 do

If a[k,j]<=a[k,j+1] then

Begin

SignGroup:=false; Exit

End;

End { SignGroup };

{ ------------------------------------ }

Begin

m, n, A

imax:=0; jmax:=0; Amax:=0;

For i:=1 to m do

IfSignGroup(i) then

If imax=0 then { }

Begin { }

Amax:=a[i,1]; imax:=i; jmax:=1;

For j:=2 to n do

If a[i,j]>Amax then

Begin

Amax:=a[i,j]; jmax:=j;

End;

End

Else

For j:=1 to n do { }

If a[i,j]>Amax then { }

Begin

Amax:=a[i,j]; imax:=i; jmax:=j;

End;

Writeln('imax = ',imax,' jmax = ',jmax,' Amax = ',Amax);

End.

15.

1, 2, 3,..., (1,1). , .

 

Program Task215;

Const Mmax = 30; Nmax = 50;

Type Matrix = array [1..Mmax,1..Nmax] of integer;

Var i,j,k,kmax,m,n,p: byte;

S,Smax: real;

A: Matrix;

Begin

m, n, A

If m>n then { p = min(m,n) }

p:=n

Else

p:=m;

Smax:=a[1,1]; kmax:=1;

For k:=2 to p do

Begin

S:=0;

For i:=1 to k do

For j:=1 to k do

S:=S+a[i,j];

S:=S/sqr(k);

If S>Smax then

Begin

Smax:=S; kmax:=k;

End;

End;

kmax, Smax

End.

16.

, . , . . , .

 

Program Task216;

Const Mmax = 30; Nmax = 50;

Type Matrix = array[ 1..Mmax,1..Nmax] of real;

Var i,j,m,n,

Count: byte; { }

R: real;

Cond: boolean;

A: Matrix;

Begin

m, n, A

Count:=0;

For i:=2 to m-1 do

For j:=2 to n-1 do

Begin

R:=a[i,j];

Cond:=(R<a[i,j-1]) and (R<a[i,j+1]) and

(R<a[i-1,j]) and (R<a[i+1,j]);

If Cond then

Inc(Count);

End;

Writeln('Count = ',Count);

End.

17.

, . .

. .

, 8, , .

 

Program Task217;

Label 10;

Const Mmax = 30; Nmax = 50;

Type Matrix = array [1..Mmax,1..Nmax] of integer;

Var i1,j1, { - k1 }

i2,j2, { - k2 }

m,n: byte; { - }

k1,k2, { }

p: word; { }

Cond: boolean;

A: Matrix; { }

Begin

m, n, A

p:=m*n; Cond:=false;

For k1:=1 to p-1 do

Begin

i1:=(k1-1) div n + 1; j1:=k1-(i1-1)*n;

For k2:=k1+1 to p do

Begin

i2:=(k2-1) div n + 1; j2:=k2-(i2-1)*n;

If a[i1,j1]=a[i2,j2] then

Begin

Cond:=true; Goto 10;

End;

End;

End;

10:

IfCond then

Writeln('i1=',i1,' j1=',j1,' i2=',i2,' j2=',j2)

Else

Writeln(' ');

End.

18.

, , , - - ().

 

Program Task218;

Label 10;

Const Nmax = 40;

Type Matrix = array [1..Nmax,1..Nmax] of integer;

Var j,k,n: byte;

Cond: boolean;

A: Matrix;

Begin

m, n, A

k:=0;

Repeat

Cond:=true; Inc(k);

For j:=1 to n do

If a[k,j]<>a[j,k] then { }

Begin { }

Cond:=false; Goto 10 { }

End;

10:

Until Cond or (k=n);

IfCond then

Writeln('C ',k)

Else

Writeln(' ');

End.

 

Repeat , (Cond = true) (k = n).

19.

, . , .

 

Program Task219;

Label 10;

Const eps = 0.001; Mmax = 30; Nmax = 50;

Type Matrix = array [1..Mmax,1..Nmax] of real;

Var i,j,k,i1,i2,m,n: byte;

R,R1: real;

Cond: boolean;

A: Matrix;

Begin

m, n, A

For i:=1 to n-1 do

For k:=i+1 to n do

Begin

R:=a[i,1]/a[k,1]; Cond:=true;

For j:=2 to n do

Begin

R1:=a[i,j]/a[k,j];

Ifabs(R-R1)>eps then

Cond:=false;

End;

If Cond then Goto 10;

End;

10:

IfCond then

Writeln(' ',i,' ',k)

Else

Writeln(' ');

End.

 

R .

20.

, 1, 2,..., .

 

Program Task220;

Const Mmax = 30; Nmax = 50;

Type Matrix = array [1..Mmax,1..Nmax] of integer;

Var i,j,k,m,n: byte;

Cond: boolean;

A: Matrix;

{ --------------------------------- }

Function Permut(k:byte):boolean;

{ true, k- 1.. n }

Var j,nk: byte;

R: integer;

Bol: boolean;

Begin

Bol:=true; nk:=n-1; { }

While Bol do { }

Begin

Bol:=false;

For j:=1 to nk do

If a[k,j]>a[k,j+1] then

Begin

R:=a[k,j]; a[k,j]:=a[k,j+1]; a[k,j+1]:=R;

Bol:=true;

End;

Dec(nk);

End;

Permut:=true; { }

For j:=1 to n do { }

If a[k,j]<>j then { }

Begin

Permut:=false; Exit;

End;

End { Permut };

{ --------------------------------- }

Begin

m, n, A

k:=0;

For i:=1 to m do

IfPermut(i) then

Inc(k);

Writeln('k = ',k);

End.

21.

, , ( ).

 

Program Task221;

Label 10;

Const Mmax = 30; Nmax = 50;

Type Matrix = array [1..Mmax,1..Nmax] of integer;

Var i,k,m,n: byte;

Cond: boolean;

A: Matrix;

{ --------------------------------- }

Function SignRow(k:byte):boolean;

{ }

{ k- }

Var i,j: byte;

CondSim,CondHigh: boolean;

Begin

CondSim:=true; SignRow:=true;{ }

i:=1; j:=n; { }

While i<j do





:


: 2016-09-06; !; : 570 |


:

:

,
==> ...

1717 - | 1714 -


© 2015-2024 lektsii.org - -

: 0.223 .