Целью курсовой работы является изучение языка объектно-ориентированного программирования Borland Delphi и разработка практических заданий. При выполнении курсовой работы предстоит:
- изучить теорию и технологию работы со средой программирования Delphi;
- изучить и проанализировать соответствующую литературу;
- провести сравнительный анализ языков программирования этого класса, выявить достоинства и недостатки;
- привести элементы методической работы в виде разработки вариантов заданий (из прикладных областей) для учащихся старших классов школ изучающих Delphi на уроках информатики.
Объектно-ориентированные языки программирования пользуются в последнее время большой популярностью среди программистов, так как они позволяют использовать преимущества объектно-ориентированного подхода не только на этапах проектирования и конструирования программных систем, но и на этапах их реализации, тестирования и сопровождения.
Первый объектно-ориентированный язык программирования Simula 67 был разработан в конце 60-х годов в Норвегии. Авторы этого языка очень точно угадали перспективы развития программирования: их язык намного опередил свое время. Однако современники (программисты 60-х годов) оказались не готовы воспринять ценности языка Simula 67, и он не выдержал конкуренции с другими языками программирования (прежде всего, с языком Fortran).
Прохладному отношению к языку Simula 67 способствовало и то обстоятельство, что он был реализован как интерпретируемый (а не компилируемый) язык, что было совершенно неприемлемым в 60-е годы, так как интерпретация связана со снижением эффективности (скорости выполнения) программ.
Но достоинства языка Simula 67 были замечены некоторыми программистами, и в 70-е годы было разработано большое число экспериментальных объектно-ориентированных языков программирования: например, языки CLU, Alphard, Concurrent Pascal и др. Эти языки так и остались экспериментальными, но в результате их исследования были разработаны современные объектно-ориентированные языки программирования: C++, Smalltalk, Delphi и др.
Появление Delphi не могло пройти незамеченным среди многочисленных пользователей компьютера. Оценки экспертов, изучающих возможности этого нового продукта фирмы Borland, обычно окрашены в восторженные тона. Основное достоинство Delphi состоит в том, что здесь реализованы идеи визуального программирования. Среда визуального программирования превращает процесс создания программы в приятное и легко понимаемое конструирование приложения из большого набора графических и структурных примитивов.
Работа с Базами данных в Delphi
... можно бесплатно протестироваться в качестве программиста Delphi 3 и получить по почте сертификат. Мощность и гибкость Delphi при работе с базами данных основана на низкоуровневом ядре - процессоре баз данных Borland Database Engine ...
Delphi – чрезвычайно быстро развивающаяся система. Первая версия – Delphi 1. 0 была выпущена в феврале 1995 г. А затем новые версии выпускались ежегодно.
Каждая последующая версия Delphi дополняла предыдущую.
Большинство версий Delphi выпускается в нескольких вариантах: Standart – стандартном, Professional профессиональном, Client/Server – клиент/сервер, Enterprise – разработка баз данных предметных областей. Различаются варианты в основном разным уровнем доступа к системам управления базами данных. Последние варианты — Client/Server и Enterprise, в этом отношении наиболее мощные.
1. ОБЩАЯ СТРУКТУРА ЯЗЫКА ПРОГРАММИРОВАНИЯ DELPHI
Delphi — результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5. 5, добавил в Паскаль объектно-ориентированные свойства, а Delphi объектно-ориентированный язык программирования с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией [5, С. 22].
Язык Pascal предназначен для описания вычислительного процесса решения задачи, в состав которой могут входить величины.
Схема 1 – Используемые величины
Константы — данные, значения которых не изменяются в программе.
Переменные — данные, могущие изменяться при выполнении программы.
идентификаторами
Выражения — константы, переменные и обращения к функциям, соединенные знаками операций. Операторы — специальные символы и слова, выполняющие действия.
Функции, процедуры и модули — отдельные программные блоки, имеющие имена и подключаемые к основной программе [2, С. 8].
Классы и объекты Delphi. Для реализации интерфейса Delphi использует библиотеку классов, которая содержит большое количество разнообразных классов, поддерживающих форму и различные компоненты формы (командные кнопки, поля редактирования и т. д. ).
Во время проектирования формы приложения Delphi автоматически добавляет в текст программы необходимые объекты. Если сразу после запуска Delphi просмотреть содержимое окна редактора кода, то там можно обнаружить следующие строки:
type TForm1 = class (TForm) private { Private declarations } public { Public declarations } end; var Form1: Tform1 |
Это описание класса исходной, пустой формы приложения и объявление объекта — формы приложения.
Когда программист, добавляя необходимые компоненты, создает форму, Delphi формирует описание класса формы. Когда программист создает функцию обработки события формы или ее компонента, Delphi добавляет объявление метода в описание класса формы приложения.
Помимо классов визуальных компонентов в библиотеку классов входят и классы так называемых невизуальных (невидимых) компонентов, которые обеспечивают создание соответствующих объектов и доступ к их методам и свойствам. Типичным примером невизуального компонента является таймер (тип TTimer) и компоненты доступа и управления базами данных.
1.1 Структура среды программирования
Внешний вид среды программирования Delphi отличается от многих других из тех, что можно увидеть в Windows. К примеру, Borland Pascal for Windows 7. 0, Borland C++ 4. 0, Word for Windows, Program Manager — это все MDI приложения и выглядят по-другому, чем Delphi. MDI (Multiple Document Interface) — определяет особый способ управления нескольких дочерних окон внутри одного большого окна.
Среда Delphi же следует другой спецификации, называемой Single Document Interface (SDI), и состоит из нескольких отдельно расположенных окон. Это было сделано из-за того, что SDI близок к той модели приложений, что используется в Windows 95.
Если Вы используете SDI приложение типа Delphi, то уже знаете, что перед началом работы лучше минимизировать другие приложения, чтобы их окна не загромождали рабочее пространство. Если нужно переключиться на другое приложение, то просто щелкните мышкой на системную кнопку минимизации Delphi. Вместе с главным окном свернутся все остальные окна среды программирования, освободив место для работы других программ.
1.1.1 Главные составные части среды программирования
Ниже перечислены основные составные части Delphi:
1. Дизайнер Форм (Form Designer)
2. Окно Редактора Исходного Текста (Editor Window)
3. Палитра Компонент (Component Palette)
4. Инспектор Объектов (Object Inspector)
5. Обозреватель дерева объектов (Object TreeView)
Есть, конечно, и другие важные составляющие Delphi, вроде линейки инструментов, системного меню и многие другие, нужные Вам для точной настройки программы и среды программирования.
Программисты на Delphi проводят большинство времени переключаясь между Дизайнером Форм и Окном Редактора Исходного Текста (которое для краткости называют Редактор).
Прежде чем Вы начнете, убедитесь, что можете распознать эти два важных элемента. Дизайнер Форм показан на рис. 1, окно Редактора — на рис. 2.
Рисунок 1 – Дизайнер форм
Рисунок 2 – Окно редактора
Дизайнер Форм в Delphi столь интуитивно понятен и прост в использовании, что создание визуального интерфейса превращается в детскую игру. Дизайнер Форм первоначально состоит из одного пустого окна, которое Вы заполняете всевозможными объектами, выбранными на Палитре Компонент [1, С. 10].
Несмотря на всю важность Дизайнера Форм, местом, где программисты проводят основное время является Редактор. Логика является движущей силой программы и Редактор — то место, где Вы ее «кодируете».
Палитра Компонент (см. рис. 3) позволяет Вам выбрать нужные объекты для размещения их на Дизайнере Форм. Для использования Палитры Компонент просто первый раз щелкните мышкой на один из объектов и потом второй раз — на Дизайнере Форм. Выбранный Вами объект появится на проектируемом окне и им можно манипулировать с помощью мыши.
Палитра Компонент использует постраничную группировку объектов. Внизу Палитры находится набор закладок — Standard, Additional, Win32 и т. д. Если Вы щелкнете мышью на одну из закладок, то Вы можете перейти на следующую страницу Палитры Компонент. Принцип разбиения на страницы широко используется в среде программирования Delphi и его легко можно использовать в своей программе. (На странице Additional есть компоненты для организации страниц с закладками сверху и снизу).
Рисунок 3 – Палитра Компонентов
Предположим, Вы помещаете компонент TEdit на форму; Вы можете двигать его с места на место. Вы также можете использовать границу, прорисованную вокруг объекта для изменения его размеров. Большинством других компонент можно манипулировать тем же образом. Однако, невидимые во время выполнения программы компоненты (типа TMenu или TDataBase) не меняют своей формы [1, С. 20].
Слева от Дизайнера Форм Вы можете видеть Инспектор Объектов (рис. 4).
Заметьте, что информация в Инспекторе Объектов меняется в зависимости от объекта, выбранного на форме. Важно понять, что каждый компонент является настоящим объектом и Вы можете менять его вид и поведение с помощью Инспектора Объектов.
Инспектор Объектов состоит из двух страниц, каждую из которых можно использовать для определения поведения данного компонента. Первая страница — это список свойств, вторая — список событий. Если нужно изменить что-нибудь, связанное с определенным компонентом, то Вы обычно делаете это в Инспекторе Объектов. К примеру, Вы можете изменить имя и размер компонента TLabel изменяя свойства Caption, Left, Top, Height, и Width.
Вы можете использовать закладки внизу Инспектора Объектов для переключения между страницами свойств и событий [1, С. 21].
Рисунок 4 – Инспектор Объектов
с Редактором; если Вы дважды щелкнете мышкой на правую сторону какого-нибудь пункта, то соответствующий данному событию код автоматически запишется в Редактор, сам Редактор немедленно получит фокус, и Вы сразу же имеете возможность добавить код обработчика данного события.
Обозреватель дерева объектов (см. рис. 3).
Эта панель появилась в Delphi 7, и, на мой взгляд, она является лучшим новшеством этой версии. С помощью дерева компонентов легко находить компоненты, потому что они расположены в виде дерева. Если у вас какой-то компонент будет полностью перекрывать другой, то вы можете выделить верхний компонент, а потом, в дереве компонентов, легко найти тот, который находится снизу.
Рисунок 5 – Окно Обозревателя дерева объектов.
1.1.2 Дополнительные элементы
В данном разделе внимание фокусируется на двух инструментах, которые можно воспринимать как вспомогательные для среды программирования:
- Меню (Menu System)
- Панель с кнопками для быстрого доступа (SpeedBar)
Меню предоставляет быстрый и гибкий интерфейс к среде Delphi, потому что может управляться по набору «горячих клавиш». Это удобно еще и потому, что здесь используются слова или короткие фразы, более точные и понятные, нежели иконки или пиктограммы. Вы можете использовать меню для выполнения широкого круга задач; скорее всего, для наиболее общих задач вроде открытия и закрытия файлов, управления отладчиком или настройкой среды программирования.
SpeedBar находится непосредственно под меню, слева от Палитры Компонент (рис. 6).
SpeedBar выполняет много из того, что можно сделать через меню. Если задержать мышь над любой из иконок на SpeedBar, то Вы увидите что появится подсказка, объясняющая назначение данной иконки.
Рисунок 6 – SpeedBar
1.1.3 Стандартные компоненты
Для дальнейшего знакомства со средой программирования Delphi потребуется рассказать о составе первой страницы Палитры Компонент.
На первой странице Палитры Компонент размещены от 14 до 16 объектов (рис. 7), в зависимости от версии, в качестве примера используется Delphi 7. Мало кто обойдется длительное время без кнопок, списков, окон ввода и т. д. Все эти объекты такая же часть Windows, как мышь или окно.
Набор и порядок компонент на каждой странице являются конфигурируемыми. Так, Вы можете добавить к имеющимся компонентам новые, изменить их количество и порядок.
Рисунок 7 – Компоненты, расположенные на первой странице Палитры
Стандартные компоненты Delphi перечислены ниже с некоторыми комментариями по их применению. При изучении данных компонент было бы полезно иметь под рукой компьютер с тем, чтобы посмотреть, как они работают и как ими манипулировать.
Frames — позволяет разместить на форме так называемый «фрейм». Фрейм из себя представляет другое окно. Чтобы создать окно-фрейм, следует выбрать пункт меню File -> New -> Frame, либо выделить значок Frame в окне File -> New -> Other на вкладке New. До тех пор, пока в приложении не будет ни одного фрейма, использовать данный объект не удастся. Фреймы удобны в том случае, когда какие-либо настройки запрашиваются во время работы программы в виде отдельной формы, а также, например, на одной из вкладок основной формы.
MainMenu — основное меню окна. Связать его с формой можно через свойство Menu формы. При двойном щелчке по значку MenuMenu появляется дизайнер меню, в котором можно добавлять и удалять пункты. В Caption задаётся текст пунта меню. Чтобы создать черту-разделитель, следует в свойство Caption прописать знак «минус» («-«, без кавычек).
Рисунок 8 – MainMenu — основное меню окна
PopupMenu
Label — текстовая метка (надпись) на форме. Используется для отображения любого текста в окне. Текст задаётся в свойстве Caption. Свойство Font позволяет настроить шрифт текста.
Edit — поле ввода. Используется для ввода любых данных (текста, числа и т. д.), представленных одной строкой. Свойство ReadOnly позволяет запретить редактирование текста в поле. Текст хранится свойством Text. Свойство MaxLength позволяет задать максимальное число символов, которое может быть введено в поле. Значение 0 означает, что ограничение не установлено.
Memo — многострочный Edit. Используется для ввода больших объёмов текста. Свойство ScrollBars позволяет указать полосы прокрутки, которые будут отображаться у поля при недостатке места для всего текста:
Button — кнопка, самая что ни есть обыкновенная. Caption — текст на кнопке.
CheckBox — флажок-переключатель. Состояние хранится в свойстве Style:
Само состояние следует изменять с помощью свойства Checked. Таких флажков может быть несколько и каждый может быть отмечен независимо от остальных.
RadioButton
ListBox — список текстовых строк. Используется для выбора одного из вариантов. Строки задаются в свойстве Items. Чтобы изменить исходные значения, следует щёлкнуть по кнопке с тремя точкам («. . . «) в строке свойства Items и в открывшемся редакторе ввести требуемые значения. Свойство MultiSelect позволяет включить/выключить одновременный выбор нескольких строк из списка.
ComboBox — ещё один список для выбора, но выпадающий — на экране видна всего одна строка, а сам список появляется при нажатии на кнопку со стрелкой. Установив свойство Style в csDropDownList можно запретить ввод произвольного значения в ComboBox. Текст выбранной строки доступен в свойстве Text.
ScrollBar
GroupBox — «контейнер» для компонент. Используется для объединения элементов в отдельные области. При перемещении GroupBox’а все компоненты, расположенные на нём, также перемещаются. Для размещения компонент в этом контейнере следует после выбора их на Палитры компонент щёлкнуть по самому контейнеру (а не по форме, как обычно).
У GroupBox можно задать текст заголовка (свойство Caption).
RadioGroup
Panel — практически такой же контейнер, что и GroupBox, однако без заголовка и с возможностью отключения рельефных границ.
ActionList
1.2 Структура проекта Delphi
Программа Delphi — это несколько связанных между собой файлов.
Главный файл проекта, изначально называется PROJECT1. DPR. Если необходимо переименовать название проекта, нужно перезаписать этот файл, выбрав в меню File команду Save Project As… При задании имени следует придерживаться правил задания имен в Object Pascal. Имя не должно содержать пробелов (используйте в таком случае знак подчеркивания), должно начинаться с буквы (цифры допустимы, но со второй позиции), не должно содержать других символов, кроме букв и цифр. Под каким именем вы сохраняете проект, под таким именем и будет создаваться исполняемый EXE файл, который вы всегда сможете самостоятельно переименовать [7, С. 32].
Модуль программы, который автоматически появляется в начале работы Unit1. Файл называется UNIT1. PAS по умолчанию, но его можно назвать любым другим именем, вроде MAIN. PAS. Это делается аналогично переименованию названия проекта. Необходимо выбрать в меню File команду Save As… Сохраняется активный модуль в редакторе кода. Файл главной формы, который по умолчанию называется UNIT1. DFM, используется для сохранения информации о внешнем виде формы (окна разрабатываемого приложения).
При переименовании названия модуля автоматически меняет свое название.
Файл PROJECT1. RES изначально содержит иконку для проекта. Создается автоматически. Имеет одноименное название с названием проекта. Файл PROJECT1. DSK содержит информацию о состоянии рабочего пространства. Состояние окон во время разработки приложения. Исполняемый EXE файл, который создается в процессе компиляции проекта. Разумеется, если сохранить проект под другим именем, то изменят название и файлы с расширением RES и DSK. После компиляции программы получаются файлы с расширениями: DCU — скомпилированные модули PAS для последующей быстрой компиляции некоторые файлы не перезаписываются. EXE исполняемый файл, ~PA, ~DP — backup файлы редактора. Автоматически создаются и содержат информацию, перед последним сохранением.
И так, любая программа всегда состоит из уже знакомого нам файла проекта (такой файл имеет расширение . dpr) и одного или нескольких модулей (файлы с расширением . pas) Файл проекта не предназначен для редактирования пользователем и создаётся автоматически самой системой программирования Delphi [7, С. 35]. .
Для того, чтобы увидеть содержимое файла проекта, необходимо выполнить команду Project View Source. Содержимое файла проекта может быть, например, следующим:
program Project1; uses Forms, Unit1 in ‘Unit1. pas’ {Form1};
begin Application. Initialize;
end. |
Файл проекта(главный модуль) начинается словом program, за которым следует имя программы, совпадающее с именем проекта. Далее за словом uses следуют имена используемых модулей: стандартного модуля Forms и модуля формы Unit1.
Похожая на комментарий директива {$R *. RES} указывает компилятору, что нужно использовать файл ресурсов, который содержит описание ресурсов приложения, например, пиктограммы. Звездочка указывает, что имя файла ресурсов такое же, как и у файла проекта, но с расширением . res.
Исполняемая часть главного модуля находится между операторными скобками begin…end. Операторы исполняемой части обеспечивают инициализацию приложения и вывод на экран стартового окна. Помимо главного модуля каждая программа включает как минимум один модуль формы, который содержит описание стартовой формы приложения и поддерживающих ее работу процедур. В Delphi каждой форме соответствует свой модуль. Для переключения между формой и окном редактора кода, содержащего соответствующий модуль, следует нажать на клавишу F12. Модули — это программные единицы, служащие для размещения фрагментов программ. При помощи содержащихся в них текстов программ и реализуется решаемая пользователем задача.
2. СИНТАКСИС И СЕМАНТИКА ЯЗЫКА ПРОГРАММИРОВАНИЯ DELPHI
Описание каждого элемента языка задается его синтаксисом и семантикой. Синтаксические определения устанавливают правила построения элементов языка. Семантика определяет смысл и правила использования тех элементов языка, для которых были даны синтаксические определения.
2.1 Алфавит языка
Алфавит — это совокупность допустимых в языке символов [2, С. 15]. Алфавит Турбо Паскаль включает следующий набор основных символов:
- прописные латинские буквы:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
- пробел
- подчеркивание: _
- арабские цифры:
0 1 2 3 4 5 6 7 8 9
- знаки операций:
- + — * / = <>
- <
- >
- <= >= := @
- ограничители:
- , ‘ ( ) [ ] (.
. ) { } (* *) . . : ;
- спецификаторы:
^ # $
- служебные (зарезервированные) слова:
- буквы латинского алфавита,
- цифры
- символ подчеркивания.
буквы не различаются (например, NAME, Name и name будет означать одно и то же).
- пробел и табуляцию;
- перевод строки;
ABSOLUTE |
EXPORTS |
LIBRARY |
SET |
ASSEMBLER |
EXTERNAL |
MOD |
SHL |
AND |
FAR |
NAME |
SHR |
ARRAY |
FILE |
NIL |
STRING |
ASM |
FOR |
NEAR |
THEN |
ASSEMBLER |
FORWARD |
NOT |
TO |
BEGIN |
FUNCTION |
OBJECT |
TYPE |
CASE |
GOTO |
OF |
UNIT |
CONST |
IF |
OR |
UNTIL |
CONSTRUCTOR |
IMPLEMENTATION |
PACKED |
USES |
DESTRUCTOR |
IN |
PRIVATE |
VAR |
DIV |
INDEX |
PROCEDURE |
VIRTUAL |
DO |
INHERITED |
PROGRAM |
WHILE |
DOWNTO |
INLINE |
PUBLIC |
WITH |
ELSE |
INTERFACE |
RECORD |
XOR |
END |
INTERRUPT |
REPEAT |
|
EXPORT |
LABEL |
RESIDENT |
2.2 Элементарные конструкции
Элементарные конструкции языка Паскаль включают в себя имена, числа и строки.
Имена (идентификаторы)
Цифра не может стоять на первом месте в идентификаторе, а символ подчеркивания может находиться в любой позиции (например, name1 и name2item являются допустимыми идентификаторами, а 5name — нет; _name, name_, name_item — тоже допустимые названия).
Длина идентификатора может быть любой, но значимыми являются только первые 63 символа. В качестве имен не допускается использовать служебные слова.
Для отделения друг от друга идентификаторов, чисел, зарезервированных слов используются разделители. В качестве них можно использовать: