
Лабораторная работа №12
Тема: Обработка текста.
Цель: Освоить программирование алгоритмов обработки строковых и символьных данных.
Оборудование: ПК
Ход работы.
Изучить теоретический материал.
Ответить на вопросы допуска.
Выполнить практическое задание.
Ответить на контрольные вопросы.
Составить отчет.
Теоретическая часть
Строки символов – это некая разновидность массивов
Описание массива символов имеет вид: var M: Array[1..20] of char;
Строка символов является последовательностью, что содержит ноль и более символов из расширенного набора символов кода ASCII, записанную в одной строке программы и заключенную в одиночные кавычки. Строка символов, которая ничего не содержит между апострофами, называется нулевой строкой. Два последовательных апострофа в строке символов помечают один символ - апостроф. Длиной строки символов является количество символов между апострофами.
Паскаль позволяет вставлять в строку символов управляющие символы. Символ # с целой константой без знака в диапазоне от 0 до 255 помечает соответствующий этому значению символ в коде ASCII. Между символом # и целой константой не должно быть никаких разделителей.
Например: 'TURBO', ‘#13#10’
Символьным константам можно присваивать имена. – Const st=’рядок’;
Символьные переменные описываются в разделе описания переменных с описателем String.
Var st1,st2:string[10]; st3:string;
begin
st1:= ’строка’;
end.
По умолчанию для строк определенная максимальная длинная, равная 255 символам, но ее можно изменить, указав при описании: string[число символов]. Если строка длиннее максимальной длины, то символы, которые не поместились, отбрасываются.
К любому символу в строке можно обратится точно так же, как к элементу одномерного массива, то есть указав имя строки и индекс символа в этой строке. При этом нижняя граница индекса равна 1.
Текущее значение длины строковой переменной можно получить с помощью стандартной функции Length – Length(s).
Строки выводятся и вводятся с помощью операторов read, readln, write, writeln. Над строками выполняется операция конкатенации, которая позволяет соединить две или более строк в одну без разделителей.
Пример:
st1:=’Сту’;st2:=’де’;
st3:=st1+st2+’нт’;
Результат: st3=’студент’;
Над строками выполняются операции сравнения: = < > <= >= <>.
Строки сравниваются посимвольно слева направо до получения результата или до исчерпания символов строки.
Пример:
’паскаль’=’паскаль’, поскольку все символы поэлементно совпадают.
Пример: ’программа’<’программист’. Результат сравнения (true), поскольку 'а'<'и' и второе слово длинее
Функции обработки строк.
Наименование |
Назначение |
concat(строка1,строка2….) |
Сцепление строк(конкатенация) |
copy(подстрока,число1,число2) |
Из указанной строки выделяется подстрока, начиная с позиции, заданной числом1, длиной, заданной числом2. |
Pos(строка1, строка2) |
Отыскивает первое вхождение строки1 в строку2 и возвращает номер начальной позиции вхождения или ноль, если строка1 не входит в строку2. |
length(строка) |
Возвращает длину строки – аргумента. |
Примеры:
1. Начальные данные: a=’код’, b=’ил’. s:=concat(‘кро’,a,b). Результат: s=’крокодил’. |
2. Начальные данные: s=’крокодил’. Оператор: b:=copy(s,2,3). Результат: b=’рок’. |
3. Начальные данные: s=’крокодил’. Оператор: i:=pos(‘око’,s). Результат: i=3. |
Оператор: i:=pos(‘я’,’крокодил’). Результат: i=0. |