- •Введение
- •Лабораторная работа №1. Создание простого приложения
- •1 ) Последовательность действий по созданию интерфейса пользователя
- •2) Последовательность действий по программированию щелчка по командным кнопкам (программирование событий):
- •3) Компиляция и выполнение приложения
- •1) Последовательность действий по созданию интерфейса пользователя
- •2) Последовательность действий по программированию событий
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №2. Циклические программы. Многострочное поле memo
- •1) Последовательность действий по созданию интерфейса пользователя
- •2) Последовательность действий по программированию щелчка по командным кнопкам (программирование событий)
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №3. Работа с одномерными массивами
- •1) Последовательность действий по созданию интерфейса пользователя
- •2) Последовательность действий по программированию событий
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа № 4. Работа с двумерными массивами
- •Контрольные вопросы
- •Лабораторная работа № 5. Процедуры и функции в delphi
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа № 6. Рекурсивные процедуры и функции
- •Контрольные вопросы
- •Лабораторная работа №7. Разработка приложения с несколькими модулями
- •2) Последовательность действий по программированию событий
- •Лабораторная работа №8. Работа со строками
- •1) Последовательность действий по созданию интерфейса пользователя
- •2) Последовательность действий по программированию событий
- •3) Откомпилируйте приложение и проверьте его работу задания для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №9. Создание текстового редактора
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа № 10. Методы простой сортировки
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа № 11. Поиск данных в массиве
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №12. Работа с файлами
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №13. Работа с типизированными файлами (файлы записей)
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа № 14. Динамические структуры данных . Стек и очередь
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа № 15. Практическое применение стека и очереди
- •Лабораторная работа №16. Линейные списки
- •Лабораторная работа №17. Работа с бинарными деревьями поиска
- •Задание для самостоятельной работы
- •Лабораторная работа №18. Основы объектно-ориентированного программирования
- •Задание для самостоятельной работы
- •Лабораторная работа №19. Графика в delphi. Компоненты shape и chart
- •Контрольные вопросы
- •Лабораторная работа №20. Графика в delphi. Рисование по пикселам и пером
- •Контрольные вопросы
- •Лабораторная работа № 21. Вычисление суммы ряда
- •Литература
- •Содержание
- •214013 Г. Смоленск, Энергетический проезд, 1
Лабораторная работа №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) Последовательность действий по программированию событий
Для события 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 - количество копируемых символов.
Для события OnClick кнопки Button2 (Concat) напишите следующий программный код:
// Функция объединения строк
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Text:=Concat(Edit2.text,Edit3.Text);
end;
Для выполнения функции Concat в данной процедуре используются следующие поля:
Edit1 - записывается результат операции
Edit2, Edit3 - содержат объединяемые строки
Для события 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 - количество удаляемых символов.
Для события 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.
Для события 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
Для события 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 и удаляется при успешном поиске
Для события 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, в котором содержится исходная строка и в которое также выводится полученный результат.
Для события 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, в котором содержится исходная строка и в которое также выводится полученный результат.