- .
.
:
- -;
- -;
- -;
- -;
- .
, .
:
procedure P (procedure B; function C: real; Q, W, R: char);
procedure A;
:
- ;
- ;
- .
- . .
procedure Abort (Msg: string);
function Step (N: integer; X: real): real;
, , .. .
- , .
:
Program Par_Znach;
var
A, B: real;
procedure Sum_Square (X, Y: real); {X, Y - }
begin
X:= X*X;
Y:= Y*Y;
Writeln (' =', X + Y);
end;
begin
A:= 1.5;
B:= 3.4;
Sum_Square (A, B); { }
end.
- var .
Procedure Example (var M, N: integer; var Y: real);
- .
.. -.
:
Program Sum_Sub_Square;
var
A, B: real;
Sum AB, Sub AB: real; {Sum, Sub - -}
procedure Sum_Sub (X, Y: real; var Sum, Sub: real);
begin
Sum:= X*X + Y*Y;
Sub:= X*X - Y*Y;
end;
begin
A:= 1.5;
B:= 3.4;
Sum_Sub (A, B, Sum AB, Sub AB); { . - Sum AB Sub AB}
Writeln (' ', A, '', B, '=', Sum AB);
Writeln (' ', A, '', B, '=', Sub AB);
end.
- -.
Turbo Pascal , , , .
|
|
, .
, .. :
- ;
- ;
- .
, :
- far {$F+}
- : 1) ;
2) ;
3) inline ;
4) interrupt .
- - procedure function:
Procedure Example (K, L: intrgrt; var M: real; procedure Prob; function Step: real);
K, L - -,
- -,
Prob - -,
Step - -.
: , (, ).
Program Demo_Tab1;
type
Func = function (X, Y: integer_: integer; { Func}
{$F+}
function Add (X, Y: integer): integer; { }
begin
Add:= X + Y;
end;
function Mult (X, Y: integer): integer; { 2- }
begin
Mult:= X*Y;
end;
function Funny (X, Y: integer): integer; { 2- }
begin
Funny:= (X + Y)*(X + Y);
end;
{$F-}
procedure Type_Tab1 (W, H: integer; Operation: Func); { 2- 1 10}
var
X, Y: integer;
begin
for Y:= 1 to H do
begin
for X:= 1 to W do
Write (operation (X, Y): 5);
Writeln;
end;
end;
begin { }
Type_Tab1 (10, 10, Add); {
Type_Tab1 (10, 10, Mult); : +, -
Type_Tab1 (10, 10, Funny); }
end.
, , .
, , ,
.
Pascal-:
, , :
1. , , , .
2. , , .
3. , , , .
:
, D, . , F .
|
|
:
Program Example_proc;
procedure P;
procedure A;
var J: integer; { J
}
procedure B;
var J: integer;
begin
Writeln (J);
end;
begin
J:= 1;
B; { }
end;
begin
A; { }
End
31
- , , , string PChar.
, , :
function FuncName (q1: t1; q2: t2;...): FuncType;
< >
begin {FuncName}
p1;
...
pn;
FuncName:=...; { }
end; {FuncName}
FuncName ( );
qi ;
ti ;
FuncType () ;
pj .
:
1. var.
2. , , .
: f (x) =
f (5) =
x , 5 .
3. (, , , ..), , , .. . , , , .. , .
, , () , . , , . for do, .
4. , :
r:=... + FuncName (b1, b2,...);
. . .
5. , .
: n m
1(13.1)
n m (), , . , a, b, c 2:
ab; ac; bc.
:
2(13.2)
, n m n, m, (n-m). k ( k!) :
3(13.3)
:
4(13.4)
(13.1) , . (13.2) (13.3) , :
5(13.5)
- . (13.5) , . First Last -:
|
|
function Multiple (First, Last: Byte): Longint;
if M < N / 2 then
Cnm:= Multiple (N M + 1, N) / Multiple (2, M)
else
Cnm:= Multiple (M + 1, N) / Multiple (2, N - M);
, M 20 0? M? 20.
program Combine;
{ 20 M}
uses
CRT;
{ }
const
N = 20;
var
M: Byte;
function Multiple (First, Last: Byte): Single;
{ First Last}
var { }
Mult: Single;
i: Byte;
begin {Multiple}
Mult:= 1;
for i:= First to Last do
Mult:= Mult * i;
Multiple:= Mult; { }
end; {Multiple}
begin {Combine}
ClrScr; Writeln;
{"" }
Writeln (' M', ' ':10, ' M', ' ':3, '( 20 M)');
Writeln;
for M:= 0 to N do { M}
begin
{ }
Write (M:4, ' ', Multiple (2, M):20:0, ' '); { M}
{ N M}
if M < N / 2 then
Writeln (Multiple (N - M + 1, N) / Multiple (2, M):10:0)
else
Writeln (Multiple (M + 1, N) / Multiple (2, N - M):10:0);
end; {for i}
end. {Combine}
:
k! k=13 Longint. Multiple Single.
.
, . , .
, . ( ) : ( , , ), , , .
, , , , , ...