19. ����� �� �������

����������� �������� ��� ����� �������� ��� �������� ������ �������� �������� ���������� �������������� ������� � ����� ������� ����������, ��������������:

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

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

�������� � ��������� ���������� �������� ������ �� �������.

19.1. �������� ����� ��������� � ����������:

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

B:IN_WIN(<����� � ����>,<����� ������>,<����� ����� ����� �����>)

��������, ��� ����������

B:IN_WIN(" ","������ � ���������","������� ������ +> ")

�� ����� ����� ������ ���� � ����� �����:

|----- ������ � ��������� ----------|

|                <����� � ����>            |

| ������� ������ +> __________|

���������� ������� ����� ������� � ������ ENTER. ����� � �� ����� ������� ���������, �������������� ����� ������� (��� ��������� ���������): @@(<�����1>) @@(<�����2>) ... �� ���������� B:IN_WIN(...) ������ ������ ���������, ������� ����������� ��� ��������� � �������� ��������������� ��������� ������ �������.

������ 19.1. �� ��� �������� ������ ��� ������ � ������ ��������.

START:IF THEN B:IN_WIN(" ","������� ��� ��������"," ")

T1:ANSW() B:IN() B:HALT();

{= ������ ���� X2 � X4, ��������� �������������, � ��������� ����. X1 =}

ANSW():IF @@(X2) ���(X2,X1) @@(X4) ���(X4,X1) THEN T1:ANSW_1(X1,X2,X4);

{= ������ �������� � �������� X1 =}

ANSW_1(X1,X2,X4):IF ����(X1,X10) THEN

B:BK() B:A(" ",X2," ",X4) B:A(" - ��� ������� ������ ",X10) T!:ANSW_2(X1);

ANSW_2(X1):IF ���(X1) THEN B:BK() B:A("�� ��������!");

ANSW_2(X1):IF <������ ��������> THEN B:BK() B:A("...");

...

��� ����� ������ ���� � �� �������� ��������� @@(������) @@(����). ��� ������� � �� ������ ���(������,��_i) ���(����,��_i) ���������� ��������� ANSW(). ��� ������� ANSW_1(...), ������� ������ �����.

����� ������ �������������� ��������� ANSW_1(...), �������� ����� ������ �������� � �������� X1 (� ������ � EDFILE!).

������ 19.2. ������ ���� "������ ���� - ��� �������?"

START:IF THEN B:IN_WIN(" ","������� ������"," ")

T1:ANSW() B:IN() {= ������� � �������� ������� ������� =}

B:HALT();

ANSW():IF @@(���) @@(�������) {������������� ��� �������}

@@(X2) ���(X2,X1) @@(X4) ���(X4,X1) ����(X1,X10) THEN

B:BK() B:A("��.",X2," ",X4) B:A(" - ��� ������� ������ ",X10);

ANSW():IF THEN B:BK() B:A("�� ����!");

������ ��������� ANSW() ���������� ���� X1=��_i � � �� ������� ����(��_i,...) - ���� ��������� ������.

����� �� ������ (�������� � ��������) ����� ���� ������� � ��������. ����� �������� B:IN() �� �����.

������ 19.3. "�� ����� ���������� ������ ������ ����?"

����� �������������� ����������:

ANSW():IF @@(�����)

@@(����������) {= ������������� ��� ������� =}

@@(X2) ���(X2,X1) @@(X4) ���(X4,X1) ����(X1,X10) ��(X10,X20) THEN

B:BK() B:A(" ",X2," ",X4) B:A(" - ������ �� ���������� ",X20);

����� ��������� ANSW() ����� ���� ���������: ������ �� ��� ����� ���� ������ (�� ����������� ������) � ���� �����.

� ���������� �������� �����������, ���� ��������� ����� ��������� � ����������� ��. ��������, ���� ������ "����� ������ � ������� �����?", �� ������ �� �����. ��� ����� �� ������� � ����� ��������� ����� ��������� ������������ ���� - ���������� �� � �����, ����� ������� � ��. ��� ������������ ��������� ��������������� ������ � �������������� ��������� ����� DECL.

�������� ������� 5.

� ��������� ������� ���������� ����������� � �������� ��������� ������ �� ������� ������� � ���������� ��.

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

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