Символьный тип данных
Значением данных символьного типа является любой символ из множества набора всех символов компьютера. Каждому символу соответствует порядковый номер (код) в диапазоне 0..255. Для кодировки символов первой половины диапазона (0..127) используется код ASCII(американский стандартный код для обмена информацией). Вторая половина символов с кодами 128..255 может быть различной. Для компьютеров фирмы IBM наиболее распространен альтернативный вариант кодировки символов.
При написании программ символьные данные могут быть представлены либо константами, либо переменными.
Символьная константа
представляет собой одиночный символ, заключенный в апострофы, например:
Символьная переменная
объявляется в разделе описания переменных:
Var
cr: char;
Во внутренней памяти компьютера каждый символ занимает 1 байт.
Ввод-вывод символьных данных
Для ввода символьных данных используется оператор READLN. Необходимо помнить, что нажатие любой небуквенной клавиши (<пробел>, <Enter> и др.) будет значимым и восприниматься как символ.
Пример 1.
Организовать ввод переменных:
a = ‘i’; b = ‘_’; c = ‘j’.
Var
a, b, c: char;
Begin
writeln(‘Введите исходные данные’);
readln(a,b,c);
………….
На клавиатуре символы набираются без апострофов:
i _ j <Enter>
Символ клавиши <Enter> выходит за пределы списка оператора READLN, поэтому он игнорируется.
Для вывода символьных данных используются операторы WRITE и WRITELN.
Пример 2.
Организовать вывод указанных выше переменных на экран.
write(a,b,c);
writeln;
На экране будет отображено:
i _ j
Оператор WRITELN без списка используется для первода курсора к началу следующей строки.
Обработка символьных данных
Поскольку символы в Турбо Паскале упорядочены, к ним можно применять операции отношения (>, >=, <, <=, =, <>). Это дает возможность записывать логические выражения с символьными данными в условных операторах, например:
if ch =’!’ then ch := ‘.’;
Символьные данные могут использоваться и в операторе цикла FOR. Например, при выполнении операторов:
for ch := ‘a’ to ‘d’ write(ch);
writeln;
на экран выводится последовательность:
abcd
Курсор переводится к началу следующей строки.
Библиотека Турбо Паскаля содержит стандартные функции обработки символьных данных. Рассмотрим наиболее распространенные стандартные функции.
ORD(ch) – функция, возвращающая код символа ch.
Пример.
Ord(‘a’) = 97.
CHR(N) – функция, преобразующая код N в соответствующий ему символ.
Пример. Chr(97) = ‘a’.
UPCASE(ch) – функция, преобразующая строчную латинскую букву в прописную.
Пример.
UpCase(‘a’) = ‘A’.