Использование строковых массивов при создании приложений в среде Delphi
Ознакомление с историей создания и особенностями объектно-ориентированного языка программирования Delphi. Разработка приложения, фиксирующего количество повторений какого-либо слова в тексте, введённом в поле MEMO. Описание интерфейса программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 21.04.2015 |
Размер файла | 880,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
Тема данной курсовой работы: "Использование строковых массивов при создании приложений в среде Delphi".
Цель работы: разработка приложения, выполняющего поиск запрашиваемого слова по тексту, введённому в Memo-поле, в котором задан строковый массив, и вывод в окне сообщений количества повторений слова в тексте.
Предметом исследования является среда программирования Delphi.
Объект исследования: приложение, создаваемое в среде программирования Delphi.
Delphi -- это средства разработки в программировании, которые имеют место быть в рамках приложений Microsoft Windows. Delphi представляет собой актуальную и легкую в использовании программу, которая необходима для генерации автономных программ графического интерфейса или 32-битовых консольных приложений -- программ, которые существуют вне рамок GUI, вместо этого, в соответствии с так называемым "DOS box".
Я выбрал среду Delphi потому что она очень удобна в использовании, широко распространена, а также в ней имеется множество различных шаблонов, что значительно упрощает работу. Встроенный в графическую оболочку мощный компилятор позволяет создавать exe-файлы быстрого запуска, которые можно без труда запустить в операционных системах семейства Windows. Delphi является первым языком программирования, который обеспечивает уничтожение барьера между приложениями комплексного и упрощенного характера в использовании и низкоуровневыми битовыми программными средствами. Язык программирования Delphi, в наше время широко распространен. Является одним из самых популярных языков в мире. Ничем не уступает таким языкам программирования как PHP, C++.
1. Теоретическая часть
Delphi -- результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль начиная с версии 5.5 добавил в Паскаль объектно-ориентированные свойства, а Delphi -- объектно-ориентированный язык программирования с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию. Также отличительным свойством Дельфи от С++ является то, что объекты по-умолчанию располагаются в динамической памяти. Однако можно переопределить виртуальные методы NewInstance и FreeInstance класса TObject. Таким образом, абсолютно любой класс может осуществить "желание" "где хочу -- там и буду лежать". Соответственно организуется и "многокучность".
После вызова Delphi появляется окно (см. рис. 1):
Рис. 1
Верхнею часть окна занимает меню и панель инструментов. В левой части окна находятся Object TreeView и Object Inspector. В центре находится форма разрабатываемого приложения и форма для внесения кода.
Object TreeView - служит для отображения всех объектов расположенных на текущей форме разрабатываемого проекта.
Object Inspector - служит для отображения и редактирование свойств компонентов расположенных на форме разрабатываемого приложения.
Теперь введем понятия "проект".
Проект - это совокупность файлов, которые используются средой разработки для итоговой генерации программы. Когда мы будем создавать с вами первый проект, то познакомимся со всеми составляющими проекта и его структурой.
Теперь рассмотрим состав главного меню. Оно позволяет вызывать все инструменты, необходимые для работы с проектом. Рассмотрим назначение раздела меню и связанные с ними функции:
Рис. 2
Рис. 3
Рис. 4
File (рис. 2) - содержит набор команд для работы с файлами, позволяет создавать новые проекты, добавлять новые файлы в проект на основе различных шаблонов, переименовывать файлы проекта, а также распечатывать их. Сюда же включена команда закрытия среды разработки;
Edit (рис. 3) - здесь, в соответствии с названием, расположены команды, предназначенные для редактирования текста, удаления и перемещения его в буфер обмена, вставки текста из буфера и отмены операций редактировании. Стоит отметить, что все эти команды работают не только с текстом, но и с компонентами в конструкторе форм - элементами управления, из которых "собирается" интерфейс приложения. Кроме того, здесь же сосредоточены команды управления положением компонентов на поверхности формы, а также фиксации компонентов - функции, позволяющей заблокировать компоненты, что бы в последствии его случайно не изменить;
Search (рис. 4) - содержит набор команд для работы с текстом, его поиска и замены, причем и то и другое может производится как в одном файле, так и во всех файлах проекта, либо в любом каталоге и его подкаталогах;
Рис. 5
Рис. 6
Рис. 7
View (рис. 5) - под этим названием объединены команды вызова инструмента управления проектом, такие как инспектор объектов, конструктор форм, менеджер проектов и т.д.;
Project (рис. 6) - предназначен для того чтобы добавлять и удалять модули проекта, сохранять проект в репозитории, добавлять проекты в группу и убирать их из неё, компилировать как отдельные проекты, так и все проекты в группе, загружать файл самого проекта в редактор кода, а также вызывать диалог настройки свойств проекта;
Run (рис. 7) - позволяет запускать проект на выполнение как под отладчиком, так и без него, конфигурировать строку параметров проекта при запуске, производить отладку, задать точки останова, осуществлять пошаговое выполнение кода, просматривать значения переменных и изменять их;
Рис. 8
Рис. 9
Рис. 10
Рис. 11
Рис. 12
Component (рис. 8) - здесь сосредоточены команды, предназначенные для установки новых компонентов и пакетов компонентов и создания новых компонентов и шаблонов компонентов;
Database (рис. 9) - здесь сосредоточены команды управления базами дынных;
Tools (рис. 10) - позволяет настраивать свойства рабочей среды Delphi и отладчика, произвести настройки репозитория, добавлять и удалять дополнительные утилиты, а так же команды запуска этих самых утилит;
Window (рис. 11) - позволяет переключаться между окнами, если вы отроете какой-либо модуль для редактирования в новом окне;
Help (рис. 12) - объединяет команды вызова справочной системы Delphi и её настройки, а так же позволяет обратиться к Web-ресурсам компании Borland для получения дополнительной информации.
2. Обработка массивов в среде Delphi
Массив -- это составной тип данных, состоящий из фиксированного числа элементов одного и того же типа. Для описания массива предназначено словосочетание array of. После слова array в квадратных скобках записываются границы массива, а после слова of -- тип элементов массива, например:
Type
TStates = array[1..50] of string;
TCoordinates = array[1..3] of Integer;
2.1 Типы массивов
Различают следующие виды массивов:
1) Статические массивы.
Они определены установленными, неизменяемыми размерами. Они могут быть одномерными или многомерными - последний является массивом массивов (массивов и т.д). Размер и диапазон такого многомерного массива всегда даются для самого высокого, крайнего левого массива - родительского массива. Размер каждого измерения определен двумя способами, которые могут быть свободно смешаны в многомерном массиве:
Index type, где Index целое число, обычно Byte или Word. Диапазон этого типа определяет диапазон измерения. Например, Byte дает дипазон 0..255.
Ordinal..Ordinal Альтернативно, диапазон каждого измерения может быть задан предписанными порядковыми значениями, типа 22..44.
2) Динамические массивы
Динамические массивы не имеют никакой предраспределенной памяти. Определяется только когда создан указатель. Размеры таких массивов должны быть установлены прежде, чем они будут использоваться. Например: SetLength(dynArray, 5) устанавливает размер одномерного массива dynArray в 5 элементов. При этом будет распределена память.
Все динамические массивы начинаются с индекса = 0.
Индивидуальные подмассивы многомерного динамического массива могут иметь различные измерения - они, конечно являются отдельными массивами. После одной такой операции SetLength, на элементы набора массива уже можно ссылаться, даже при том, что остальная часть массива неопределенна.
3) Открытые массивы
И статические и динамические массивы можно передать подпрограммам как параметры. Если определение параметра массива не имеет никакого диапазона (то есть, динамический тип массива), то вы должны, как это ни парадоксально передавать статический массив как параметр. Такой массив упоминается как Открытый массив. Delphi передает длину как скрытый параметр для подпрограммы.
Открытый массив также может быть определен типом значения константы. Это называют Различным (Variant) открытым массивом - это, главным образом, используется для разрешения передачи подпрограмме переменного числа значений аргументов.
Для передачи Динамического массива ссылкой, массив и подпрограммное определение массива должны быть через определение типов массива.
2.2 Объявление массива
Массив, как и любая переменная программы, перед использованием должен быть объявлен в разделе объявления переменных. В общем виде инструкция объявления массива выглядит следующим образом:
Имя: array [нижний_индекс. .верхний_индекс] of тип,
где:
имя -- имя массива;
array -- зарезервированное слово языка Delphi, обозначающее, что объявляемое имя является именем массива;
нижний_индекс и верхний_и"декс -- целые константы, определяющие диапазон изменения индекса элементов массива и, неявно, количество элементов (размер) массива;
тип -- тип элементов массива.
Примеры объявления массивов:
temper:array[1..31] of real;
коef:array[0. .2] of integer;
name:array[1..30] of string [25];
При объявлении массива удобно использовать именованные константы. Именованная константа объявляется в разделе объявления констант, который обычно располагают перед разделом объявления переменных. Начинается раздел объявления констант словом const. В инструкции объявления именованной константы указывают имя константы и ее значение, которое отделяется от имени символом "равно". Например, чтобы объявить именованную константу нв, значение которой равно 10, в раздел const надо записать инструкцию: нв=ю. После объявления именованной константы ее можно использовать в программе как обычную числовую или символьную константу. Ниже в качестве примера приведено объявление массива названий команд-участниц чемпионата по футболу, в котором используются именованные константы.
Const
NT = 18; // число команд
SN = 25; // предельная длина названия команды var
team: array[1..NT] of string[SN];
Для того чтобы в программе использовать элемент массива, надо указать имя массива и номер элемента (индекс), заключив индекс в квадратные скобки. В качестве индекса можно использовать константу или выражение целого типа, например:
team [1] := 'Зенит';
d := koef[l]*koef[l]-4*koef[2]*koef[1];
ShowMessage(name[n+1]);
temper[i] := StrToFloat(Edit1.text);
Если массив не является локальным, т.е. объявлен не в процедуре обработки события, а в разделе переменных модуля, то одновременно с объявлением массива можно выполнить его инициализацию, т.е. присвоить начальные значения элементам массива.
Инструкция объявления массива с одновременной его инициализацией в общем виде выглядит так:
Имя: array [нижний_индекс..верхний_индекс] of тип = (список);
где список -- разделенные запятыми значения элементов массива. Например:
a: array[10] of integer = (0,0,0,0,0,0,0,0,0,0);
Team: array[1..5] of String[10]= ('Зенит','Динамо','Спартак','Ротор','СКА');
Обратите внимание, что количество элементов списка инициализации должно соответствовать размерности массива. Если это будет не так, то компилятор выведет сообщения об ошибке: Number of elements differs from declaration (количество элементов не соответствует указанному в объявлении). При попытке инициализировать локальный массив компилятор выводит сообщение об ошибке: Cannot initialize local variables (локальная переменная не может быть инициализирована). Локальный массив можно инициализировать только во время работы программы, например, так:
for i := 1 to 10 do a[i]:= 0;
2.3 Вывод массивов
Под выводом массива понимается вывод на экран монитора (в диалоговое окно) значений элементов массива. Если в программе необходимо вывести значения всех элементов массива, то для этого удобно использовать инструкцию for, при этом переменная-счетчик инструкции for может быть использована в качестве индекса элемента массива. В качестве примера на рис. 5.1 приведено диалоговое окно приложения, которое демонстрирует инициализацию и процесс вывода значений элементов массива в поле метки. Программа выводит пронумерованный список футбольных команд. Следует обратить внимание, что для того чтобы список команд выглядел действительно как список, свойству Label1.AutoSize нужно присвоить значение False .(см. рис. 13):
Рис. 13. Вывод массива
Код вывода массива следующий:
unit outar_;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;
Type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure ButtonlClick(Sender: TObject);
private
{ Private declarations } public
{ Public declarations } end;
var
Form1: TForm1;
Implementation ($R *.dfm}
const
NT = 5;
var
team: array[1..NT] of string[10] = ('Зенит','Динамо','Ротор','Спартак','СКА'
procedure TForml.ButtonlClick(Sender: TObject);
var
st:string; // список команд
i:integer; // индекс, номер элемента массива
begin
// формирование списка для отображения в форме
for i:=l to NT do st := st + IntToStr(i)+ ' '
+ team[i] + #13; // вывод списка Label1.Caption := st;
end; end.
3. Разработка формы приложения
3.1 Описание компонентов приложения и их свойства
В своем приложении я использовал следующие компоненты:
Memo, Label "Запрашиваемое слово", Edit, Button "Число повторений" и "КонецЪ" (рис. 14).
Рис. 14
3.2 Описание работы приложения
Введём произвольный текст в Memo-поле, как показано на рисунке 15:
Рис. 15
В текстовое поле необходимо ввести нужное нам слово (рис. 16)
Рис. 16
После нажатия на кнопку "Число повторений" программа выдаёт в окне сообщения "Результат" информацию о количестве повторений запрашиваемого слова в введённом тексте (рис. 17).
Рис. 17
Нажатием на кнопку "ОК", окно сообщения закрывается и выходим из программы, нажав на кнопку "КонецЪ".
3.3 Описание процедур обработки событий приложения
В разработанном приложении используются две процедуры: SearchText и Quit.
Процедура SearchText осуществляет поиск и фиксирует количество повторений запрашиваемого слова в введённом тексте, а затем выводит результат окне сообщений.
Процедура Quit выполняет выход из приложения.
4. Расчетная часть проекта
Создание приложения посредством языка DELPHI
Unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, XPMan, StdCtrls, StrUtils;
type
TMain = class(TForm)
Memo: TMemo;
SearchWord: TEdit;
EditLabel: TLabel;
Search: TButton;
Exit: TButton;
procedure Quit( Sender: TObject );
procedure SearchText( Sender: TObject );
private
{ Private declarations }
public
{ Public declarations }
end;
var
Main: TMain;
implementation
{$R *.dfm}
procedure TMain.Quit( Sender: TObject );
begin
Main.Close();
end;
procedure TMain.SearchText( Sender: TObject );
var i : integer;
count : integer;
offset : integer;
begin
count := 0;
for i := 0 to Memo.Lines.Count - 1 do
begin
offset := 0;
while PosEx( SearchWord.Text, Memo.Lines[i], offset ) > 0 do
begin
offset := PosEx( SearchWord.Text, Memo.Lines[i], offset ) + 1;
Inc( count );
end;
end;
ShowMessage( 'Найдено повторений: ' + IntToStr( count ) );
end;
end.
Заключение
программирование delphi приложение интерфейс
В результате выполнения курсового проекта было разработано приложение, фиксирующее количество повторений какого-либо слова в тексте, введённом в поле MEMO.
Delphi представляет собой систему программирования. Как любая подобная система, Delphi предназначена для разработки программ и имеет две характерные особенности: создаваемые с её помощью программы могут работать не только под управлением Windows, а сама она относиться к классу инструментальных средств ускоренной разработки программ(RAD). Программирование в Delphi строиться на тесном взаимодействии двух процессов: процесса конструирования интерфейса, или визуального проявления, программы и процесса написания кода, придающего элементам этого окна и программе в целом необходимую функциональность.
Так же в Delphi входят объекты, которые образуют удачно подобранную иерархию из 270 базовых классов. На Delphi можно одинаково хорошо писать как приложения к корпоративным базам данных, так и, к примеру, игровые программы. Во многом это объясняется тем, что традиционно в среде Windows было достаточно сложно реализовывать пользовательский интерфейс. Событийная модель в Windows всегда была сложна для понимания и отладки. Но именно разработка интерфейса в Delphi является самой простой задачей для программиста.
Размещено на Allbest.ru
Подобные документы
Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.
курсовая работа [1,2 M], добавлен 04.08.2014Особенности создания программы "Файловый менеджер" в среде объектно-ориентированного программирования Delphi. Назначение и основные функции программы, формулировка задачи. Описание программы, использованные компоненты, интерфейс и порядок применения.
контрольная работа [1,3 M], добавлен 19.06.2012Рассмотрение теории и технологии работы со средой программирования Delphi. Описание Описание интерфейса программы, структуры данных, генерации точек. Разработка задания по выявлению всех квадратов, которые могут быть образованы точками на плоскости.
реферат [21,0 K], добавлен 13.01.2015Разработка программы по оформлению заказов на билеты Оренбургского государственного областного драматического театра им. Горького. Использование объектно-ориентированного программирования и реализация проекта в среде визуального программирования Delphi 7.
курсовая работа [6,3 M], добавлен 12.11.2014Предмет объектно-ориентированного программирования и особенности его применения в средах Паскаль, Ада, С++ и Delphi. Интегрированная среда разработки Delphi: общее описание и назначение основных команд меню. Процедуры и функции программы Delphi.
курсовая работа [40,8 K], добавлен 15.07.2009Общая характеристика интерфейса языка программирования Delphi. Рассмотрение окна редактора кода, конструктора формы, инспектора объектов и расширения файлов. Ознакомление с основными этапами создания и сохранения простого приложения; проверка его работы.
презентация [184,3 K], добавлен 18.03.2014Рассмотрение теоретических аспектов создания баз данных с применением системы объектно-ориентированного программирования Delphi. Ознакомление с компонентами доступа. Разработка базы данных "Библиотека". Описание основ интерфейса созданной программы.
курсовая работа [1004,9 K], добавлен 26.10.2014Теоретические основы объектно-ориентированного языка программирования Delphi, изучение среды визуального проектирования приложений. Определение 40-го числа Фибоначчи, составление листинга и блок-схемы программы, тестирование ее на работоспособность.
курсовая работа [261,1 K], добавлен 25.03.2015Анализ исходных данных. Определение структуры модуля для работы файлом. Разработка объектно-ориентированного приложения, использующего массив объектов, в среде Delphi. Модульная структура программного комплекса. Процедура сортировки методом вставки.
курсовая работа [2,2 M], добавлен 20.09.2014История развития, характеристика, предназначение и особенности языка программирования Delphi. Разработка проекта создания кроссворда на объектно-ориентированном языке Delphi, который состоит из 19 вопросов по горизонтали и 16 вопросов по вертикали.
курсовая работа [970,5 K], добавлен 15.05.2014