Операции
Лабораторная работа №10
Разработка алгоритмов и программ обработки строк. Использование множеств для решения задач
Цель работы:
· изучить основные операции при работе со строками, функции для работы со строками;
· научиться составлять блок-схемы и решать задачи обработки строк.
Общетеоретическая часть:
Описание строк
В разделе var строки описываются следующим образом:
var <имя_строки>: string[[<длина>]]
Максимальная длина строки - 255 символов. Нумеруются ее компоненты начиная с 0, но этот нулевой байт хранит длину строки.
Если <длина> не указана, то считается, что в строке 255 символов. Поэтому для экономии памяти следует по возможности точно указывать длину используемых строк.
Примеры описаний:
var s1: string[10]; (*строка длиной 10 символов*) s2: string; (*строка длиной 255 символов*)Необходимо отметить, что один символ и строка длиной в один символ
var c: char; s: string[1];совершенно не эквивалентны друг другу. Вне зависимости от своей реальной длины, строка относится к конструируемым структурированным типам данных, а не к базовым порядковым.
Символ-константа и строка-константа
Неименованные константы
В тексте программы на языке Pascal последовательность любых символов, заключенная в апострофы, воспринимается как символ или строка. Например:
c:='z'; {c: char} s:='abc'; {s: string}Константе автоматически присваивается "минимальный" тип данных, достаточный для ее представления: char или string[k]. Поэтому попытка написать
c:='zzz'; {c: char}вызовет ошибку уже на этапе компиляции.
Кроме того, не забывайте, что если константа длиннее той переменной-строки, куда ваша программа пытается ее записать, то в момент присваивания произойдет усечение ее до нужной длины.
Пустая строка задается двумя последовательными апострофами:
st:= '';Если же необходимо сделать так, чтобы среди символов строки содержался и сам апостроф, его нужно удвоить:
s:='Don''t worry about the apostrophe!';Если теперь вывести на экран эту строку, то получится следующее:
Don't worry about the apostrophe!Нетипизированные константы
Все правила задания символов и строк как неименованных констант остаются в силе и при задании именованных нетипизированных констант в специальном разделе const. Например:
const c3 = ''''; {это один символ - апостроф!} s3 = 'This is a string';Типизированные константы
Типизированная константа, которая будет иметь тип char или string, задается в разделе const следующим образом:
const c4: char = '”'; {это один символ - апостроф!} s4: string[20] = 'This is a string';Действия с символами
Операции
Результатом унарной операции
#<положительная_неименованная_константа_целого_типа>является символ, номер которого в таблице ASCII соответствует заданному числу. Например,
#100 = 'd' #39 = '''' {апостроф} #232 = 'ш' #1000 = 'ш' {потому что (1000 mod 256)= 232}Кроме того, к символьным переменным, как и к значениям всех порядковых типов данных, применимы операции сравнения <, <>, >, =, результат которых также опирается на номера символов из таблицы ASCII.