Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЯВУ.doc
Скачиваний:
6
Добавлен:
12.11.2019
Размер:
1.51 Mб
Скачать

Лабораторная работа №8. Работа со строками

ЦЕЛЬ РАБОТЫ: Освоение работы со строками в среде Delphi. Изучить процедуры и функции обработки строк в стиле Pascal

ПОДГОТОВКА К РАБОТЕ: Изучить и описать процедуры и функции для работы со строками. Изучить типы строк в Delphi.

ЗАДАНИЕ 1. Создайте приложение для работы со строками - рисунок 8.1. Приложение предназначено для изучения работы строковых процедур/функций и часто встречающихся алгоритмов операций со строками

1) Последовательность действий по созданию интерфейса пользователя

1. Запустите Delphi.

2. В инспекторе объектов (Object Inspector) у объекта Form1 установите свойство Caption равным «Работа со строками»

3. Перенесите на пустую форму объекты, изображенные на рисунке 8.2.

4. Установите у созданных объектов следующие свойства:

Label1 Свойство Caption – Строка

Label2 Свойство Caption – Подстрока1

Label3 Свойство Caption – Подстрока2

Edit1 – Edit5 Свойство Text – пустая строка

Button1 Свойство Caption – Copy

Button2 Свойство Caption – Concat

Button3 Свойство Caption – Delete

Button4 Свойство Caption – Insert

Button5 Свойство Caption – Поиск и замена

Button6 Свойство Caption – Удаление всех вхождений подстроки

Button7 Свойство Caption – Удалить все пробелы в строке

Button8 Свойство Caption – Заменить все точки на многоточие

2) Последовательность действий по программированию событий

  1. Для события OnClick кнопки Button1 (Copy) напишите следующий программный код:

// Функция копирования подстроки из строки

procedure TForm1.Button1Click(Sender: TObject);

begin

Edit2.Text:= Copy(Edit1.Text,StrToInt(Edit4.Text),StrToInt(Edit5.Text));

end;

Для выполнения функции Copy в данной процедуре используются следующие поля:

  • Edit1 - содержится исходная строка;

  • Edit2 - записывается результат операции

  • Edit4 - первый копируемый символ:

  • Edit5 - количество копируемых символов.

  1. Для события OnClick кнопки Button2 (Concat) напишите следующий программный код:

// Функция объединения строк

procedure TForm1.Button2Click(Sender: TObject);

begin

Edit1.Text:=Concat(Edit2.text,Edit3.Text);

end;

Для выполнения функции Concat в данной процедуре используются следующие поля:

  • Edit1 - записывается результат операции

  • Edit2, Edit3 - содержат объединяемые строки

  1. Для события OnClick кнопки Button3 (Delete) напишите следующий программный код:

// Процедура удаления подстроки из строки

procedure TForm1.Button3Click(Sender: TObject);

Var s:String;

begin

s:=Edit1.Text;

Delete(s,StrToInt(Edit4.Text),StrToInt(Edit5.Text));

Edit1.Text:=s;

end;

Для выполнения процедуры Delete в данной процедуре используются следующие поля:

  • Edit1 - содержится исходная строка и сюда же записывается преобразованная строка;

  • Edit4 - первый удаляемый символ:

  • Edit5 - количество удаляемых символов.

  1. Для события OnClick кнопки Button4 (Insert): напишите следующий программный код:

// Функция вставки подстроки в строку

procedure TForm1.Button4Click(Sender: TObject);

var s,s1:String;

begin

s:=Edit1.Text;

s1:=Edit2.Text;

Insert(s1,s,StrToInt(Edit4.Text));

Edit1.Text:=s;

end;

Для выполнения функции Insert в данной процедуре используются следующие поля:

  • Edit1 - содержится исходная строка и сюда же записывается преобразованная строка;

  • Edit2 - подстрока, вставляемая в строку из Edit1

  • Edit4 - позиция в строке Edit1, начиная с которой вставляется подстрока Edit2.

  1. Для события OnClick кнопки Button5 (Поиск и замена) напишите следующий программный код:

procedure TForm1.Button5Click(Sender: TObject);

var s,s1,s2:String;

k:Integer;

begin

s:=Edit1.Text; s1:=Edit2.Text; s2:=Edit3.Text;

k:=Pos(s1,s);

While k<>0 do

begin

Delete(s,k,Length(s1)); Insert(s2,s,k); k:=Pos(s1,s);

end;

Edit1.Text:=s;

end;

Для выполнения данного алгоритма в процедуре используются следующие поля:

  • Edit1 - содержится исходная строка, в которой ищется подстрока из Edit2. В строку Edit1 также выводится результат поиска и замены;

  • Edit2 - подстрока, которая ищется в строке Edit1

  • Edit3 - подстрока, которая вставляется в строку Edit1 вместо Edit2

  1. Для события OnClick кнопки Button6 (Удаление всех вхождений подстроки) напишите следующий программный код:

procedure TForm1.Button6Click(Sender: TObject);

var s,s1,s2:String;

k:Integer;

begin

s:=Edit1.Text; s1:=Edit2.Text;

k:=Pos(s1,s);

While k<>0 do

begin

Delete(s,k,Length(s1)); k:=Pos(s1,s);

end;

Edit1.Text:=s;

end;

Для выполнения данного алгоритма в процедуре используются следующие поля:

  • Edit1 - содержится исходная строка, в которой ищется подстрока из Edit2. В строку Edit1 также выводится полученный результат;

  • Edit2 - подстрока, которая ищется в строке Edit1 и удаляется при успешном поиске

  1. Для события OnClick кнопки Button7 (Удалить все пробелы в строке) напишите следующий программный код:

procedure TForm1.Button7Click(Sender: TObject);

Var s:String;

i:Integer;

begin

s:=Edit1.Text; i:=1;

While i<=Length(s) do

If s[i]=' ' then Delete(s,i,1) else i:=i+1;

Edit1.Text:=s;

end;

Для выполнения данного алгоритма в процедуре используется поле Edit1, в котором содержится исходная строка и в которое также выводится полученный результат.

  1. Для события OnClick кнопки Button8 (Заменить все точки в строке на многоточие) напишите следующий программный код:

procedure TForm1.Button8Click(Sender: TObject);

Var s:String;

i:Integer;

begin

s:=Edit1.Text; i:=1;

While i<=Length(s) do

If s[i]='.' then

begin

Insert('..',s,i); i:=i+3;

end

else i:=i+1;

Edit1.Text:=s;

End;

Для выполнения данного алгоритма в процедуре используется поле Edit1, в котором содержится исходная строка и в которое также выводится полученный результат.