Работа с символами и строками.
До сих пор мы рассматривали программы, в которых производилась обработка только числовых данных (программы из раздела «Первая программа на Паскале» не являются исключением, так как в них мы имели дело с текстовыми данными, но при этом производился их вывод, а не обработка). Но современный компьютер, как известно, представляет собой устройство, способное не работать не только с числовой информацией, но и с другими ее видами(текстовой, графической, аудио и видеоинформацией). В языке Паскаль также предусмотрена возможность обработки текстовых данных. Для работы с ними используются типы char и string.
Название типа char представляет собой сокращение от английского слова character, означающего в переводе «символ». Значением переменной типа char может быть один из символов, содержащихся в расширенной таблице ASCII. ASCII – это аббревиатура от American Standart Code for Information Interchange, что в переводе означает «американский стандартный код для обмена информацией». Это – используемая во всем мире таблица для кодирования вводимой в компьютер текстовой информации. Данная таблица содержит буквы латинского алфавита (прописные и строчные), цифры, символы арифметических операций и знаки препинания, а также различные специальные символы. Всего эта таблица содержит 128 символов.
К основной таблице ASCII существует дополнение, также содержащее 128 символов. Эта вторая половина таблицы зарезервирована для символов национальных алфавитов и, соответственно, для разных стран выглядит по разному. В России во второй половине содержатся, естественно прописные и строчные буквы кириллицы (русского алфавита). Следовательно, всего расширенная таблица, состоящая из международной и национальной части, содержит 256 символов. Каждый символу в таблице соответствует свой числовой код. Например, латинская буква J имеет код 74, русская буква Ж –
166, цифра 9 – 57, знак √ (радикал) – 251 и так далее.
Символьные данные могут использоваться как в константах, так и в переменных. Если в Вашей программе задействована символьная переменная, не забудьте при описании используемых в програме переменных описать ее соответствующим образом. Например так:
var i,n: integer;
d: real; sim: char;
то есть в данной программе используются две переменных целого типа (i и n), одна – вещественного типа(d), и одна – символьного типа (sim). Если переменной символьного типа присваивается какое-либо значение, то оно должно быть заключено в апострофы. Например:
sim:=’ш’
означает что переменной sim было присвоено значение «ш».
В языке Паскаль для работы с символьными переменными используются специальные функции chr и ord.
Функция chr по известному числовому коду символа определяет сам этот символ. Например, значение chr(33) будет равно ‘!’, chr(233) – ‘щ’ и т. д.
Составим программу, которая будет выводить соответствующую группу символов для заданного диапазона числовых кодов (см. рис. 21).
Чтобы вывести результат работы программы в одной строчке, используем оператор write вместо writeln. Для числовых кодов от 176 до 215 результаты работы программы будут следующими:
В итоге работы программы мы получили строку символов псевдографики, которые используются в операционной системе MS DOS для создания рамок, таблиц, несложных рисунков и тому подобных объектов.
Действие функции ord противоположно функции chr. Она определяет код символа, являющегося аргументом данной функции. Например, для символа ‘ж’ она выдает код 166, для символа ‘ф’ - 228 и т.д.
Естественно, что для эффективной работы с текстом необходимо уметь обрабатывать не только отдельные символы, но и слова, фразы, строки, то есть группы символов. Для обработки таких групп символов в Паскале используется строковый тип данных. Для описания символьных переменных используется служебное слово string. Описание символьной переменной в общем виде выглядит следующим образом:
имя_переменной: string[длина]
после слова string указывается длина описываемой переменной, то есть максимальное количество символов, которое может содержать данная
![]() |
Рис.21. Программа, выводящая символы кодовой таблицы ASCII и результаты ее работы.
переменная. Например, если в разделе описания переменных в программе мы видим:
var i:integer; x:real
stroka:string[25];
то это означает, что в данной программе наряду с переменными целого типа i и вещественного типа x используется и переменная строкового типа stroka, которая может содержать до 25 символов. Значения символьных переменных так же, как и уже знакомые нам символьные константы ( к текстовым константам относятся, в частности, сообщения, выводимые оператором writeln) должны обязательно заключаться в апострофы. Таким образом, оператор присваивания строковой переменной stroka значения ‘набор_символов’ будет выглядеть следующим образом:
stroka:= ‘набор_символов’;
Для работы со строковыми переменными в языке Паскаль используются различные функции, среди которых отметим функцию length. Аргументом данной функции является имя какой-либо символьной переменной, а значением фактическое количество символов, которое содержится в данной переменной ( эта величина может быть меньше максимальной длины, заданной при описании переменной). Так значение функции length, аргументом которой является переменная stroka после выполнения вышеуказанного оператора присваивания, будет равно 14, а не 25, указанному в разделе описаний.
Если есть необходимость работать не со всей переменной целиком, а с каким-либо отдельным содержащимся в ней символом, то к этому символу можно обратиться в программе непосредственно, указав имя содержащей его строковой переменной и его порядковый номер в этой переменной, заключенный в квадратные скобки. Например, если мы напишем в программе stroka[5], то работать мы будем с буквой «р», которая является пятым по счету символом в данной переменной.
При обращении к элементу строковой переменной в скобках после ее имени может указываться не только числовая константа, но и имя переменной целого типа. В этом случае номер «вызываемого» символа будет равен значению данной целочисленной переменной. Например, если мы присвоим целочисленной переменной i значение 10, а затем укажем в программе stroka[i], то в результате будет «вызвана» буква ‘в’, которая является в строковой переменной десятой по счету.
В качестве примера использования строковых переменных рассмотрим программу, которая для введенной с клавиатуры строки символов выводит на экран компьютера последовательность соответствующих им числовых кодов таблицы ASCII (см. рис. 22).
В данной программе сразу после ввода строки определяется ее длина, величина которой присваивается переменной dl. Затем цикл с заданным числом повторений dl раз выводит один за другим числовые коды всех входящих в строку символов.
Если в ответ на приглашение программы введем фразу «Мой компьютер», то получим следующий результат, изображенный на рис. 22.
На экран были выведены числовые коды всех 13 символов, входящих в данную фразу, включая и пробел, который является четвертым по порядку символом и имеет код 32.
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.