Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методическое пособие для самостоятельных работ.doc
Скачиваний:
21
Добавлен:
16.11.2019
Размер:
2.89 Mб
Скачать

Глава 5. Реализация алгоритмов решаемых задач на Delphi

5.1. Традиционный подход реализации алгоритмов на Delphi

До сих пор рассматривались генерируемые Delphi процедуры. При решении больших задач возникает необходимость написания процедур и функций, реализующих алгоритмы разработчика. Напомним, что использование в программах процедур и функций целесообразно в двух случаях:

  • Имеются алгоритмы, которые необходимо выполнять многократно, но с разными исходными данными.

  • Объем программы большой и процедуры и функции используются как средство структурирования программы: каждая процедура (функция) решает какую-то подзадачу, но все они вместе обеспечивают решение всей задачи. Рекомендация: объем одной процедуры (функции) не более двух-трех экранов или одной страницы текста.

Допустим, что состав необходимых для решения задачи процедур (функций) определен. Возможно, что они использовались уже при решении задачи в среде Borland Pascal и возникла необходимость разработать новую реализацию в Delphi. Как их включить в Delphi и использовать? В Delphi реализован алгоритмический язык Object Pascal, он отличается несущественно от традиционного. Поэтому процедуры (функции), написанные для Borland Pascal, могут быть использованы и здесь. Надо иметь в виду, что в них не должно быть традиционных для операционной системы MS DOS операторов ввода/вывода. Ввод/вывод необходимо обеспечить средствами Delphi (через различные диалоговые окна).

Необходимые процедуры (функции) должны быть оформлены в виде модулей (Unit). Структура модулей в Delphi расширена по сравнению с Borland Pascal, но мы не будем на этом останавливаться. В Delphi каждой форме соответствует свой модуль. Но модуль может существовать и без формы. Для создания нового модуля необходимо выбрать из меню Delphi: File – New – Unit. В ответ откроется пустой модуль, куда по традиционным правилам можно записать все необходимое.

unit Unit3;

interface

{Место для заголовков процедур и функций}

implementation

{Место для реализаций процедур и функций}

end.

Если модули в виде файлов с расширением *.pas уже имеются, то используется другой способ их подключения: выбрать из меню Delphi: View – Project Manager. Появится знакомое нам окно. В нем выбирайте Add: откроется диалоговое окно, в котором выбирается подключаемый модуль. Допускается подключение модулей как в исходном (расширение *.pas), так и в оттранслированном виде (расширение *.tpu).

Вызов процедур и функций из модуля выполняется как обычно, не забудьте только включить в нужном месте оператор Uses < имя модуля >;

5.2. Объектно-ориентированный подход

При объектно-ориентированном подходе в интерфейсном разделе модуля задаются описания классов, в разделе реализации – тексты методов. Однако средства объектно-ориентированного программирования (ООП) получили в Delphi дальнейшее развитие по сравнению c Borland Pascal 7.0, и поэтому мы остановимся на них подробнее. В Delphi имеется два подхода к ООП:

  • «классический», заимствованный из Borland Pascal 7.0;

  • подход Delphi.

При классическом подходе для описания объектов используется ключевое слово Object. Создание и использование переменных типа объект ничем не отличается от аналогичных действий в Borland Pascal 7.0.

В Delphi разработан новый подход, похожий на применяемый в языке С++. Введены понятия “класс” и “объект”. Объект – это конкретный предмет в окружающем нас мире. Например, прямоугольный треугольник ABC с катетами 4 и 5. Класс – это совокупность объектов с одинаковыми свойствами (задаются переменными) и одинаковым поведением (поведение задается методами). Например, класс “прямоугольные треугольники”. Необходимо отметить, что и в теоретических работах по ООП используется, как правило, такая терминология. Важно запомнить разное содержание понятия “объект” в этих двух подходах, что показано в табл. 5.1.

Таблица 5.1

 

Borland Pascal

Delphi

Object

Class

Экземпляр объекта, переменная типа объект

Объект

Кроме этой, терминологической, разницы имеется и существенная разница в реализации, в зависимости от того, объявлен ли Class или Object. Рассмотрим это на примерах.

Пример 1. Классический подход.

Пусть наше приложение состоит из одной формы и двух модулей: первый модуль соответствует форме, а второй содержит объявление объекта. Форма приведена на рис. 5.1.

Рис. 5.1. Окно приложения

Реализация модуля формы. Требуется дополнительное объявление

Var

MyObj :Calc6;

procedure TForm1.Button1Click(Sender: TObject);

Var

k,l :byte;

sig :integer;

begin