Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 13.doc
Скачиваний:
11
Добавлен:
20.11.2019
Размер:
858.62 Кб
Скачать

13.1.8. Выражения

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

1. унарная операция not, унарный минус –, взятие адреса @

2. операции типа умножения * / div mod and shl shr

3. операции типа сложения + – or xor

4. операции отношения = <> < > <= >= in

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

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

Программа на языке Pascal состоит из заголовка и блока. Блок называют телом программы. Заголовок программы отделен от тела точкой с запятой. Точка, стоящая после блока, служит признаком конца программы. Таким образом, программа имеет вид:

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

П равила построения синтаксических диаграмм поясним на примере диаграммы заголовка программы:

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

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

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

В стандарте языка используются стандартные файлы с именами:

Input - входной стандартный файл (имя стандартного устройства ввода).

Output - выходной стандартный файл (имя стандартного устройства выво­да).

Примеры заголовка :

program LinearUnequation (Input, Output);

program GrafTrans;

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

Тело программы (блок) на языке Паскаль состоит из разделов описаний и раздела операторов.

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

Раздел описания модулей определяется служебным словом 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;

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

1.Распределения памяти. Распределение (резервирование) памяти для переменных, описанных в разделе переменных, производит компилятор на этапе генерации кода. Для каждой переменной в оперативной памяти отводится определенное место. Размер этой части памяти определяется типом переменной.

2.Правильной интерпретации действий над данными. Например, сложение целых чисел интерпретируется не так, как сложение вещественных чисел или строк.

3.Контроля правильности применения переменных. Ошибка, допущенная при написании переменной в разделе операторов, приведет к сообщению о синтаксической ошибке, так как эта переменная не описана в разделе переменных.

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

Р аздел операторов представляет собой составной оператор, который содержит между служебными словами Begin и end последовательность операторов, выполняющих действмя над данными:

Операторы отделяются друг от друга символом ; (точка с запятой). Текст программы заканчивается символом точка.

Кроме описаний и операторов Паскаль–программа может содержать комментарии, которые представляют собой произвольную последовательность символов, расположенную между открывающей скобкой комментариев { и закрывающей скобкой комментариев }. Комментарии используют для пояснений, необходимых для лучшего понимания программы. Хорошо прокомментированная программа – признак квалификации и добросовестности программиста.

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

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

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

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

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

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

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

Таким образом, общая структура программы на Pascal такова:

Program имя программы; {заголовок}

Uses СписокМодулей; {список модулей}

Label СписокМеток; {список меток}

Const Константа1 = значение; {объявление констант} {раздел описаний}

Константа2 = значение;

...

КонстантаN = значение;

Type ...; {объявление типов}

Var СписокПеременных1 : Тип; {описание переменных}

СписокПеременных2 : Тип;

...

СписокПеременныхN : Тип;

Procedure ...

Function ...

Begin

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

End.

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

program triang;

var a, b, c, s, p: real;

begin

read(a,b,c);

writeln(a,b,c);

p:=(a+b+c)/2;

s:=sqrt(p*(p–a)*(p–b)*(p–c));

writeln('s=',s:8:3)

end.