Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник_Часть_1.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
974.85 Кб
Скачать

Var m1, m2: metall;

op1, op2, op3: operators;

В рассмотренном примере переменные с именами M1, M2 могут принимать только значения Fe, Na, Cu или Co, переменные Op1, Op2, Op3 – только значения Plus, Minus, Divide и т. д. Других значений этим переменным присваивать нельзя. Указываемые в круглых скобках имена являются константами, порядковый номер первой из них равен нулю, следующей – единице и т. д. В перечисляемом типе частные значения упорядочены, это означает, к примеру, что для рассмотренных выше значений Fe < Na, Minus < Divide, A < E и т. д. При этом старшинство связано с местом слова при перечислении. Не допускается применять операцию сравнения к операндам разного типа, например, сравнивать Minus и Fe и т. п.

К перечисляемым типам можно применять операции отношения (оба операнда должны иметь один тип), а также использовать их в качестве аргументов стандартных функций Succ(X), Pred(X), Ord(X).

Рассмотренный ранее тип Boolean может быть определен как перечисляемый следующим образом:

Type Boolean = (False, True);

Определение предполагает, что для имен констант False и True выполняется отношение False < True.

2.6. Ограниченный (диапазонный) тип данных

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

TYPE <имя типа>=<нижняя граница>..<верхняя граница>;

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

П р и м е р ы:

TYPE MONTH=(JAN,FEB,MAR,APR,MAY,JUN,JUL,

AUG,SEP,OCT,NOV,DEC); {перечисляемый тип}

LETO=JUN..AUG; {диапазон месяцев}

INDEX=(0..90); {диапазон для INTEGER}

SIMVOL=’A’..’G’; {диапазон для CHAR}

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

TYPE BUKVA = ’A’.. ’Z’;

Var y:bukva;

то можно выполнить присваивание:

Y:= ’D’;

3. Операции и выражения

2.1. Целочисленный тип

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

П р и м е р ы:

  1. А+С-10/12 – выражение, в котором А, С, 10, 12 – операнды; +, -, / - знаки операций сложения и деления.

  2. В*10.12*Sin(X) – выражение, в котором в качестве операндов выступают переменная, константа, обращение к функции.

  3. 18 – выражение, состоящее из одной целочисленной константы.

  4. STEM – выражение, представляющее собой имя переменной или константы.

3.2. Арифметические выражения и операции

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

Операции возведения в степень в Паскале нет. Для выполнения этой операции можно использовать стандартные функции Exp(x) и Ln(a), воспользовавшись соотношением

, тогда a = Exp(n*Ln(a)).

Таблица 3.1

Арифметические операции

Знак операции

Операция

*

Умножение

/

Деление

Div

Целочисленное деление

Mod

Остаток от деления

-

Минус

+

Сложение

-

Вычитание

При написании арифметических выражений необходимо помнить следующее:

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

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

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

П р и м е р ы:

  1. С+-D – неверная запись.

  2. С+(-D) – верная запись.

  3. Р*2/С. Здесь Р умножается на 2, результат делится на С.

  4. (А-С)*(2+М) – вначале выполняются действия в скобках, и только потом умножение.

  5. D/(А-А) – неверная запись, ноль в знаменателе.