Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Новая методичка.rtf
Скачиваний:
6
Добавлен:
22.07.2019
Размер:
7.64 Mб
Скачать

Лабораторная работа №6

Обработка последовательности символов (строк)

Цель работы:

  • изучить структуру данных строка;

  • получить навыки применения стандартных функций языка Pascal.

Теоретическое введение

Язык Object Pascal поддерживает три физических строковых формата: короткий (ShortString), длинный (LongString) и широкий (WideString). Переменные типов AnsiString и WideString - это динамически распределяемые массивы символов, максимальная длина которых ограничивается только наличием памяти. Разница между ними состоит в том, что в AnsiString знаки записываются в формате char, а в WideString в формате WideChar. Обычно вполне достаточно одного типа AnsiString, однако при работе с международными наборами символов, такими как UNICODE, удобнее использовать WideString. Тип ShortString можно определить как символьный массив. Первый его элемент задает динамическую длину строки, которая может принимать значения от 0 до 255 символов. Символы, составляющие строку, занимают места от 1 до 255. Тип ShortString предназначен для обеспечения совместимости с ранними версиями языка Pascal. Логический строковый тип именуется просто String. По умолчанию относится к типу AnsiString или ShortString, (задается командой {$Н+}), и String совпадает с AnsiString. Если задать команду {$Н- }, то String будет совпадать с ShortString и иметь максимальную длину, равную 255 символам. Для совместимости с другими языками программирования в Delphi поддерживаются строки с конечным нулем. Зарезервированных слов или идентификаторов для этого класса не существует. В таблице 1 перечислены процедуры и функции обработки данных строковых типов.

Таблица 1. Строковые функции

Функция

Описание

Concat(sl, s2, s3)

Возвращает последовательное соединение строк. Эквивалентна оператору sl+s2+s3

Copy(s, pos, len)

Возвращает подстроку длиной максимум len символов, начинающуюся в позиции pos строки s

Delete(s, pos, len)

Удаляет максимум len символов из строки s, начиная с позиции pos

Insert(sourse, tar-get, pos)

Вставляет строку source в строковую переменную target, начиная с позиции pos

Length (s)

Возвращает динамическую длину строки

Pos(substring, s)

Возвращает место первого вхождения подстроки substring в строку s

SetLength(s, newlen)

Задает новую динамическую длину newlen строковой переменной s

SetString

Задает содержимое и длину строки

Str(x, s)

Преобразует численное значение х в строковую переменную s

StringOfChars

Возвращает строку с конкретным числом символов

Val (s, v, code)

Преобразует строку s в соответствующее численное представление v

Пример 6.1. Определение заданных последовательностей символов в строке

Даны: целое число N, символы S1,S2,…,SN. Определить число входящих в последовательность заданных комбинаций букв.

Вид компонентов на форме:

Процедура обработки щелчка на кнопке "Выполнить"

procedure TForm1.Button1Click(Sender: TObject);