Здавалка
Главная | Обратная связь

Обработка символьной информации



 

Цель работы – приобретение навыков программирования при решении задач с использованием символьной информации и применения встроенных процедур и функций для обработки строк.

5.1 Строки и особенности их обработки

Для представления текстовой (символьной) информации предназначен специальный тип данных - строковый тип. Строка - это последовательность символов кодовой таблицы ПЭВМ. Длина строки (количество символов в строке) может динамически изменяться от 0 до 255. В компьютере каждый символ строки занимает 1 байт. Кроме того, для хранения информации о длине строки дополнительно отводится 1 байт.

Строка-константа служит для использования в программе некоторой, заранее известной последовательности литер. Формат объявления строки-константы имеет вид:

Const имя константы = 'последовательность символов';

Например, Const name = 'Эльза'; probel = ' ';

Если значение строки заранее не известно, а определяется в процессе выполнения программы (например, строка символов вводится), тогда используется строковая переменная. Для объявления переменных строкового типа используется стандартный идентификатор String, за которым следует заключенное в квадратные скобки значение длины строки. Если это значение не указывается, то по умолчанию длина строки равна 255 байт. Формат объявления строки-переменной имеет вид:

Var имя переменной: string [длина строки];

Например, Var slovo:string[10]; stroka:string;

Таким образом, строковый тип задается регулярным типом (как в случае с массивами), поэтому все свойства массивов переносятся и на строки (длина строки задается статически; доступ к отдельному символу строки осуществляется по его индексу). К особенностям строк следует отнести следующее:

- строковые константы могут быть присвоены в качестве значений строковым переменным в том случае, если их длины равны;

- значения строковых переменных можно сравнивать, используя операции отношения (<, >, <=, >=, =, < >), сравнение значений строковых переменных производится путем последовательного сравнения литер до первого несовпадающего символа, и та строка считается большей, где этот символ имеет больший код;

- ввод значений строковых переменных производится с помощью стандарт­ной процедуры Read (Readln);

- для задания строке значения в программе используется оператор присваивания, например sl :='Информатика';

В Паскале для выполнения наиболее часто применяемых действий со стро­ками предназначен набор встроенных функций и процедур (таблица A1).

 

5.2 Пример алгоритма и программы обработки символьной информации

Составить программу, проверяющую, является ли введенный текст палиндромом (палиндром - текст который читается слева направо и справа налево одинаково). При составлении программы следует обратить внимание на то, что коды прописных букв русского алфавита в таблице ASCII следующие - Ord(A)=128,…,Ord(Я)=159, а строчные русские буквы расположены в таблице кодов не подряд - Ord(а)=160,…, Ord(п)=175, Ord(р) = 224,…, Ord(я)=239.

На рисунке 5.1 представлена блок-схема алгоритма решения задачи, ниже приведена соответствующая ей программа.

Рисунок 5.1 – Пример обработки символьной информации

 

program p_5; var st, a, b: string; i, n, k: integer; begin writeln ('Ведите текст на русском языке'); readln (st); a:=''; b:=''; n:=length(st); for i:=1 to n do if st[i]<>' ' then begin {Замена ПРОПИСНОЙ русской буквы на строчную} if (st[i]>='А') and (st[i]<='П') then st[i]:= chr(ord(st[i])+32) else if (st[i]>='Р')and(st[i]<='Я') then st[i]:=chr(ord(st[i])+80); a:=a+st[i]; b:=st[i]+b end; write (st,' - '); if a=b then writeln ('палиндром') else writeln ('не палиндром') end.

5.3 Варианты заданий

1 Дана строка символов, состоящая из нескольких предложений. Найти самое длинное предложение.

2 Дана строка символов, состоящая из нескольких предложений. Определить количество предложений.

3 Дана строка символов. Посчитать количество пробелов в строке и заменить их на запятые.

4 Дана строка символов. Определить количество слов в строке.

5 Дана последовательность слов. Вывести на экран дисплея только слова, содержащие не более пяти символов.

6 Дана строка символов. Определить количество букв "О" в данной строке.

7 Дана строка символов. Заменить в этой строке все буквы "А" на "Я".

8 Дана строка символов. Определить количество слов состоящих из четырех букв.

9 Дана строка символов. Заменить пробелы на знак "+".

10 Дана строка символов. Определить какой из знаков препинания (тире, запятая, точка, двоеточие) встречается в строке чаще.

11 Дана строка символов. Сколько раз в ней встречается слог "МИ".

12 Определить самое длинное слово в строке.

13 Дана строка символов. Вывести на экран слова, которые заканчиваются на букву "А".

14 Дана строка символов. Определить количество слов, начинающихся на букву "С".

15 Дана строка символов. Заменить все запятые на знаки "-".

16 Определить количество запятых в строке.

17 Определить количество букв "Л" в строке.

18 Определить количество слов заканчивающихся на букву "Ь".

19 Определить количество слов, содержащих не менее двух букв "А".

20 Дана строка символов. Заменить все буквы "И" на знак "+".

21 Определить количество цифр в строке символов.

22 Дана строка символов. Определить количество слов, у которых первый и последний символ совпадают между собой.

23 Дана строка символов. Найти самое длинное слово, начинающееся на букву "а" и вывести его в обратном порядке.

24 Поменять первое слово в строке с последним словом.

25 Дана строка символов. Сколько раз в ней встречается слог "ЛЯ".

26 В заданном тексте осуществить замену одного слова на другое.

27 Напишите программу обращения слов в строке (если был "кот", то результатом будет "ток").

28 Дана строка символов. Замените все буквы "р" на сочетание "ку".

29 Напишите программу, которая удаляет начальные пробелы из введенной с клавиатуры строки.

30 Дана строка символов, состоящая из нескольких предложений. Найти самое короткое предложение.

 

5.4 Контрольные вопросы

1 Для какой цели используется строковый тип данных?

2 Что называется строкой символов? Какова максимальная длина строки?

3 Чем отличаются строковые константы и строковые переменные?

4 Как объявляются строковые переменные?

5 Назовите основные особенности строк.

6 Какие основные встроенные процедуры и функции предусмотрены для работы со строками?

 

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.