Работа с символами и строками

  • docx
  • 27.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-002938.docx

Работа с символами и строками.

 

 

 

 

До сих пор мы рассматривали программы, в которых производилась обработка только числовых данных (программы из раздела «Первая программа на Паскале» не являются исключением, так как в них мы имели дело с текстовыми данными, но при этом производился их вывод, а не обработка). Но современный компьютер, как известно, представляет собой устройство, способное не работать не только с числовой информацией, но и с другими ее видами(текстовой, графической, аудио и видеоинформацией). В языке Паскаль также предусмотрена возможность обработки текстовых данных. Для работы с ними используются типы 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