Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ЯП (Кузьмин) ч.2_new (Паскаль).docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆

6.4 Порядковые типы

6.4.1 Понятие порядкового типа

Порядковый тип описывает конечное и упорядоченное множество значений, для каждого элемента которого однозначно определяется предыдущий и следующий за ним элементы. В частности, последовательность целых чисел является порядковым типом данных. Например, для элемента 5 существует единственное следующее значение (6) и единственное предыдущее значение (4). Символы алфавита также представляют собой порядковый тип данных. Например, в латинском алфавите для символа "M" следующим является символ "N", а предыдущим - символ "L".В то же время вещественные числа нельзя отнести к порядковому типу. Например, для числа 15.8 существует бесконечное множество следующих и предыдущих значений (15.81, 15.801, 15.8001 и т.д.).

Упорядоченное множество значений переменной порядкового типа однозначно отображается на последовательность порядковых номеров 0,1,2, .... Исключение сделано только для целых чисел, которые отображаются сами на себя.

Каждый порядковый тип имеет минимальное (функция low) и максимальное значение (функция high). Для всех значений, кроме минимального, существует предшествующее значение; для всех значений, кроме максимального, существует последующее значение.

К любому порядковому типу применимы следующие три стандартные в Паскале функции: ORD(X), PRED(X), SUCC(X):

- ORD(X) в точку вызова функция возвращает порядковый (ординальный) номер значения Х среди множества значений данного порядкового типа. Всегда возвращает значение целого типа.

- PRED(X) (predecessed - предшествующий) возвращает в точку вызова значение, предшествующее в данном порядковом типе значению Х. Возвращает значение того же типа, что и тип аргумента.

- SUCC(X) (succeed - следующий) возвращает в точку вызова значение, следующее в данном порядковом типе за значением Х. Возвращает значение того же типа, что и тип аргумента.

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

6.4.2 Булевский (логический) тип

Логическое значение - это одно из двух значений истинности, которые обозначаются предопределенными именами false и true. Переменные этого типа занимают 1 байт, однако в Турбо Паскале версии 7.0 определены 3 логических типа: Bytebool (1 байт), Wordbool (2 байта), Longbool (4 байта) Значению “истина” в памяти при хранении значения соответствует 1, значению “ложь” – 0 (т.е. 0 и 1 – это внутреннее представление значений истина и ложь). При этом false < true.

Операции отношения всегда дают логический результат. Например, отношение

x + 1 < y

при x = 0, y = 0 дает false; при x = 0, y = 10 - значение true.

Var b: boolean; - обозначение булевского типа.

Три стандартные функции для порядковых типов применимы и к этому типу:

Ord (true) = 1, Ord (false) = 0

Pred (true) = false

Succ (false) = true

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

  • not

X not X

false true

true false

  • and, or, xor

X

Y

X and Y

X or Y

X xor Y

false

False

false

False

false

false

True

false

True

true

true

True

true

True

false

true

False

false

True

true

Эти операции похоже на те, которые используются применительно к целым типам. Существуют отличия (особенности):

  1. логические операции применимы только к логическим типам

  2. логическими операциями возвращается результат логического типа.

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

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

FALSE < TRUE

истина

FALSE = TRUE

ложь