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

Глава 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