Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методические указания для выполнения лабораторных работ / программирование алгоритмов с использованием строк на языке лазарус.doc
Скачиваний:
106
Добавлен:
11.02.2014
Размер:
128 Кб
Скачать

Строковые выражения

Выражения, в которых операндами служат строковые данные, назы­ваются строковыми. Они состоят из строковых переменных, констант, ука­зателей функций и знаков операций.

Над строковыми данными допустимы: операция сцепления (конкатенации) и операции отношения.

Операция сцепления (+) применяется для объединения нескольких строк в одну результирующую строку, например:

St1 := 'а' + 'b'; // St1 содержит "ab"

St2 := St1 + ' с '; // St2 содержит "abc"

Операции отношения (=, <>, >, <, >=, <=) проводят сравнение двух строковых опе­рандов. Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в кодовой таблице. Результат выполнения операций отношения над строковыми операндами имеет булевский тип, например:

Выражение Результат

‘abd’ > ‘abc’ true

‘PROGRAM’ < ‘program’ true

Если строки имеют различную длину, но в общей части символы совпа­дают, считается, что более короткая строка меньше, чем более длинная. Строки считаются равными, если они полностью совпадают по длине и со­держат одни и те же символы, например:

Выражение Результат

‘abcd’ < ‘abcdef’ true

‘Imtell’ = ‘Intell’ true

Стандартные подпрограммы для строк

В таблице 2 приведены основные стандартные процедуры и функции для работы со строками.

Таблица 2

Процедуры и функции для работы со строками

Подпрограммы

Выполняемое действие

Function AnsiCompareStr(const S1, S2: string): Integer;

Сравнивает две строки S1 иS2 в кодировкеANSIс учётом регистра. Возвращает значение меньше 0, если S1 < S2, 0, если S1 = S2, и больше 0, если S1 > S2

Function AnsiCompareText(const S1, S2: string): Integer;

Аналогична предыдущей функции AnsiCompareStr, но сравнение происходит без учёта регистра

Function AnsiLowerCase(const S: String ): String;

Возвращает исходную строку S, в которой все заглавные буквы заменены на строчные в соответствии с национальной кодировкой Windows (т. е. с учетом кириллицы)

Function AnsiUpperCase(const S: String ): String;

Возвращает исходную строку s, в которой все строчные буквы заменены на заглавные в соответствии с национальной кодировкой Windows

Function Concat(Sl [, S2, ..., SN]: String ): String;

Возвращает строку, представляющую собой сцепление строк-параметров S1, S2, ... , SN

Function Copy(St: String; Index, Count: Integer): String;

Копирует из строки St count символов, начиная с символа с номером Index

Procedure Delete(St: String; Index, Count: Integer);

Удаляет count символов из строки St, начиная с символа с номером index

Procedure Insert(SubSt: String; var St: string; Index: Integer);

Вставляет подстроку SubSt в строку St, начиная с символа с номером Index

Function Length(St: String): Integer;

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

Function LowerCase(const S:String): String;

Возвращает исходную строку S, в которой все латинские заглавные буквы заменены на строчные

Function Pos(SubSt, St:String): Integer;

Отыскивает в строке St первое вхождение подстроки SubSt и возвращает номер позиции, с которой она начинается. Если подстрока не найдена, возвращается ноль

Procedure SetLength(St:String; NewLength: Integer);

Устанавливает новую (меньшую) длинуNewLengthстрокиSt., еслиNewLengthбольше текущей длины строки, обращение кSetLengthигнорируется

Function StringOfChar(Ch:Char; Count: Integer):String;

Создает строку, состоящую из Count раз повторенного символа ch

Окончание таблицы 2

Function Uppercase(const S:String): String;

Возвращает исходную строку S, в которой все строчные латинские буквы заменены на заглавные

Function Trim(const S: string): String;

Удаляет из строки Sвсе начальные и завершающие пробелы и управляющие символы

Function TrimLeft(const S: string): String;

Удаляет из строки Sвсе пробелы и управляющие символы слева в строке

Function TrimRight(const S: string): String;

Удаляет из строки S все пробелы и управляющие символы справа в строке

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

Порядковый номер студента по списку группы соответствует номеру варианта. По заданию требуется:

        1. Определить порядок реализации вычислений.

        2. Создать форму с необходимыми компонентами.

        3. Записать программу модуля проекта.

        4. Протестировать работу созданного приложения.

        5. Написать отчет по лабораторной работе.

Пример выполнения работы

Задание. Создать Windows-приложение для подсчета количества слов в произвольной строке. Слова в строке разделяются любым количеством пробелов. Ввод строки заканчивать нажатием клавиши Enter. Работа приложения должна завершаться нажатием кнопки Close.

Один из возможных вариантов панели интерфейса создаваемого приложения показан на рис.1.