- , . record end. , , .
RECORD
1: 1;
2: 2;
:
END;
, , :
Type
PointRecType = record x, y: Integer end;
.
Type
Car=Record
Number: | integer; | {} |
Marka: | string[20]; | { } |
FIO: | string[40]; | {, } |
Address: | string[60]; | { } |
end;
Var
M, V: Car;
Car : , , . . V Car.
, . . , , .
. , . , . .
, Car :
M.Number, M.Marka, M.FIO, M.Address.
, . .
.
M.Number:=1678;
M.Marka:= _24;
M.FIO:= . .
M.Address:=. 12-31;
, , -:
Read(M.Number, M.Marka, M.FIO, M.Address);
Write(M.Number:4, M.Marka:7, M.FIO:12, M.Address:25);
, , . , V:= ;
V .
. :
Type
Person= record
FIO: string[20];
Age: 1..99;
Prof: string[30];
End;
Var
List: array[1..50] of Person;
, . Pascal with,
|
|
with _ DO ;
with, , . . , .
: with
with M do
begin
Number:=1678;
Marka:= _24;
FIO:= . .
Address:=. 2-31;
end;
with , . , .
PROGRAM MAIN;
var
X, Y: Integer;
RecXY: record X, Y: Integer end;
Begin
X: =10; Y: =20; | { X Y } |
with RecXY do begin | { RecXY } |
X: = 3.14 * X; | { X Y? } |
Y: = 3.14 * Y |
end; {with}
End.
with RecXY. with X Y, X Y - (UNIT), ( ). , :
with RecXY do begin
X: = 3.14 * Main.X;
Y: = 3.14 * Main.Y
end;
.
Pascal (.. ), with .
with RV1 do
with RV2 do
with RVn do
with RV1, RV2, , RVn do...
, , . . Pascal , . . , , . .
. case. , , . . , , . :
Type
Rec = record
case < >: < > of
< 1>: (....:):
< n >: (....:)
end;
( ) . case end, case. end . , .
, , .
:
|
|
, , , ;
, ;
, - , , : <>: ().
2. , .
:
Program SF;
Uses Crt;
Type TF=(rect,circle);
figure=record
case art: TF of
rect:(L1,L2:real);
circle:(R:real);
end;
Var x:figure;
p:string[6];
pr:char;
Begin
ClrScr;
repeat
write(' (rect, circle) '); readln(p);
with x do begin
if p='rect' then art:=rect;
if p='circle' then art:=circle;
case art of
rect: begin
write(' = '); readln(L1);
write(' = '); readln(L2);
writeln(' =', L1*L2:8:3);
end;
circle: begin
write(' = ');readln(R);
writeln(' =', Pi*R*R:8:3);
end;
end; {case}
end;
write(' ? (Y-,N- ) ');readln(pr);
until pr='N';
readln;
End.
.
, . . C T, T , C, . , C T. .
< > = SET OF < >
SET OF - .
:
TYPE SCHOOL = (PUPILS, TEACHERS, ZAVUCH, ZAVHOZ, DIRECTOR)
:
TYPE ADMINISTRAZIA = SET OF SCHOOL;
ADMINISTRAZIA .
ADMINISTRAZIA - SCHOOL. SCHOOL - ADMINISTRAZIA. , . [PUPILS, TEACHERS], [ZAVUCH, ZAVHOZ, DIRECTOR] SCHOOL. . : [ ].
, , :
, ;
;
, (.. ).
, . +.
:
[1, 2] + [3, 4, 5] = [1, 2, 3, 4, 5];
[PUPILS, TEACHERS] + [ZAVUCH, ZAVHOZ, DIRECTOR] =
[PUPILS, TEACHERS, ZAVUCH, ZAVHOZ, DIRECTOR];
, . *.
:
[1..10] * [5..20] = [5..10];
[PUPILS, TEACHERS] * [TEAHERS, ZAVUCH] = [TEAHERS];
, , . -.
:
[1..10] - [5..20] = [1..4];
[PUPILS, TEACHERS, DIRECTOR] - [ZAVUCH, ZAVHOZ] = [DIRECTOR];
:
= ;
<> ;
<= ;
>= .
true false, :
|
|
[3, 4, 5] = [4, 5] - false
[3, 4, 5] <> [4, 5] - true
[1, 2, 3] <= [1..10] - true
IN, -. IN . , . true, , .. . false.
,
5 in [1, 2, 3, 4, 5, 6, 7] - true
10 in [1, 2, 3, 4, 5, 6, 7] - false
ZAVUCH IN [PUPILS, TEACHERS, ZAVUCH, ZAVHOZ]
,
DIRECTOR IN [PUPILS, TEACHERS, ZAVUCH, ZAVHOZ]
31,
( ) - , - . . , , . - , - . (heap - ). . - . TURBO PASCAL New, Dispose, GetMem, FreeMem, Mark,Release, MaxAvail, MemAvail, SizeOf. New(var p: Pointer) - p^ p. Dispose(var p: Pointer) , New, p . GetMem(var p: Pointer; size: Word) heap - , p, size. FreeMem(var p: Pointer; size: Word) - , p, - size. p . Mark(var p: Pointer) p . Release(var p: Pointer) - , , p Mark, -, , Mark. MaxAvail: Longint - . MemAvail: Longint - . SizeOf(X): Word -, X, X , . . var p1, p2: ^Integer; p1 p2 - . p1:=NIL; p2:=NIL; p1 p2 . New(p1); New(p2); New(p1) : - ; - p1: ===== ===== *-----------> L=====- L=====- p1 p1^ , New(p2) , p2: ===== ===== *-----------> L=====- L=====- p2 p2^ p1^:=2; p2^:=4; 2 4 -: ===== ===== *-----------> 2 L=====- L=====- p1 p1^ ===== ===== *-----------> 4 L=====- L=====- p2 p2^ p1^:=p2^; , p1, 4: ===== ===== *-----------> 4 L=====- L=====- p1 p1^ ===== ===== *-----------> 4 L=====- L=====- p2 p2^ p2:=p1; : ===== ===== *-----------> 4 L=====- --->L=====- p1 p1^ p2^ ===== *--------- L=====- p2 p1^, p2^ , New. , -: p1^:=p1^+8; Write('p1^=',p1^:3); . : Program DemoPointer; var p1,p2,p3:^Integer; begin p1:=NIL; p2:=NIL; p3:=NIL; New(p1); New(p2); New(p3); p1^:=2; p2^:=4; p3^:=p1^+Sqr(p2^); writeln('p1^=',p1^:3,' p2^=',p2^:3,' p3^=',p3^:3); p1:=p2; writeln('p1^=',p1^:3,' p2^=',p2^:3) end. : p1^= 2 p2^= 4 p3^= 18p1^= 4 p2^= 433,
|
|
. , , , .
.
* | 2*3 (: 6) | |
/ | 30/2 (: 1.5E+01) | |
+ | 2+3 (: 5) | |
- | 5-3 (: 2) | |
div | 5 div 2 (: 2) | |
mod | 5 mod 2 (: 1) |
:
- NOT - ("")
- AND - ("")
- OR - ("")
- XOR - " "
.
A | B | not A | A and B | A or B | A xor B |
true | true | false | true | true | false |
true | false | false | true | true | |
false | true | true | false | true | true |
false | false | false | false | false |
, :
- > -
- < -
- = -
- <> -
- >= -
- <= -
, , , .
() . :
- not, -, @
- : * / div mod and
- : + - or xor
- : = <> < > <= >= in
. 2*5+10 20, 2*(5+10) 30.