Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тurbo Pascal 7+.doc
Скачиваний:
12
Добавлен:
24.12.2018
Размер:
10.09 Mб
Скачать

8.3. Процедуры и операторы

Разберемся немного с терминологией. Прежде всего уточним структуру программы на Паскале. Любая программа на Паскале состоит из двух разделов:

{Раздел описаний}

BEGIN

{Раздел операторов}

END.

Раздел описаний может и отсутствовать, если же он присутствует, то может содержать разделы VAR, LABEL, USES, PROCEDURE и другие.

Раздел операторов состоит из операторов, разделенных точками с запятой.

В начале 2 части было отмечено, что многие операторы на Паскале являются обращениями к процедурам. Для простоты мы договорились не различать поначалу обращения к процедурам и другие операторы. Кроме процедур, написанных нами (таких, как tochka, tire и др.), существуют еще так называемые стандартные процедуры Паскаля. Мы уже изучили следующие стандартные процедуры: Write, WriteLn Read, ReadLn, Sound, Delay, NoSound. Они называются стандартными потому, что определены "внутри Паскаля" и ими можно пользоваться не описывая их, как мы описывали созданные нами "пользовательские" процедуры. Природа пользовательских и стандартных процедур едина, поэтому мы будем называть и те и другие просто процедурами. Операторами же мы будем продолжать называть операторы goto, if, case, for, while, repeat, оператор присваивания, составной оператор и еще незнакомые нам оператор with и пустой оператор.

8.4. Стандартные процедуры 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.

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

Задание 66

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

PROCEDURE ATOS;

BEGIN WriteLn('Я - Атос')

END;

PROCEDURE ARAMIS;

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

END;

PROCEDURE PORTOS;

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

Aramis;

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

END;

PROCEDURE DARTANIAN;

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

Exit;

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

Portos;

END;

BEGIN

WriteLn('Я, король Франции, спрашиваю вас - кто вы такие? Вот ты - кто такой?');

Atos;

WriteLn ('А ты, толстяк, кто такой?');

Portos;

WriteLn ('А ты что отмалчиваешься, усатый?');

dArtanian;

WriteLn ('Анна! Иди-ка сюда!!!');

Halt;

WriteLn ('Аудиенция закончена, прощайте!');

END.

Выполнив задание, скопируйте программу в редактор Паскаля и запустите ее. Если ответ не сходится, запустите ее в отладочном пошаговом режиме.

Теперь вы достаточно знаете о процедурах, чтобы они стали для вас удобными кирпичиками для постройки программ. Более мощным средством являются процедуры с параметрами, о которых вы узнаете в главе 13.