Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект по инфе.doc
Скачиваний:
9
Добавлен:
27.10.2018
Размер:
360.45 Кб
Скачать

42. Объектно-ориентированное программирование. Объекты, свойства и методы в Visual Basic.

Объект - это объединенный программный код и данные, обладающие определенными свойствами и методами.

В excel объекты – это например рабочие книги – workbook , рабочие листы – worksheet, диапазоны данных – range, таблицы, графические объекты, диалоговые окна и само приложение excel Application.

Объекты образуют иерархию, то есть одни объекты содержатся в других например:

Application – workbook – worksheet – range

Свойства объекта используются для доступа к содержимому.

Workbooks (“current.xls”). worksheet (“fales”). Range (“B3”).value3 – выделенное является свойством.

Метод используется для доступа к функциональным возможностям. Workbooks (“current.xls”).close

Объекты – наборы предназначенны для доступа к отдельным объектам в наборе.

Пример: открытие книги и вывод значения из ячейки A1.

Sub OpenBook1-название макроса.

Set my Book= Workbooks.Open(Filename:=”Book1.xls”)-откраы рабоч книга с назван Book1.xls

Msg Box my Book. worksheet(1). Range(“A1”). value-открыт диалог окна (1).Вывод яч А1.

End Sub-оконч макроса. 43. Процедуры и функции в Visual Basic. – см. билет №45

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

Макрос – процедура, но без параметров.

Процедура – часть программы, которая имеет собственное имя, входные и выходные параметры.

Процедура – один из вариантов подпрограмм.

Функции сами по себе имеют значение. Они аналогичны стандартным функциям.

Синтаксис:

Function имя(список аргументов) AS тип

Тело функции с описанием

AND FUNCTION

Пример:

FUNCTION THREE (x AS SINGLE) AS SINGLE

THREE = x^3

AND FUNCTION

Вызов функции осуществляется через условие ее имени со значением параметра.

Процедура сама не имеет значения. Результат она передает через параметры. Параметры могут отсутствовать. Такая процедура аналогична макросу.

SUB имя параметры

Тело процедуры

END SUB

Параметры вывод на экран окна

SUB OUT WIN / S NAME AS STRING)

MSG BOX «ПРИВЕТ», & SNNAME

END SUB

Вызов

SUB («Леонид») 44. Базовые алгоритмы. Решение уравнений и систем уравнений, интегрирование. 45. Понятие о структурном программировании. Модульный принцип программирования. Принципы проектирования программ сверху вниз и снизу вверх

В Visual Basic весь программный код находится внутри процедур (подпрограмм). Общая структура описания подпрограммы Visual Basic:

Sub <имя_подпрограммы> [(<параметры>)] <операторы> End Sub

Такие процедуры могут вызываться или самим Visual Basic, или другими процедурами. Вызов подпрограммы выполняется с помощью следующих операторов:

  • Call <имя_подпрограммы> [(<параметры>)];

  • <имя_подпрограммы> [<параметры>]. Функция построена точно так же, как и процедура, однако результатом работы функции является возвращаемое значение (только одно).

Общая структура описания функции следующая:

Function <имя_функции> [(<аргументы>)] [As <Тип>] <операторы> <имя_функции> = <выражение> End Function

Вызов функции выполняется с помощью оператора; присваивания:

<переменная> = <имя_функции> {(<аргументы>)].

Использование принципов модульного программирования Windows-приложения в среде проектирования VB выражено в двух аспектах.

1. Разбиение программного кода на отдельные компактные модули.

В файле модуля формы (frm) содержится программный код, относящийся к форме и объектам этой формы. В стандартном (универсальном) модуле (bas) содержатся программные коды, которые могут использоваться не в одной, а в нескольких формах (и даже в нескольких проектах).

2. Разбиение программного кода уже внутри модуля на отдельные части — процедуры.

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

Общая процедура может входить в состав модуля экранной формы (в файл frm) или в состав стандартного модуля (в файл bas).

В Visual Basic есть три вида областей определения, характеризующих доступность переменной:

  • локальная: переменная доступна только в текущей процедуре;

  • контейнера: переменная доступна только в текущей форме, модуле или классе;

  • глобальная: переменная доступна во всем проекте. Локальными называются переменные, определяемые внутри процедуры или функции. Они доступны только внутри этой процедуры. Поэтому не возникает конфликтов при использовании разными процедурами переменных с одним и тем же именем. При выходе из процедуры все ее локальные переменные сразу же удаляются из памяти, а при новом вызове этой процедуры переменные создаются вновь.

Переменные контейнера определяются в секции (General) (Declarations) с помощью оператора Dim и доступны только внутри соответствующего контейнера, т, е. формы, модуля или класса.

Глобальные переменные определяются в секции (General) (Declarations) модуля. При этом вместо оператора Dim используется Public. Глобальные переменные доступны во всех модулях и процедурах проекта.

Локально объявленные переменные при выходе из процедуры удаляются из памяти, а при новом вызове процедуры инициализируются заново. Их содержимое при этом не сохраняется, что не всегда желательно. Этого можно избежать путем расширения области определения, т. е. объявив переменную глобальной или как минимум переменной контейнера. Но это разрешает доступ к переменной из других процедур.

Visual Basic дает возможность объявлять переменные как статические. При выходе из процедуры содержимое статической переменной сохраняется. При новом вызове этой процедуры переменной присваивается значение, которое она имела при последнем выходе из этой процедуры. Содержимое переменной сохраняется в течение всего времени, пока существует в памяти форма или модуль.

Объявление переменной как статической производится оператором:

Static <Имя_переменной> [As <Тип_переменной>]

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

Полное описание общей процедуры выглядит следующим образом:

<ОбластьВидимости>] [Static] Sub <имяПроцедуры> (<Списокпараметров>) <Операторы> End Sub

Область видимости — это одно из двух ключевых слов Public или Private. Они устанавливают, к какому классу принадлежит процедура: к классу локальных или классу глобальных процедур. Процедура локальная (Private), если она доступна (видна) только внутри данного модуля и не может быть вызвана из других модулей. Процедура глобальная (Public), если она доступна (видна) из других модулей.

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

В процедурах обработки событий набор параметров зависит от события и не может быть изменен разработчиком.

В общих процедурах количество и порядок используемых параметров определяется разработчиком. В заголовке процедуры можно указывать тип данных для параметров.

В Visual Basic параметры могут передаваться двумя способами:

  • как ссылки (ByRef);

  • как значение (ByVal).

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

По умолчанию параметры в Visual Basic передаются по ссылке, но можно указывать явно ключевое слово ByRef перед параметром в заголовке процедуры. Например,

Sub pr1(ByRef n As String)

При передаче параметра по значению Visual Basic передает копию содержимого переменной вместо ее адреса в памяти, и функция или процедура не сможет напрямую модифицировать исходное значение. Ключевое слово ByVal перед параметром должно указываться обязательно. Например, Function fkl (ByVal k As String) As Boolean.