Стандартные процедуры Halt и Exit

Haltчитается “хальт”, переводится с немецкого “стой”.

Exitчитается “ ‘экзит”, переводится с английского “выход”.

До сих пор мы составляли программы, которые заканчивали свою работу на END с точкой, не раньше. Процедура Halt заставляет Паскаль завершить работу программы, не доходя до конечного END с точкой. Пример: программа

BEGIN Write(1); Write(2); Halt; Write(3) END.

напечатает 12, а программа

PROCEDURE a; BEGIN Write(6); Halt; Write(7); END;

BEGIN Write(2); a; Write(3); Halt; Write(4) END.

напечатает 26.

Обращение к процедура Exit, если оно встречается в процедуре, заставляет Паскаль вернуться в процедуру, ее вызвавшую. Пример: заменим в предыдущей программе первый из двух Halt на Exit и посмотрим, что будет. А будет то, что программа

PROCEDURE a; BEGIN Write(6); Exit; Write(7); END;

BEGIN Write(2); a; Write(3); Halt; Write(4) END.

напечатает 263.

Если Exit встречается в разделе операторов программы, то он, подобно Halt, вызывает выход из программы.

Задание 66:

Вот вам программа с процедурами. Вам нужно, не запуская ее, записать на бумажке весь разговор, который ведут герои “Трех мушкетеров”.

PROCEDURE ATOS;

begin WriteLn ('Я - Атос') end;

PROCEDURE ARAMIS;

begin WriteLn ('Это так же верно,как то,что я -Арамис!') end;

PROCEDURE PORTOS;

begin WriteLn ('А я Портос! Я правильно говорю, Арамис?');

Aramis;

WriteLn ('Он не врет, ваше величество! Я Портос, а он Арамис.') end;

PROCEDURE DARTANIAN;

beginWriteLn ('А я все думаю, ваше величество - куда девались подвески королевы?');

Exit;

WriteLn ('Интересно, что ответит король?');

Portos end;