Автор работы: Пользователь скрыл имя, 08 Января 2014 в 15:15, доклад
При объектно-ориентированном подходе программные задачи распределяются между объектами программы. Объекты обладают определенным набором свойств, методов и способностью реагировать на события (нажатие кнопок мыши, интервалы времени и т.д.). В отличие от процедурного программирования, где порядок выполнения операторов программы определяется порядком их следования и командами управления, в ООП порядок выполнения процедур и функций определяется, прежде всего, событиями.
Доклад на тему :
«Основы объектно-ориентированного визуального программирования»
12.10.2013год
Основы объектно-
Концепция ООП возникла в
середине 80-х годов. Главная ее идея
в том, что программное приложение,
как и окружающий нас мир, должно
состоять из объектов, обладающих собственными
свойствами и поведением. ООП объединяет
исполняемый код программы и
ее данные в объекты, что упрощает
создание сложных программных
При объектно-ориентированном подходе программные задачи распределяются между объектами программы. Объекты обладают определенным набором свойств, методов и способностью реагировать на события (нажатие кнопок мыши, интервалы времени и т.д.). В отличие от процедурного программирования, где порядок выполнения операторов программы определяется порядком их следования и командами управления, в ООП порядок выполнения процедур и функций определяется, прежде всего, событиями.
Чтобы проект можно было
считать объектно-
В ООП центральным является понятие класса. Класс – это шаблон, по которому создаются объекты определенного типа. Класс объединяет в себе данные и методы их обработки.
Объекты — это экземпляры определенного класса. Например, кнопки или текстовые поля, устанавливаемые на форме являются экземплярами соответствующих стандартных классов VB.
Создать собственный класс
в VB можно с помощью модуля класса. Модуль класса состоит
из элементов трех типов: свойств, методов, событ
Элементы управления — это объекты, используемые при разработке пользовательского интерфейса.
Технология визуального программирования в среде VBA
Основой для визуального программирования являются формы. Программирование в среде Access начинается с создания формы в режиме конструктора. В этом случае открывается доступ к панели элементов, показанной на рисунке.
Программисту необходимо установить на форме требуемый элемент управления нажатием соответствующей кнопки на панели элементов и "протяжкой" указателем мыши в нужном месте формы.
Для того, чтобы обеспечить выполнение элементом управления требуемых действий, его необходимо запрограммировать. Это можно сделать, вызвав через контекстное меню окно свойств элемента управления. На вкладке События следует выбрать подходящее событие и нажать кнопку с тремя точками в выбранной строке. В результате откроется окно редактора VBA с заготовкой процедуры обработки события. Программа управления вписывается внутрь этой заготовки.
Например, для наиболее часто используемого элемента управления – кнопки основным событием является нажатие кнопки. Процедура обработки этого события может содержать любой код, например, обращение к другой процедуре, выполняющей обработку данных в таблице.
Кроме кнопки очень часто используются элементы управления "Надпись" и "Поле".
Надпись применяется для вывода текста, который не должен изменяться пользователем (например, заголовок какого-либо объекта управления).
Поле используется для ввода, вывода и редактирования пользователем текстовой (символьной) информации.
Рассмотрим технологию программирования с использованием элементов управления на примере. При этом будем придерживаться общей методики программирования, рассмотренной в предыдущих разделах.
1. Постановка задачи.
В последовательности из N чисел
найти непрерывную
Рис. 1. Вид пользовательского интерфейса
2. Формализация задачи.
Для рассматриваемой задачи введем обозначения:
Массив — это множество однотипных переменных, имеющих одно имя, доступ к которым определяется индексом. В Visual Basic индексы заключаются в круглые скобки после имени массива, например A(5). При описании массива следует указывать его верхнюю границу, например, описание Dim A(100) As Single определяет массив A из 101 элемента вещественного типа. Такое количество элементов обусловлено тем, что нижняя граница индексов любых массивов равна нулю. Следует заметить, что описание только резервирует необходимый объем памяти для хранения массива. Количество элементов массива, используемых при решении задачи может быть любым в пределах описанных границ.
Таким образом, формальной постановкой решаемой задачи является:
3. Моделирование
задачи и подготовка
Для сформулированной задачи имеется несколько решений. Оптимальное заключается в использовании однократного просмотра всех N элементов и базируется на том, что при получении отрицательной суммы, вся подпоследовательность, давшая эту сумму, может быть исключена из дальнейшего рассмотрения.
Контрольный пример: A = (2.5; -3.1; 1.8; 4.2; 2.9; -1.1; 2.9; 2.3; -7.9). Максимальную сумму в этом примере, равную 13, образуют элементы с 3-го по 8-й.
4. Разработка алгоритма решения задачи.
Алгоритм для рассматриваемого примера и его детализация показаны на рис. 2-4.
5. Разработка интерфейса
Для хранения исходных данных
создадим таблицу Последовательность с
одним числовым полем (одинарное с плавающей
точкой) под именем Элемент. Заполним
таблицуПоследовательность знач
В режиме конструктора создадим форму "Определение максимальной суммы". Для того, чтобы убрать с формы лишние детали, зададим ее свойства, как показано на рисунке.
Рис. 5. Свойства формы
Для вывода массива A установим на форме элемент Список, как показано на рис. 1. Если на панели элементов нажата кнопка Мастера, то мастер потребует определить некоторые свойства списка. Главным из них является свойство Источник записей, где следует указать таблицу Последовательность.
Вывод максимальной суммы, начального
и конечного номеров будем
выполнять в простые поля. Следует
проверить, чтобы имена полей были соответственно Поле1, Поле3 иП
6. Программирование алгоритма
Для записи программы вызовем контекстное меню кнопки запуска вычислений (рис.1) и выберем пункт Обработка событий... . В окне Построитель следует выбратьПрограммы. Откроется окно редактора VBA с заготовкой:
Private Sub Кнопка0_Click()
End Sub
Код обработки нажатия кнопки следует вписать внутрь этой процедуры. Ниже при-веден полный листинг программы с комментариями к командам программы.
Работа программы может зависеть от настройки интегрированной среды. Поэтому, находясь в среде редактора программы, следует обратиться к меню Tools/References... и подключить библиотеки, как показано на рис. 6. Важен не только набор библиотек, но и их расположение в окне References: верхние имеют приоритет по сравнению с нижними. Для изменения приоритета в окне имеются две кнопки Priority.
Рис. 6. Окно References
Листинг программы решения задачи
Option Compare Database 'Режим
сравнения текстов
Option Explicit 'Режим явного описания переменных.
Private Sub Кнопка0_Click() 'Процедура обработки
нажатия кнопки
Dim dbs As Database 'Описание dbs как базы данных
Dim rds As Recordset 'Описание rds как виртуальной
таблицы
' Описание переменных вещественного
типа
Dim A(100) As Single, MaxSum As Single, S As Single
' Описание переменных целого типа.
Dim i As integer, j As Integer, NumBegin As Integer
Dim NumEnd As Integer, N As Integer
Dim SL As String
Set dbs = CurrentDb 'Определить dbs как текущую
базу данных
' Заполнить rds записями из таблицы "Последовательность"
SL = "SELECT * FROM Последовательность"
Set rds = dbs.OpenRecordset(SL)
rds.MoveLast 'Установить указатель на последнюю
запись в rds
N = rds.RecordCount 'Определить количество записей
в rds
rds.MoveFirst 'Установить указатель на первую
запись в rds
For i = 1 To N 'Цикл, формирующий массив A
A(i) = rds!Элемент 'Запомнили i-ое значение
поля "Элемент".
rds.MoveNext 'Перевели указатель на следующую
запись в rds
Next 'Конец цикла
dbs.Close 'Закрыли базу данных
NumBegin = 1: NumEnd = 1 'Блок 3.1, рис. 3
MaxSum = A(1):S = 0: j = 1
For i = 1 To N 'Блок 4, рис. 2
S = S + A(i) 'Блок 5.1, рис. 5
If S > MaxSum Then 'Блок 5.2, рис. 5
MaxSum = S: NumBegin = j: NumEnd = i 'Блок 5.3, рис. 5
End If 'Конец условия
If S < 0 Then 'Блок 5.4, рис. 5
j = i + 1: S = 0 'Блок 5.5, рис. 5
End If 'Конец условия
Next i 'Конец цикла
Поле1.SetFocus 'Вывод решения
Поле1.Text = Str(MaxSum) 'путем установки
Поле3.SetFocus 'фокуса на элемент
Поле3.Text = Str(NumBegin) 'управления типа "поле"
Поле5.SetFocus 'и вывода в него
Поле5.Text = Str(NumEnd) 'строки с результатом.
End Sub 'Конец процедуры
Код обработки события нажатия кнопки на форме состоит из трех основных частей:
Формирование массива выполнено через виртуальную таблицу rds, что является стандартным приемом работы с таблицами БД. Виртуальная таблица формируется при помощи инструкции SELECT, являющейся командой языка SQL (Structured Query Language), используемого для управления базами данных. VBA позволяет встраивать фрагменты SQL.
Для запуска программы
следует открыть форму и
Рис. 7. Решение задачи
Источник: http://miit.bsu.edu.ru/docs/
Информация о работе Основы объектно-ориентированного визуального программирования