Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Praktikum_po_programmirovaniyu.doc
Скачиваний:
23
Добавлен:
09.12.2018
Размер:
2.5 Mб
Скачать

3.1. Структура программы на turbo pascal

Неотъемлемой частью программы являются комментарии, то есть, пояснения, которые программист делает сам для себя или для пользователя. Комментарий помещается в скобки: {комментарий} или (*комментарий*).

Директивы компилятора – это команды, задающие режим компиляции, например, {$R+},{$R-}:

{$R+} – введение контроля за выходом индекса за пределы границ массива;

{$R-} – снятие введенного контроля.

Введение директив компилятора резко замедляет работу программы, поэтому они вводятся только на этапе отладки программы или для части программы.

Программа в общем случае может иметь такую структуру:

- заголовок программы (Program < имя программы>;);

- список имен подключаемых библиотечных модулей (uses <имя1>, <имя2>, …, например, uses Crt, Dos;);

- раздел описания меток (label 3, 6;);

- раздел описания констант (const a=3.8;);

- раздел описания типов (type);

- раздел описания переменных (var);

- раздел описания процедур и функций: в этом разделе помещаются тела процедур и функций, используемых в программе;

- раздел операторов содержит собственно операторы самой программы (begin <операторы> end).

Любой раздел программы, кроме раздела операторов, может отсутствовать. Раздел uses всегда должен стоять после заголовка программы, все остальные разделы могут

32

встречаться в программе любое количество раз и следовать в произвольном порядке. Необходимо только чтобы эти разделы были описаны до того, как будут использованы.

3.2. Основные операторы языка

Оператор языка Паскаль представляет собой некоторый неделимый элемент программы, который позволяет выполнять определенные алгоритмические действия.

Операторы подразделяются на:

Простые: оператор присваивания, оператор безусловного перехода, оператор вызова процедур, пустой оператор;

Операторы ввода-вывода: оператор чтения, оператор записи;

Структурные операторы: составные операторы, условные операторы, операторы повтора (цикла);

3.2.1. Простые операторы

К простым операторам относятся операторы: присваивания, безусловного перехода (goto), оператор вызова процедур и пустой оператор.

Оператор присваивания предназначен для вычисления нового значения переменной или для определения значения, возвращаемого функцией.

Оператор присваивания имеет вид: a: = b;

Значение переменной, стоящей справа от знака равенства, к моменту вычисления должно быть уже известно. С помощью

оператора присваивания реализуются операции

накапливающего суммирования и умножения.

Пример операции бесконечного накапливающего суммирования:

33

1. a: = 0;

2. a: = a + 1;

3. Перейти к шагу 2.

Пример операции бесконечного накапливающего произведения:

1. I: = 1;

2. p: = 1;

3. p: = p*i;

4. i: = i +1;

5. Перейти к шагу 3.

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

Оператор безусловного перехода (goto). Все операторы в программе выполняются последовательно. Если нужно нарушить последовательный характер выполнения, то используется оператор goto, который передает управление на оператор, помеченный меткой:

label st1, st2;

begin

. . . . . .

goto st1;

. . . . . .

st1: . . . . . .

. . . . . .

goto st2;

. . . . . .

st2: . . . . . .

. . . . . .

end.

34

При использовании оператора goto необходимо соблюдать следующие правила:

- метка, на которую передается управление, должна быть описана в разделе описания меток того блока основной программы, процедуры или функции, в котором эта метка используется.

- метки, описанные в процедуре (функции), локализуются в ней, поэтому передача управления извне процедуры (функции) на метку внутри нее невозможна.

Следует заметить, что слишком частое использование оператора goto затрудняет понимание логики программы и усложняет процесс отладки. Считается, что квалификация программиста обратно пропорциональна количеству используемых им операторов goto.

Современные технологии программирования позволяют избежать использования оператора goto.

Оператор вызова процедур – служит для обращения к предварительно определенным пользователем процедурам:

Program S;

. . . . . .

Procedure P1;

begin

. . . . . .

end;

Procedure P2;

begin

. . . . . .

end;

begin

P1; - {оператор вызова процедуры P1}

P2; - {оператор вызова процедуры P2}

. . . . . .

end.

35

Пустой оператор – не содержит никаких символов и не выполняет никаких действий. Пустой оператор обычно помечается меткой и используется для организации перехода к концу программного блока, если нужно пропустить несколько операторов, но не выходить из блока.