, , .
: , , , .
Procedure A(y:);Forward; { }
Procedure B(x:); { }
... { }
begin
...
A(p); { }
...
end;
Procedure A; { }
... { }
Begin
...
B(g); { }
...
End;
9
: , .
, , FUNCTION.
1. 2.
3. 4.
5. 6.
7. 8.
9. 10.
11. 12.
13. 14.
15. 16.
17. 18.
19. 20.
: .
17. :
. (), : , , , , , : (, ) . , , . , , .
, - ( ) . , , N2, N - . . , ( 1000). , , . : N*lnN N*log2N. . , . . , , , [2,3].
, , , . .
|
|
, ={mi}, i=1,n; n - . .
, , . , , , , . , . , .
, , .
.
|
Min -
i_min -
Uses crt;
Var
M:array[1..1000] of integer;
n, i, j, Min, i_min:integer;
Begin
Clrscr;
Write(' n = ');
Readln(n);
{ 0 500}
For i:=1 to n do M[i]:=Random(500);
For i:=1 to n-1 do
Begin
{ i- }
Min:=M[i]; i_min:=i;
For j:=i+1 to n do
If M[j]<Min then
Begin
{ - }
Min:=M[j]; i_min:=j;
End;
{}
M[i_min]:=M[i];
M[i]:=Min;
End;
Writeln(' ');
For i:=1 to n do write(M[i],' ');
readkey;
End.
, . , , . , , .
, . [2,3].
.
Key - , ;
Z - , .
Uses crt;
Var M:array[1..1000] of integer;
i,Z,n:integer; Key:byte;
Begin Clrscr;
{ n }
Repeat
Key:=0;
For i:=1 to n-1 do
If M[i] > M[i+1] then
|
|
begin
Z:=M[i];
M[i]:=M[i+1];
M[i+1]:=Z;
Key:=1;
end;
Until Key=0;
Writeln(' ');
For i:=1 to n do write(M[i],' '); readkey;
End.
, , . , , , , , . . . , .
, Y Z. .
dx, dy - () X, Y . ix, iy - () . iz - Z.
Uses crt;
Var { }
X, Y: array[1..1000] of integer;
Z: array[1..2000] of integer;
dx,dy,ix,iy,iz,i:integer;
Begin Clrscr; { }
Write(' '); readln(dx);
Writeln(' ');
For i:=1 to dx do read(X[i]); readln;
Write(' Y '); readln(dy);
Writeln(' Y');
For i:=1 to dy do read(Y[i]); readln;
ix:=1; iy:=1; iz:=0;
While (ix<=dx) and (iy<=dy) do
if X[ix]<Y[iy] then
begin { Z}
inc(iz); Z[iz]:=X[ix]; inc(ix);
end
else
begin { Y Z}
inc(iz); Z[iz]:=Y[iy]; inc(iy);
end;
{ }
if ix>dx then { , Y}
for i:=iy to dy do
begin
inc(iz); Z[iz]:=Y[i];
end
else { Y, X }
for i:=ix to dx do
begin
inc(iz); Z[iz]:=X[i];
end;
{ }
writeln(' Z');
for i:=1 to iz do write(Z[i],' '); readln;
End.
10
:
1. .
2. .
.
1
n x n, . . .
2
n x , . . .
3
n x , . . .
|
|
4
n x n, . . .
5
, . , , , .
6
n x n, . . .
7
n x n, . . .
8
n x , . . .
9
n x , . . .
10
n x n, . . .
11
, . , , , .
12
n x n, . . .
13
, . :
1 - ( 0 999)
2 - ( 20).
.
14
, . :
|
|
1 - ( 0 999)
2 - ( 20).
.
15
, . :
1 - ( 0 999)
2 - ( 20).
.
16
, . :
1 - ( 0 999)
2 - ( 20).
.
17
, . :
1 - ( 0 9999)
2 - ( 30).
( ) .
18
, . :
1 - ( 0 9999)
2 - ( 30).
( ) .
19
, . :
1 - ( 0 9999)
2 - ( 30).
( ) .
20
, . :
1 - ( 0 9999)
2 - ( 30).
( ) .
18 :
. , . , , : . .
, n , . isk.
isk. :
1. isk, .
2. , isk, .
n , .. ~ n.
Uses crt;
Var
X:array[1..10000] of integer;
i, n, isk:integer;
Begin
write(' - n ');
readln(n);
write(' ');
for i:=1 to n do read(X[i]); writeln;
write(' '); readln(isk);
for i:=1 to n do
if X[i]=isk then
begin
writeln(' i = ',i);
readln; exit
end
else if X[i]>isk then break;
writeln(' ');
readln;
End.
: xi, , . xi isk , . xi < isk, xi , xi . 2 . , . , , , . , .
|
|
~ log2n.
First - .
Last -
< =
>
Uses crt;
Var X:array[1..10000] of integer;
isk,i,n,adr,First,Last:integer;
Begin
write(' - n ');
readln(n);
write(' ');
for i:=1 to n do read(X[i]);
writeln;
write(' ');
readln(isk);
First:=1; Last:=n;
while First <= Last do begin
adr:=(First+Last) div 2;
if isk=X[adr] then
begin writeln('Yes! isk = ',isk,' adr = ',adr);
exit
end
else if isk<X[adr] then Last:=adr-1
else First:=adr+1;
end;
writeln(' Not found');
end.
11
:
3. .
4. .
, .
1
, 10 , :
...
5 20 15
.
, 1960 .
2
, 10 , :
( .)
5 20
.
, 20000 . .
3
, 10 , :
5 10 10 1 7
( ).
, , "" .
4
, 10 , :
...
15 20 integer 1900..2000
.
, 1950 .
5
, 10 , :
(.)
5 20 real
.
, 15000 ., .
6
, 10 , :
...
20 5 6
.
, 1979 .
7
, 10 , :
...
20 20 8
.
, 1990 .
8
, 10 , :
...
20 20 8
.
, 1990 .
9
, 10 , :
integer 20 10 1 7
.
, 50 .
10
, 10 , :
...
15 30 integer 1900..2000
.
, 1970 .
11
, 10 , :
...
5 20 15
.
, 1950 .
12
, 10 , :
( .)
5 20
.
, 20000 . .
13
, 10 , :
5 12 10 1 7
" " ( ).
, , "", .
14
, 10 , :
...
15 20 integer 1900..2000
.
, 1980 .
15
, 10 , :
(.)
5 20 real
.
, , 25000 . .
16
, 10 , :
...
20 5 6
.
, 1980 .
17
, 10 , :
...
20 20 8
.
, 1990 .
18
, 10 , :
...
20 20 8
"" ( ).
, " " .
19
, 10 , :
integer 20 15 1 7
.
, 100 .
20
, 10 , :
...
15 30 integer 1900..2000
.
, 1970 . .
1. .. 7.0. . . - .: , 1997
2. . + = .- .: , 1985
3. . . . 3.
.- .:, 1978.