Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гладков_Кулютникова.doc
Скачиваний:
8
Добавлен:
03.11.2018
Размер:
1.36 Mб
Скачать

Символьный тип данных

Один байт изображает 1 символ в виде последовательности нулей и единиц, что позволяет закодировать 28 = 256 различных символов. Каждому символу ставится в соответствие натуральное число, которое называется его кодом, коды тоже упорядочены. Их знать необязательно, достаточно знать, что они упорядочены следующим образом: ‘0’, ‘1’, ... , ‘9’; ‘A’, ‘B’, ... , ‘Z’.

Кодировка символов задается в кодовой таблице. Наиболее распространена кодовая таблица ASCII.

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

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

Пример.

Const

ch = ‘A’;

letter = ‘x’;

ch1 = ‘’’’; {символу апостроф присвоено имя ch1}

Переменные описываются в разделе описания переменных с описателем char.

Пример.

Var

ch1, ch2: char;

Для данных символьного типа разрешены операции сравнения: <, >, <=, >=, =, <>. Сравниваются символы лексикографически по коду, т.е. чем символ раньше встречается в кодовой таблице, тем он меньше.

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

Функция

Тип

обозначение

назначение

аргумента

результата

ord (ch)

порядковый номер символа в кодовой таблице

char

integer

chr (i)

символ из кодовой таблицы с порядковым номером (кодом) i

integer

char

pred (ch)

предыдущий символ

char

char

succ (ch)

последующий символ

char

char

Функции ord (ch) и chr (i) являются обратными, т.е. ord (chr (i)) = i, chr (ord (ch)) = ch.

Пример. Число = ord (‘цифра’) - ord (‘0’).

2 = ord (‘2’) - ord (‘0’).

Упражнения.

1. Значениями символьных переменных сh0, сh1, сh2 являются цифры. Присвойте целой переменной k число, полученное из этих цифр.

2. Присвойте символьным переменным сh2, сh1 и сh0 соответственно левую, среднюю и правую цифры трехзначного целого числа k.

3. Всегда ли справедливо утверждение:

  • если ch - символ и ‘0’  ch  ‘9’, то ch - цифра;

  • ‘0’ = 0;

  • ord (‘5’) = 5;

  • ‘x’ = ‘X’;

  • если a и b - символы, то a < b, тогда и только тогда, когда ord (a) < ord (b);

  • ord (chr (k)) = k для любого целого k;

  • chr (ord (ch)) = ch для любого символа ch.

  1. Вычислите значения выражений:

  • pred (‘2’) = ‘1’;

  • succ (‘2’) = ‘4’;

  • ord (‘9’) - ord (‘1’) = ‘9’;

  • ord (‘u’) < ord (‘q’);

  • succ (‘5’) = pred (‘7’);

  • ord (pred (chr (20))) = 21;

  • chr (ord (‘A’) + 1) = ‘B’

  • succ (chr (256)) =257;

  • chr(110) <= chr(120).

Логический тип данных

Логические данные широко используются при сравнении величин. Результат сравнения может быть истинным или ложным. В Паскале имеются две логические константы true (истина) и false (ложь). Их можно использовать в явном виде или обозначать именем в разделе описания констант.

Пример.

сonst

OK = true;

f = false;

f1 = OK;

Логические переменные описываются в разделе описания переменных с описателем boolean.

Пример.

var f1, f2, t: boolean;

Логический (или булевский) тип данных является порядковым. Порядок расположения двух его значений следующий: false, true. Причем у константы false порядковый номер 0, а у константы true - 1.

Для логических данных разрешены логические операции not (отрицание), and (конъюнкция), or (дизъюнкция). Правила их выполнения были подробно рассмотрены в разделе “Элементы математической логики”, а также сведены в следующую таблицу

A

B

not A

A and B

A or B

true

true

false

true

true

true

false

false

false

true

false

true

true

false

true

false

false

true

false

false

Логические данные можно сравнивать: false < true. Кроме того, результат сравнения арифметических и символьных данных является логическим.

Для логических данных разрешены следующие функции:

Функция

Тип

обозначение

назначение

аргумента

результата

ord (f)

порядковый номер

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

boolean

integer

pred(f)

предыдущее значение, определено только для true, т.е. pred(true) = false

boolean

boolean

succ(f)

последующее значение, определено только для false, т.е. succ(false) = true

boolean

boolean

odd(x)

принимает значение true, если x – нечетное и false, если x - четное

integer

boolean

Упражнения.

1. Вычислите значения выражений

а). false > true; б). succ(true); в). ord(succ(false)) = 0;

г). not (pred(odd(5)) or (ord(false) = 1)); д). ord(false) + ord(true).

2. Объясните ошибки в следующих записях:

а). 1 and 0; б). ord(false) or ord(true); в). true + false; г). false > 0;

д). not 10 = 5; е). succ(true); ж). not (1/0 > 0); з). odd(1) - odd(true).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]