Планирование уроков на учебный год



Уроки 32 - 33
Работа с символьной информацией
Практикум
Практическая работа № 3.8
"Программирование обработки строк символов"




Содержание урока

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

Строки символов

Работа 3.8. Программирование обработки строк символов






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


Величина типа «символ» может принимать значения любых символов компьютерного алфавита. Символьная величина занимает 1 байт памяти, в котором хранится код этого символа, соответствующий используемой кодовой таблице. Заметим, что в Delphi наряду с однобайтовой кодировкой символов используется и двухбайтовая.

Символьная константа записывается между апострофами. Например: 1R', ' + ', '9', 'j'.

imageСимвольной тип называется Char. Пример описания символьных переменных:

Var c1, с2: Char;

imageСимвольный тип относится к порядковым типам данных. Из этого следует:

• символы — упорядоченное множество;

• у каждого символа в этом множестве есть свой порядковый номер;

• между символами работает соотношение «следующий — предыдущий ».

imageПорядковый номер символа — это его десятичный код, который лежит в диапазоне от 0 до 255. Например, в кодовой таблице ASCII десятичный код латинской буквы 'А' равен 65, а цифры '5' — 53. О стандартах кодирования символов рассказывалось на уроках 13 - 16 "Представление текста, изображения и звука в компьютере".

Функция Ord(x)


Ord(x) — функция от аргумента порядкового типа, которая возвращает порядковый номер значения х в этом типе данных. Если х — символьная величина, то результатом функции будет десятичный код х в кодовой таблице. Например:

Ord('А')= 65, Ord('5')= 53

Функция Chr (х)


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

Chr(65)='A', Chr(53)='5'

Поскольку коды символов лежат в диапазоне от 0 до 255, желательно тип х определять либо как byte, либо как интервальный тип 0..255.

imageПример 1. Составить программу на Паскале, по которой на экран будет выводиться таблица кодировки в диапазоне кодов от 32 до 255. Напомним, что символы с кодами, меньшими 32, являются управляющими (не экранными).

image

Значения выводятся парами: символ — код. В одной строке располагается 10 таких пар. Вся таблица разместится в 24 строках на экране.

Принцип последовательного кодирования алфавитов


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

При выполнении операций отношений, применительно к символьным величинам, учитываются коды этих величин. Чем больше значение кода, тем символ считается больше. Истинными являются следующие отношения: 'А' с 'В', 'Z' > 'Y', 'а' > 'А'. Значение символьной переменной С является прописной (заглавной) латинской буквой, если истинно логическое выражение:

(С >= 'А') and (C <= 'Z')

Значение символьной переменной С является цифрой, если истинно логическое выражение:

(С >= ’0') and (С <= '9')

В латинском алфавите 26 букв. Поэтому разница между кодами букв 'Z' и 'А', а также 'z' и 'а' равна 25.

imageПример 2. С помощью датчика случайных чисел заполнить массив Sim[0. .10] строчными английскими буквами. Затем массив отсортировать в алфавитном порядке.

image

При тестировании программы было получено:

Исходный массив: 
gnkbeqgmsin
Отсортированный массив: 
beggikmnnqs

image

Вопросы и задания


1. Как в программе на Паскале обозначаются символьные константы и переменные?

2. С помощью какой стандартной функции определяется код символа?

3. С помощью какой стандартной функции можно определить символ по его коду?

4. Что такое принцип последовательного кодирования алфавитов? Приведите примеры алгоритмов, где он может быть использован.

5. Определите результаты вычисления выражений (типы и значения):

image

6. Выполните на компьютере программы из примеров 1 и 2 данного параграфа. Протестируйте их работу.

Следующая страница Строки символов









Наверх