Структура программы на языке Pascal
В Паскале программа имеет определенную структуру.
Программа должна начинаться с заголовка, который состоит из зарезервированного слова program и имени программы, например, program My_code.
Слово program записывается строчными буквами. Собственно имя программы пишется латинскими буквами или цифрами без пробелов, но первым символом должна быть буква. Если имя состоит из в нескольких слов, их можно отделить символом подчеркивания.
За заголовком следует раздел uses, в котором указываются подключаемые библиотечные модули. Этот раздел состоит из служебного слова uses и имен модулей, необходимых для работы программы (например, uses Crt, Dos).
Следующими разделами программы на Паскале являются описания меток, констант, типов данных и переменных. Структуру этих описаний мы рассмотрим позже.
Если в программе созданы процедуры и функции, то они также должны быть приведены в разделе описаний.
Исполняемой частью программы является раздел операторов, который следует за разделом описаний. В разделе операторов выполняются действия над предварительно описанными переменными, константами, функциями и т.д. Именно в этом разделе получается результат, ради которого составлялась программа. Начинается раздел служебным словом begin и заканчивается словом end с точкой. Итак, программа на Паскале состоит из следующих разделов:
Каждый из разделов начинается со служебного слова, например, заголовок -со слова program, описание внешних модулей - со слова uses. Эти начальные служебные слова даны в правой колонке приведенного перечня разделов программы.
Не все из перечисленных разделов обязательно должны присутствовать в программе. В простых программах могут быть только заголовок, описание переменных и раздел операторов. Вообще любой раздел, кроме раздела операторов, в программе может отсутствовать.
Что касается порядка следования разделов, то некоторые разделы (описания, кроме uses) могут располагаться в произвольном месте программы и встречаться в программе любое количество раз. Главное правило, которое при этом должно соблюдаться: описание идентификатора должно предшествовать его использованию в разделе операторов.
Любая программа (процедура или функция) должна состоять из трех основных разделов:
1. заголовок
2. описания
3. исполняемые операторы (тело программы)
Структура программы
Program < имя программы>;
Var x: real; (вместо Var (описание переменных) может быть Const – описание констант)
Begin
…
End.
Раздел описаний и раздел операторов
Как отмечалось, программа на Паскале начинается заголовком, за которым следует раздел описаний. Его мы рассмотрим подробнее.
Описание меток
В программе, написанной на Паскале, перед любым оператором можно поставить метку. Метка позволяет выполнить переход на помеченный оператор из любого места программы, используя при этом оператор перехода. В качестве метки может выступать любое сочетание из букв и цифр длиной до 127 символов.
Все используемые в программе метки должны быть описаны, раздел описания меток начинается со слова label и имеет, например, вид:
label
Ml, Tok, llab, 123;
Строка описания заканчивается точкой с запятой. Это касается не только описания меток, но и всех остальных описаний (констант, переменных и т.д.).
В разделе операторов после идентификатора метки ставится двоеточие, которое указывает компилятору, что данный идентификатор является меткой:
Ml: <оператор> Tok: <оператор>
Количество описанных меток может превышать число использованных меток, и это не будет считаться ошибкой. Поэтому программист может заранее описать избыточное количество меток и применять их по мере расширения программы.
Описание констант
При составлении первых программ на Паскале привыкните к определенной последовательности записи разделов описаний. Это не повлияет на исполнение программы, но поможет вам в дальнейшем анализировать программу.
После описания меток обычно следует описание констант. В этом разделе идентификаторам констант присваиваются постоянные значения. Описание констант может выглядеть следующим образом:
Описание переменных
Все переменные, которые встречаются в программе, должны быть описаны. Описание переменных выполняется по следующей схеме:
var <идентификатор>: <тип>;
То есть описание начинается с зарезервированного слова var (от слова variable -переменная). Затем следует перечисление имен переменных, разделенных запятыми. Имена переменных отделяются двоеточием от указания их типа. Например:
Описание типов данных
Любой элемент данных (константа, переменная) можно отнести к тому или иному типу. Тип определяет множество значений, которые может принимать элемент данных. Все типы данных должны быть понятны компилятору, и поэтому те типы, которые вводятся программистом, необходимо описать.
Ранее вы уже познакомились со стандартными типами данных integer, real, char, boolean и string (см. пункт «Стандартные типы данных», §54). Кроме этих типов, программист по своему желанию может ввести новый тип данных, указав его в разделе описания типов.
К числу типов, которые могут вводиться программистом, относится перечисляемый тип данных. Этот тип определяется путем перечисления его элементовпоследующей схеме:
type <имя типа> = <список имен>
Раздел описания типов данных в этом случае начинается служебным словом type, после которого следуют имена типов и списки значений, разделенные точкой с запятой, например:
type
size = (little, middle, big);
metal = (copper, tantal, cobalt, silver) ;
index2 = (1, 5, 8, 13) ;
Кроме перечисляемых типов, в Паскале существует интервальный тип данных (его еще называют тип-диапазон). Множество значений для этого типа задается с помощью указания интервала: от наименьшего до наибольшего значения. Эти крайние значения разделяются двумя последовательными точками, например:
type
element = 100..200;
letter =('а'..'2');
В этом описании тип element определяет множество целых чисел от 100 до 2 0 О, а тип letter - множество букв латинского алфавита от а до z.
Рассмотрим теперь более сложные описания - это описания структурированных типов. К таким типам относятся массивы. Описание массивов задается следующей схемой:
type <имя типа> == array [<список индексов>] of <тип>
где<имя типа> - идентификатор;
array и of - зарезервированные слова;
<список индексов> - список индексных типов, разделенных запятыми;
<тип>-любой тип данных.
Приведем примеры описаний массивов:
type
vector = array [1..3] of real;
table = array [1..5, 1..9] of integers-cub = array [0..4, -2..2, char] of byte;
В данном примере vector - это имя типа одномерного массива, состоящего из трех элементов, принимающих вещественные значения. Тип table - тип двумерного массива размером 5х9, состоящего из целых чисел. Тип cub в данном описании - это тип трехмерного массива, состоящего из целых значений типа byte (byte - это целый тип, занимающий 1 байт памяти, а не 2 байта, как в случае типа integer). Третья компонента трехмерного типа cub обозначается символьным индексом char.
Переменные, принадлежащие указанным выше типам, описываются уже обычным образом:
var
al : vector;
din : table;
с : cub;
где al, din, с - идентификаторы переменных.
Раздел операторов
Операторы языка Паскаль бывают простыми и составными (или, иначе говоря, структурными).
Простыми называются те операторы, которые не содержат никаких других операторов.
К простым операторам относятся: присваивание, оператор перехода, оператор
вызова процедуры и пустой оператор.
Оператор перехода до to (его называют еще оператором безусловного перехода) применяется в тех случаях, когда после выполнения некоторого оператора нужно выполнить не следующий по порядку в записи программы, а какой-либо другой оператор. Для выделения оператора, к которому нужно совершить переход, используется метка (см. пункт «Описание меток» настоящего параграфа). Переход осуществляется следующим образом:
до to-Label;
label: A:=A*D;
Когда в программе дойдет очередь до оператора до to label, будет исполнен оператор А: =A*D, стоящий в строке с меткой label. Вслед за оператором с меткой будет выполняться следующая строка программы.
Пустой оператор не выполняет никаких действий и не содержит никаких символов. Обычно этот оператор используется для организации различных переходов в программе, поэтому перед пустым оператором ставится метка. Фрагмент программы с пустым оператором может выглядеть как
до to М;
Как отмечалось, существует еще один тип простых операторов - операторы вызова процедур, - их мы рассмотрим позже.
Вопросы для самоконтроля.
1. Какие разделы описаний могут присутствовать в программе?
2. Как вводятся метки в программу?
3. Как выглядят описания констант и переменных?
4. Каким образом описывается тип-диапазон?
5. Составьте описание одномерного массива.
6. Какие операторы относятся к простым операторам?
7.Что называется составным оператором?
Ввод и вывод в Паскале
Ход работы.
- встроенные процедуры ввода Write и Writeln;
- процедуры вывода Read и Readin;
- правила оформления программ в редакторе Паскаля.