Объектно-ориентированное программирование
Объектно-ориентированное программирование (ООП) является развитием процедурного программирования. В ООП объединяется значительное количество процедур, причём алгоритм перехода от одной процедуры к другой и взаимодействие процедур является нечётким. Переход от процедурного к объектно-ориентированному программированию вызван усложнением алгоритмов программ до такой степени, что процедурное программирование не даёт наглядной картины механизма работы алгоритма, что приводит к неправильному функционированию программы.
Объектно-ориентированное программирование — это методика, которая концентрирует основное внимание программиста на связях между объектами, а не на деталях их реализации. Объект (objects)– это некоторая совокупность данных и способов работы с ними. К объектам относится и открытое приложение, и окно в приложении, и кнопка в окне. Друг к другу они относятся как “родитель-потомок” с наследованием свойств и методов.
Все объекты относятся к какому-либо классу (классифицируются) (class). Память выделяется только тогда, когда класс используется для создания объекта. Этот процесс также называется созданием экземпляра класса. Любой объект имеет одинаковые свойства и функциональность с другими объектами того же класса. За создание своих классов и поведение объектов этих классов полную ответственность несет сам программист. Работая в некоторой среде, программист получает доступ к обширным библиотекам стандартных классов (например, к классам объектной модели VB и Excel).
Каждый объект содержит внутри себя (инкапсулирует) свои свойства (properties), методы (methods) и события (events), которые определяются его классом. Например, к свойствам кнопки относятся цвет, шрифт, расположение текста, расположение и размеры кнопки, видимость и другие, менее важные свойства (некоторые свойства являются объектами-потомками кнопки). К методам кнопки относятся процедуры изменения текста кнопки, изменения размеров, видимости кнопки, перевод фокуса ввода на кнопку, программное нажатие кнопки и другие процедуры. К событиям кнопки относятся нажатие мышью, двойное нажатие, движение мыши, нажатие кнопки “ввод”, изменение текста кнопки и другие события.
Теперь можно переопределить объект как некоторую совокупность свойств, методов, и событий на которые он реагирует (рисунок 1.1). Все объекты существуют в динамической среде сообщений, генерируемых в результате различных событий (рис. 1.2). События возникают при нажатии пользователем кнопок, перемещения курсора мыши и т.д. События могут возникать в результате изменений самих объектов внутри программы, а также сообщений других программ (объектов), прежде всего операционной системы.
|
|
Рис. 1.1 – Модель объекта |
Рис. 1.2 – Модель программы (совокупности объектов) |
Создание программ для инженерных расчётов
Программы для инженерных расчётов как правило имеют чёткий алгоритм (процедуру) обработки числовых переменных с выраженным началом и концом. Это в чистом виде процедурное программирование, когда отдельные процедуры являются отдельными программами и связаны между собой лишь в голове разработчика. Разработка таких программ не требует применения объектно-ориентированного программирования. Но к сожалению программа, разработанная на процедурном подходе не будет иметь удобного дружелюбного внешнего вида и интерфейса, поскольку их проектирование сложно и требует глубоких знаний функций аппаратных средств и операционной системы Windows API (Application Programming Interface (интерфейс прикладного программирования).
Данная проблема решается применением принципа визуального программирования. Программист оперирует уже готовыми объектами (компонентами) интерфейса (форм, кнопок, полей, …) с уже заданными и легко изменяемыми свойствами, методами, событиями. То есть создания пользовательских классов и объектов для построения интерфейса программы не требуется.
Созданные на основе визуального объектно-ориентированного программирования CASE-технология (Computer Aided Software Engineering – автоматизированного проектирования программного обеспечения) и RAD-технология (Rapid Application Development – быстрая разработка приложений) позволили разработать Интегрированную среду разработки программного обеспечения или ИСР ПО (Integrated development environment - IDE). Например Microsoft создало ИСР Visual Basic (VB), Visual Basic for Applications (VBA) на основе языка Basic (основной, простой), Borland создало ИСР Delphi, C++Builder на основе языков Pascal и С++.
В интегрированной среде разработки ПО интерфейс программы создаётся простым перетаскиванием компонентов - готовых кнопок, таблиц, диалогов из библиотеки на форму-окно будущего приложения и их настройкой. Код объектов, добавление библиотек, связи между объектами автоматически генерируются средой. Процедура инженерного расчёта, ради которой и создается программа записывается внутрь функции-обработчика события, например нажатия кнопки.
Visual Basic и Visual Basic for Applications
Среда Visual Basic for Applications (VBA) создана на основе среды Visual Basic и собственно является Visual Basic с интегрированной объектной моделью Microsoft Office, что позволяет легко управлять программами Microsoft Office. С применением функций Windows API программы VBA могут управлять другими приложениями, ОС Windows, аппаратными средствами.
Ниже приведены краткие сведения по Visual Basic и Visual Basic for Applications.
Справка по Visual Basic
Типы данных
Название |
Область описания |
Использование в тексте программы |
Примечания |
Комментарий |
‘ Текст комментария |
|
|
Константа |
Const Имя константы = Значение |
|
Зарезервированные имена констант VBA - vbИмя константы константы Excel - xlИмя константы |
Логическая переменная |
Dim Имя переменной As Boolean |
Имя переменной = True |
Значение True или False |
Целочисленная переменная |
Dim Имя переменной As Long |
Имя переменной = 24588 |
Значение от -2 147 483 648 до +2 147 483 648 |
Вещественная переменная |
Dim Имя переменной As Double |
Имя переменной = 3.88 |
Значение от -1.8E308 до +4.9E324 |
Дата |
Dim Имя переменной As Date |
Имя переменной = #1/1/2008# |
Значение от 1/1/100 до 12/31/9999 |
Строка |
Dim Имя переменной As String |
Имя переменной = “C:\Win\regedit.exe” |
Строка любой длины |
Объектная переменная |
Dim Имя переменной As Object Dim Имя переменной As Тип объекта |
Set Имя переменной = Имя объекта |
Используется при объектном программировании |
Массив |
Dim Имя массива(1 То 100, 1 To 100) As Range |
Имя массива(номер элемента) = “_Enum” |
|
Динамический массив |
Dim Имя массива() As Range |
Имя массива(номер элемента) = “_Enum” |
Изменение размера массива с потерей данных: ReDim Имя массива(1 То 100, 1 To 100) |
Основные операторы
Тип |
Название |
Символ |
Арифметические операторы |
|
+, -, *, / |
Деление нацело |
\ |
|
возведение в степень |
^ |
|
Остаток от деления |
Mod |
|
Строковый оператор |
Объединение |
& |
Логические операторы |
|
AND, OR, NOT |
Сравнение |
|
=, <, >, <=, >=, <> |
Операторы описания переменных
Public Имя переменной As Тип переменной – описание глобальной переменной (уровень жизни проекта)
Private Имя переменной As Тип переменной – описание локальной переменной (уровень жизни модуля)
Dim Имя переменной As Тип переменной – описание локальной переменной (уровень жизни процедуры или функции)
Static Имя переменной As Тип переменной – описание статической переменной (уровень жизни процедуры или функции) – переменная глобально невидима, но не теряет своего значения за время жизни проекта
Option Explicit – ставится в области описаний для недопущения необъявленных переменных
Управляющие операторы