Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal.doc
Скачиваний:
32
Добавлен:
12.03.2016
Размер:
3.29 Mб
Скачать
      1. Процедуры и операторы

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

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

BEGIN

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

END.

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

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

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

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

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

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

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

BEGINWrite(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:

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

PROCEDUREATOS;

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

PROCEDUREARAMIS;

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

PROCEDUREPORTOS;

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

Aramis;

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

PROCEDUREDARTANIAN;

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

Exit;

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

Portos end;

BEGIN

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

Atos;

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

Portos;

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

dArtanian;

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

Halt;

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

END.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]