Основы объектно-ориентированного визуального программирования

Автор работы: Пользователь скрыл имя, 08 Января 2014 в 15:15, доклад

Краткое описание

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

Вложенные файлы: 1 файл

Основы объектно-ориентированного визуального программирования.docx

— 191.04 Кб (Скачать файл)

 

 

     

 

 

                       Доклад на тему :

  «Основы  объектно-ориентированного              визуального             программирования»

 

 

 

 

 

 

                                                                             Подготовила:

                                                                   Глухова  Елизавета

 

 

                            

 

                        12.10.2013год       

 

Основы объектно-ориентированного программирования

Концепция ООП возникла в  середине 80-х годов. Главная ее идея в том, что программное приложение, как и окружающий нас мир, должно состоять из объектов, обладающих собственными свойствами и поведением. ООП объединяет исполняемый код программы и  ее данные в объекты, что упрощает создание сложных программных приложений. Например, можно организовать коллективную работу над проектом, где каждый участник создает собственный класс  объектов, который становится доступным  другим участникам проекта.

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

Чтобы проект можно было считать объектно-ориентированным, объекты должны удовлетворять некоторым  требованиям. Этими требованиями являются инкапсуляция,наследование и полиморфизм.

  • Инкапсуляция — означает, что объекты скрывают детали своей работы. Инкапсуляция позволяет разработчику объекта изменять внутренние принципы его функционирования, не оказывая никакого влияния на пользователя объекта. В VB этот принцип реализуется, в основном, за счет применения описаний Private и Public.
  • Наследование — означает, что новый объект можно определить на основе уже существующих объектов, при этом он будет содержать все свойства и методы родительского. Наследование полезно, когда требуется создать новый объект, обладающий дополнительными свойствами по сравнению со старым. Следует заметить, что VB не поддерживает наследования в строгом смысле этого понятия.
  • Полиморфизм — многие объекты могут иметь одноименные методы, которые могут выполнять разные действия для разных объектов. Например, оператор "+" для числовых величин выполняет сложение, а для текстовых — склеивание.

В ООП центральным является понятие класса. Класс – это шаблон, по которому создаются объекты определенного типа. Класс объединяет в себе данные и методы их обработки.

Объекты — это экземпляры определенного класса. Например, кнопки или текстовые поля, устанавливаемые на форме являются экземплярами соответствующих стандартных классов VB.

Создать собственный класс  в VB можно с помощью модуля класса. Модуль класса состоит из элементов трех типов: свойств, методов, событий, оформляемых в виде описаний, процедур и функций внутри контейнера — модуля. У модуля класса нет собственного пользовательского интерфейса — формы, однако он может использовать контейнер формы, для чего должен содержать соответствующие методы.

Элементы управления — это объекты, используемые при разработке пользовательского интерфейса.

Технология визуального  программирования в среде VBA

Основой для визуального  программирования являются формы. Программирование в среде Access начинается с создания формы в режиме конструктора. В этом случае открывается доступ к панели элементов, показанной на рисунке.

Программисту необходимо установить на форме требуемый элемент  управления нажатием соответствующей  кнопки на панели элементов и "протяжкой" указателем мыши в нужном месте формы.

Для того, чтобы обеспечить выполнение элементом управления требуемых действий, его необходимо запрограммировать. Это можно сделать, вызвав через контекстное меню окно свойств элемента управления. На вкладке События следует выбрать подходящее событие и нажать кнопку с тремя точками в выбранной строке. В результате откроется окно редактора VBA с заготовкой процедуры обработки события. Программа управления вписывается внутрь этой заготовки.

Например, для наиболее часто  используемого элемента управления – кнопки основным событием является нажатие кнопки. Процедура обработки этого события может содержать любой код, например, обращение к другой процедуре, выполняющей обработку данных в таблице.

Кроме кнопки очень часто  используются элементы управления "Надпись" и "Поле".

Надпись применяется для вывода текста, который не должен изменяться пользователем (например, заголовок какого-либо объекта управления).

Поле используется для ввода, вывода и редактирования пользователем текстовой (символьной) информации.

Рассмотрим технологию программирования с использованием элементов управления на примере. При этом будем придерживаться общей методики программирования, рассмотренной  в предыдущих разделах.

1. Постановка задачи.

В последовательности из N чисел  найти непрерывную подпоследовательность, имеющую максимальную сумму. Интерфейс пользователя должен иметь вид, показанный на рисунке.

Рис. 1. Вид пользовательского  интерфейса

2. Формализация  задачи.

Для рассматриваемой задачи введем обозначения:

  • A — массив, содержащий исходную последовательность чисел;
  • MaxSum — максимальная сумма;
  • NumBegin, NumEnd — номера первого и последнего элементов подпоследовательности, образовавшей максимальную сумму.

Массив — это множество однотипных переменных, имеющих одно имя, доступ к которым определяется индексом. В Visual Basic индексы заключаются в круглые скобки после имени массива, например A(5). При описании массива следует указывать его верхнюю границу, например, описание Dim A(100) As Single определяет массив A из 101 элемента вещественного типа. Такое количество элементов обусловлено тем, что нижняя граница индексов любых массивов равна нулю. Следует заметить, что описание только резервирует необходимый объем памяти для хранения массива. Количество элементов массива, используемых при решении задачи может быть любым в пределах описанных границ.

Таким образом, формальной постановкой  решаемой задачи является:

  • дано: N, A;
  • найти: MaxSum, NumBegin, NumEnd.

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 иПоле5, а командной кнопки — Кнопка0. В этом случае имена будут совпадать с приводимыми ниже в листинге программы

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                       'Конец процедуры

Код обработки события  нажатия кнопки на форме состоит  из трех основных частей:

  • формирование массива A из записей таблицы Последовательность;
  • решение задачи;
  • вывод результатов в текстовые поля.

Формирование массива  выполнено через виртуальную  таблицу rds, что является стандартным приемом работы с таблицами БД. Виртуальная таблица формируется при помощи инструкции SELECT, являющейся командой языка SQL (Structured Query Language), используемого для управления базами данных. VBA позволяет встраивать фрагменты SQL.

Для запуска программы  следует открыть форму и щелкнуть по кнопке запуска. Результат выполнения программы показан на рис. 7.

Рис. 7. Решение задачи

Источник:  http://miit.bsu.edu.ru/docs/inf/prog/prog04.htm


Информация о работе Основы объектно-ориентированного визуального программирования