Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прогр.на_ЯВУ_уч.пос.DOC
Скачиваний:
23
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

§3.3. Логический тип

Логический тип основан на правилах Булевой алгебры, широко используемой в цифровой электронике. Этот тип определяет всего два значения True (истина) и False (ложь), которые и являются константами. Описывается этот тип словом Boolean, определенным как

Type Boolean = (False,True);

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

NOT – «НЕ», логическое отрицание или инверсия, в отличие от остальных выполняется над одним операндом (унарная операция);

OR – «ИЛИ», логическое сложение или дизъюнкция;

AND – «И», логическое умножение или конъюнкция;

XOR – «исключающее ИЛИ», сложение по модулю 2 (в стандартном Паскале отсутствует).

Пусть А и В – логические значения, тогда результат операций будет определяться по следующей таблице:

А

В

not A

A or B

A and B

A xor B

True

True

False

True

True

False

True

False

False

True

False

True

False

True

True

True

False

True

False

False

True

False

False

False

В Паскале, как и в цифровой электронике, True кодируется единицей, а False – нулем (0 – низкое напряжение, 1 – высокое; при использовании обратной логики – наоборот). Поэтому логические операции разрешены не только над логическими значениями, но и над целыми, представляемыми в двоичной системе счисления. Например, если А=21 (101012), а В=9 (10012), и они описаны как байты, то:

not A = 111010102 = 23410

A or B = 000111012 = 2910

A and B = 00000001

Обычно их используют над беззнаковыми целыми типа Byte или Word.

Шесть операций отношения или сравнения:

> < =    ,

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

True > False  True,

True < False  False.

Возможны даже такие записи:

Var i:boolean;

...

For i:=False to True do

<оператор>;

Здесь оператор выполнится два раза, сначала со значением i = False , затем i = True.

§3.4. Литерный тип

В качестве данных в Паскале могут выступать отдельные символы или литеры. Этот тип данных описывается словом Char и занимает 1 байт. Значениями здесь являются 256 символов кодировочной таблицы ASCII (American Standard Code for Information Interchange – Стандартный американский код обмена информацией), используемой в ОС DOS.

При записи констант, если символьное значение имеет графическое представление, то оно изображается символьным знаком, заключенным в апострофы, например:

'*' 'A' '!'

Если символ нельзя отобразить в тексте программы (служебные и неотображаемые символы), то можно воспользоваться эквивалентной формой записи

#<целочисленный код символа>.

Например:

#$7F – Delete, стереть последний символ. Символом DEL, состоящим в двоичном коде из всех единиц, можно было забить любой символ. Устройства и программы игнорировали DEL так же, как NUL. Код этого символа происходит из первых текстовых процессоров с памятью на перфоленте: в них удаление символа происходило забиванием его кода дырочками (обозначавшими логические единицы).

#7 – Bell, звонок, звуковой сигнал. Имеет отношение не к монитору, а ко встроенному динамику.

Если используются специальные символы, называемые управляющими кодами (то есть с использованием префиксной клавиши Ctrl), то можно использовать запись, например вида ^C (символ с кодом 3: ext – конец текста). Все коды с номерами 0-31 являются управляющими, и их можно представить в таком виде. Например, BEL можно записать как ^G.

Над значениями литерного типа можно выполнять только операции отношения.