Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгор_ТХТК_пособие.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.6 Mб
Скачать

Структура программы

Программы, написанные на языке программирования Турбо Паскале, строятся в соответствии с правилами, представляющими собой несколько расширенные и "ослабленные" правила синтаксиса стандартного Паскаля. Язык Паскаль является языком строгой спецификации данных, поэтому в разделе определения данных должны быть описаны все используемые в программе метки, установлены значения констант, описаны имена новых типов данных, описаны переменные и определены пользовательские процедуры и функции.

Программа на языке ПАСКАЛЬ состоит из заголовка, разделов описаний и раздела операторов.

{ Раздел описания данных}

Label ...; {раздел определения меток}

Const ...; {раздел определения констант}

Type ...; {раздел определения новых типов}

Var ...; {раздел определения переменных}

function ...; {раздел определения программных

procedure ...; единиц}

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

Begin

...

end.

Заголовок программы содержит имя программы, например:

Program PRIM;

Слово PROGRAM зарезервировано в Паскале и означает начало программы. Далее записывается имя программы (в приведенном примере - PRIM). В Турбо Паскале можно опускать объявление имени оператором PROGRAM без каких-либо последствий для программы.

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

Раздел описания модулей определяется служебным словом USES и содержит имена подключаемых модулей (библиотек) как входящих в состав системы TURBO PASCAL, так и написанных пользователем. Раздел описания модулей должен быть первым среди разделов описаний. Имена модулей отделяются друг от друга запятыми:

uses CRT, Graph;

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

label 3, 471, 29, Quit;

Описание констант позволяет использовать имена как синонимы констант, их необходимо определить в разделе описаний констант:

const K= 1024; MAX= 16384;

В разделе описания переменных необходимо определить тип всех переменных, используемых в программе:

var P,Q,R: Integer;

A,B: Char;

F1,F2: Boolean;

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

Отдельные разделы описаний могут отсутствовать, но следует помнить, что в ПАСКАЛЬ - программе должны быть обязательно описаны все компоненты программы.

Раздел операторов или основной блок программы состоит из последовательности операторов, причем работа программы начинается именно с первого оператора основного блока программы. Тело основного блока программы ограничено словами BEGIN и END. Операторы отделяются друг от друга символом ;.

Необходимо обратить внимание на наличие точки после служебного слова END. После последнего оператора END всегда славится точка, тем самым компилятор получает информацию об окончании текста программы.

Текст программы заканчивается символом точка.

Кроме описаний и операторов ПАСКАЛЬ - программа может содержать комментарии, которые представляют собой произвольную последовательность символов, расположенную между открывающей скобкой комментариев { и закрывающей скобкой комментариев }.

Текст ПАСКАЛЬ - программы может содержать ключи компиляции, которые позволяют управлять режимом компиляции. Синтаксически ключи компиляции записываются как комментарии. Ключ компиляции содержит символ $ и букву-ключ с последующим знаком + (включить режим) или - (выключить режим). Например:

{$E+} - эмулировать математический сопроцессор;

{$F+} - формировать дальний тип вызова процедур и функций;

{$N+} - использовать математический сопроцессор;

{$R+} - проверять выход за границы диапазонов.

Некоторые ключи компиляции могут содержать параметр, например:

{$I имя файла} - включить в текст компилируемой программы названный файл.

Пример записи программы:

PROGRAM Имя;

{ Программа суммирования двух введенных целых чисел}

VAR

Number J, Number 2, Sum: INTEGER; {Описание данных}

B EGIN { Начало обработки }

Write (' Введите первое число: );

ReadLn (Number_1);

W

{Операторы}

rite ('Введите второе число:');

ReadLn (Number_2);

Sum := Number_1 + Number 2,

WriteLn (' Сумма введенных чисел равна: '.Sum);

END. { Конец текста программы}

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

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

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

Разделитель отмечает конец оператора или описания. Использование особого разделителя позволяет располагать несколько операторов на одной строке.

После заголовка программы следует текст, заключенный в фигурные скобки. Это комментарий. Комментарий - выделенная фигурными скобками информация для пояснения, которая не исполняется программой. Кроме фигурных скобок {}, могут использоваться также пары символов (* и *) слева и справа от комментария соответственно.

В нашем примере в разделе описаний объявлены три перемонные Number_1, Number 2, Sum как переменные целого типа. Имена переменных записаны через запятую, а перед служебным словом INTEGER стоит двоеточие.

Зарезервированное слово BEGIN в следующей строке сигнализирует компилятору о начале другой части программы- раздела операторов. Write, WriteLn, ReadLn служат для вывода и ввода информации и являются стандартными процедурами. В Турбо Паскале есть возможность использования некоторых стандартных процедур без предваряющего описания этих процедур (общее правило гласит: все процедуры должны быть описаны). По своей сути оператор

Write ('Введите первое число:'),

является оператором обращения к встроенной процедуре вывода данных. Свое название она получила от write - записать, a writeln - записать строку.

Процедура write осуществляет вывод объектов перечисленных в скобках через запятую. В данном случае выводится текстовая константа 'Введите первое число:'.

ReadLn (Number_1); - стандартная процедура ввода численного значения переменной с именем Number 1. При выполнении программы машина предоставит возможность ввести с клавиатуры численное значение этой переменной. Два следующих оператора аналогичны.

Оператор Sum := Number_1 + Number_2;

- оператор присваивания, один из основных операторов языков программирования. В его левой части указывается имя переменной, правая часть представляет собой выражение того же типа, что и переменная. Выполняется оператор так: вычисляется численное значение выражения в правой части и результат записывается в переменную слева. Другими словами, оператор присваивания - вычислитель. Переменная Sum принимает значение суммы двух переменных Number_1 и Number 2.

WriteLn (' Сумма введенных чисел равна: \Sum):

Выводит два объекта – текстовую константу и переменную. Оператор Write выводит строку на экран и оставляет курсор в конце только что выведенной строки. Оператор WriteLn после вывода устанавливает курсор в начало следующей строки.

Для написания наглядных и легко читаемых программ необходимо выполнять следующие рекомендации:

  1. Стандартизация стиля программирования. Если существует более одного способа реализации программы, то необходимо остановиться на каком-то одном способе (лучше всего общепринятом) и всегда его придерживаться. Это позволит избежать ошибок и путаницы.

  2. Размещение текста программы. Не следует операторы программы писать сплошным текстом. Программу необходимо размещать структурировано:

    • конструкции языка (описания, операторы, блоки) более глубоких уровней сдвигать от начала строки вправо;

    • конструкции языка одинаковых уровней располагать друг под другом;

    • каждое описание и каждый оператор писать с новой строки;

    • продолжение описаний и операторов в следующих строках сдвигать вправо относительно начала;

    • избегать слишком длинных строк.