Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

End Sub. Этот модуль содержит событийную процедуру CommandButton1_Click, решающую поставленную выше задачу при нажатии кнопки на листе Excel (на рис



Этот модуль содержит событийную процедуру CommandButton1_Click, решающую поставленную выше задачу при нажатии кнопки на листе Excel (на рис. 10.5 показана только сама матрица, причем символически), и общие процедуры: MNTab – определение числа строк и столбцов матрицы (M и N); TabCXCY – копирование идентификаторов столбцов и строк в массивы CX, CY; TabA – копирование матрицы из таблицы на листе Excel в двумерный массив A.

Массивы CX, CY, A и основные переменные, требуемые для работы с матрицей, определены на уровне модуля, т.е. доступны всем его процедурам. Элементы массивов CX и CY имеют тип VARIANT, т.к. для них тип явно не указан. Выбор типа VARIANT для этих массивов обусловлен тем, что при последующем расширении написанного модуля в этих массивах, возможно, потребуется размещать не имена строк и столбцов, а сами значения YI и XJ. Обратим внимание на то, что все три массива в начале модуля определены без указания размерности, т.е. как динамические, а в процедуре CommandButton1_Click наши массивы переопределены – но только после определения M и N с помощью процедуры MNTab. Приведенные процедуры еще пригодятся для пояснения циклов и как пример для самостоятельной разработки процедур в практических работах.

Завершая рассмотрение массивов, заметим, что в математике аналогом программисткого термина одномерныймассив является понятие вектор. Вектор можно и нужно толковать не только геометрически: в общем случае это набор значений, например, свойств (признаков) объекта. Если представить себе многомерную систему координат, где по каждой оси отложено значение одного из свойств объекта (скажем, длина автомобиля, расход горючего, максимальная скорость и т.д.), то каждый объект в такой системе координат будет точкой – точкой в признаковом пространстве. Совокупность значений отдельных координат (в нашем примере – длины автомобиля, расхода горючего, максимальной скорости и др.) и есть вектор. Понятие вектора очень удобно для краткой записи операций с массивами чисел – см. самостоятельную работу “Операции с матрицей” в конце книги. Кстати, математический термин матрица соответствует двумерному массиву. Матрицу можно рассматривать как совокупность векторов - строк или столбцов.

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

Type RecBook

Название As String*50

Автор As String*20

Издательство As String*16

Год As Integer

End Type

Теперь в этом же модуле или в одной из его процедур зарезервируем массив для хранения записей о книгах:

Dim Books(500) As RecBook

Для доступа к полям Издательство и Год в i-ой записи массива воспользуемся инструкциями:

Books(i).Издательство=”Недра”: Books(i).Год=1999

В этой книге мы намеренно пользуемся примерами, а не строгими определениями синтаксиса инструкций VBA. Как уже отмечалось, такие определения легко получить в справочной системе Visual Basic – когда программист тонет, он кричит <F1>!

Кроме переменных, в программах используются данные, значения которых не изменяются – это константы. Приведем примеры их определения:

Const Pi As Double = 3.14159

Const Nmin As Long = 0

Const Nmax As Long = 999999

Определив константы один раз, например, в начале модуля, ими можно пользоваться во многих инструкциях, не вспоминая каждый раз точное значение числа π. Если же в процессе разработки программы потребуется изменить ограничение Nmax, то это надо будет сделать в единственной инструкции.

Некоторые данные во время работы приложения могут храниться в качестве свойств объектов: свойств ячеек листа Excel, свойств элементов управления и др. Приведем примеры:

Лист2.Cells(2,6).Formula = “=Sum(B1:B5)”

Лист2.Range("A1:D4").Value = Range("A1:D4").Value

TextBox1.Text = “M=” & Str(M) & “ N=” & Str(N)

В первом примере свойству Formula объекта Cells(2,6), принадлежащего, в свою очередь, объекту Лист2, присваивается конкретная формула. Этот пример, кстати, показывает, как при программировании на VBA можно пользоваться встроенными в Excel формулами. Но верно и обратное: разрабатывая функции на VBA, можно расширить набор формул, доступных в Excel. Во втором примере значения, хранимые в прямоугольной области ячеек на текущем листе, присваиваются ячейкам одноименной области на листе 2. В третьем примере с помощью операции конкатанации (&) три подстроки объединяются (суммируются) в одну строку, и эта строка присваивается свойству Text объекта TextBox1. Последний пример показывает, как значения M, N вывести в поле, размещенное на форме или на листе Excel.

10.5. Основные инструкции языка Visual Basic и отладка программ

Сгруппируем основные инструкции языка Visual Basic по типу операций:

- присваивания, в том числе с выполнением математических операций в правой части инструкции;

- проверки условий, управления последовательностью исполнения инструкций, организации циклов;

- инструкции для работы с файлами.

Последняя группа инструкций в этой краткой книге не рассматривается. При необходимости с ними можно познакомиться самостоятельно [4,11,13,15].

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

Арифметические операции перечислены в таблице 10.3. При программировании формул необходимо учитывать приоритеты операций и в случае необходимости использовать скобки, как это принято в математике. Поясним таблицу 10.3. Смена знака имеет место, когда минус ставится перед именем переменной, константы или перед числом. Например: F=CX*(-G^2); если CX=3, а G=1.5, то F = -6.75. Чтобы убедиться в правильности результата, достаточно на листе Excel разместить кнопку CommandButton1 и поле TextBox1, а в событийную процедуру CommandButton1_Click включить инструкции:

Dim I As Integer, F As Single

F = 3 * (-1.5 ^ 2): I = 3 * (-1.5 ^ 2)

TextBox1.Text = "F=" & Format(F, "0.00") & " I=" & Str(I)

Выйдя из режима конструктора и нажав кнопку, увидим в поле TextBox1 результаты.

Таблица 10.3





Дата публикования: 2014-11-02; Прочитано: 233 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...