15. ��������� � ��

� �.4 ���� ����������� ��������� ����� � ���������� �� ����� DECL, ������� ������������ ��� ���� � ��� DECL_WIN.EXE <��� �����> ���������� � ����������� ������, ������� ������� ����� ���� ��.

���� ������ (��):

----------------------------------------

���� ������, ���������� ��.

������ ��������� �EG(/91+)

���� ���������. ... START ... ��������� ...

����� ��������� END(/92+) @BL(91-, 92+)

������� ������ B:IN(<������>)

����������� ���������

1+ {= ��� B:NEW(X1) =}

..................................................

� �������� ���������� ��������� �� ���� �� ����������� ����� ���������, ������� ����������� � �� (� ���������� ���������), �������� ������ ��������� �����. ���� ���-������ � ��������� ����������� �������� B:IN(<������ ������>, �� ��������������� ��������� �������� � �� � �������� � �����. �� ��� �� ������������� - ��� ��������.

��� ���������� ��������� D: ��������� ��������� ���������, ������� �������� � �� �������. ��� ����, ����� ����� ����� ��������������� ���������, � ���� DECL ������� ����������� ��������:

- �������� ���� ���������� ������ ����� �� �� ���������� ����� (��������� ��������);

- �������� ��������� ���� ��;

- ����� ������ ���������� �� ��������;

- �������� ������ (�������� ������).

� �� ������� ����� �������� ������ �������� ���������, ������� ����������� � ����������. � ��� ������ ��������� ������ ��, ������ ��� �� ������. �� ����������� � �������� - �������� ��� �� ���������. ���������� ��� ��������.

15.1. ��������� ��������:

�������� B:C(X1) - ������� ��� ��������� ������ ����� �� �� ���������� ����� - �������� X1. �������� ����� ������ ����� �������� ����� ������� - B:NEW(X1). ��������, � ���������

IF ... THEN B:NEW(X7) <����� ������ ���������> B:C(X7);

� ������� B:C(X7) �� �� ����� ������� ��� ���������, ������� ���� ��������� �����������, ���������� ����� B:NEW(X7).

�������� B:C(X1,H) - ������� ��� ��������� �� ���������� (��� � � ���������� ������), ����� ����������.

15.2. ����� ������:

����� ������ ��������� �� �������� - H(<��� ���������>).

��������, ���� � ��������� ������� 2.2. �������:

UR2():IF ����(X1,X3) ����(X3,X2) THEN ���(X1,X2/X11) H(X11);

�� ��� �� ���������� � �� ���������: ���(�1,�3/1+) H(1-), �.�. �������� ���(�1,�3) ����� ������� �� ��������. ����� ��� ����������

IF ... THEN B:NEW(X7) ... T!:UR2() ... B:C(X7,H);

���� �������� ��������� ������ � ������ ������. ������ ���������, ������������� � �� ����� ���������������� ����, ��������������� ���������� B:NEW(X7), ����� �������. ��� �������� ����� ������ ����� ��������������� ���������� B:DELFR(H) - ��������� ���� ���������� � ������ H.

15.3. �������� ������:

�������� B:SQU(X1) - ������� ��� ������� ������ ����� �� �� ���������� ����� - �������� X1. �������� ��������, ��� � ��� ������ ��������. �������, ��� �������� B:C(X1,H) ������� �� ������ ������������ ���������, �� � �������, �.�. �������� � ���� B:SQU(X1).

15.4. ��������� �������� (��������) ���:

�������� B:DEL(X1,X2,_) - ������� ��� ��������� �� �� � �� ��������� ���� - �������� X1 � X2 (������ � ����� ���������� - ���������������� ������).

�������� B:DEL(X1,X2,H) - ������� ��� ������������ ��������� �� �� � �� ��������� ���� - �������� X1 � X2.

� ������� ������ �������� B:DEL(<��� ���������>) - ������� �� �� ��������� ��������. ���� ������ ����� �������� � ������� ��������� D:, �� ��� ����� �������������� ����� ����� ���������� ���������. �� ���� B:DEL(...) �������� ����� ������ � ����� �����. �������� (��. ������ 4.1), � ���������:

UR3():IF ���(����1,X1) �����(X1/X12) THEN ���������(X1) B:DEL(X12);

�������� �����(�1) ����� ������ ����� ���������� ���������(�1).

15.5. �������� ������������ ������� ������:

�������� B:OUT('STUD.Z',X1,X2,_) ������� � �� ���� �� X1 �� X2 ������������ � �������� �� � ���� 'STUD.Z'. �� �� ������ �� ����� �������.

���������� ������|��������� ������

- ������� �������� -