К задачам их обработки текста (символьной информации) относятся задачи редактирования, поиска некоторых символов или строк в соответствующих текстах, подсчету количества их вхождений и корректировке некоторых мест текста.
Для работы с символьной информацией в Turbo Pascal 7.0 используются данные символьного типа (Char).
Символьный тип представляет собой тип данных, предназначенный для хранения одного символа из 256 символов кода ASCII. Символы в ЭВМ представляются двоичными кодами. Для латинских букв коды упорядочены по возрастанию в соответствии их расположением в алфавите от 'А' до 'Z', от 'a' до 'z'.
Задаются переменные символьного типа следующим образом:
CH_1:= 'А';
CH_2:=#65; {код А}
К величинам символьного типа применимы все операции отношения и 4 функции, позволяющие работать с символами:
Ord (символ) – вычисляет порядковый номер (код) символа;
Chr (код) – определяет символ с заданным кодом;
Pred (символ) – определяет символ, имеющий код, предшествующий данному;
Succ (символ) – определяет символ, имеющий код, следующий за данным.
Пример.
Ord('A') => 65; Pred('C') => 'B'
Сhr (66) => 'B'; Succ('C') => 'D'
Для литер из интервала 'a'..'z' применима функция UpCase(C), которая переводит эти литеры в верхний регистр 'A'..'Z'.
Пример. Вывести на экран монитора коды букв латинского алфавита.
Program Bukva;
Var Sim : Char;
Begin
For Sim:= 'A' To 'Z' Do
Writeln(Ord(Sim),' ',Sim);
End.
Особое место в Turbo Pascal 7.0 занимают массивы символов.
Хранение символьных массивов осуществляется
1. В распакованном виде массивы символов хранятся в памяти по одному символу в машинном слове.
Описание распакованного массива символов имеет вид:
var M: Array[1..20] of char;
2. В упакованном виде хранятся в памяти по одному символу в байте.
При его описании используют служебное слово PACKED, например:
var MAS: Packed Array[1..20] of Char;
Для преобразования символьного массива из распакованной формы в упакованную и наоборот, из упакованной в распакованную, введены две стандартные функции Pack, UnPack.
Упакованный массив символов образует символьную строку.
Символьная строка может быть
1. Строковой константой
Строковая константа, или строка, представляет собой совокупность символов, заключенную в апострофы.
Строковые константы могут входить в состав выражений. Как и числовые константы, они могут быть описаны в разделе описания констант.
2. Строковой переменной.
Строковые переменные – это одномерные упакованные массивы символов, для описания которых введен тип String.
Пример определения переменных строкового типа:
Var
line : String[80];
str : String;
После слова String может указываться максимальная длина строки. Длина строки не может содержать более, чем 255 символов.
Если длина не указана, то считается, что она переменная и определяется числом символов, записанных на место переменной типа String при вводе или присваивании. Это число хранится в нулевом байте соответствующей переменной. Тип String без указания длины совместим со всеми типами строк.
Важно, что в переменной строкового типа доступен каждый отдельный символ. Обращение к нему производится путем указания его номера (индекса). При этом нижняя граница индекса равна 1. Отдельный символ строки совместим с типом Char.
Строки могут быть элементами списка ввода-вывода, при этом записывается имя строки без индекса. Writeln(str);
При вводе строковых переменных количество вводимых символов может быть меньше, чем длина строки. В этом случае вводимые символы размещаются с начала строки, а оставшиеся байты заполняются пробелами. Если количество вводимых символов превышает длину строки, лишние символы отбрасываются.
Для работы со строками в Turbo Pascal 7.0 включены процедуры и функции, которые обеспечивают редактирование и преобразование строк.
Существуют два пути обработки переменных типа String: