Содержание
1. Цели и задачи практики
2. Задание
3. Теоретические сведения о разработке приложений при помощи VBA
3.1. Общие сведения
3.2. Данные
3.2.1. Типы данных
3.2.2. Определение типа данных в макросе
3.2.3. Преобразование типов данных
3.3. Вызов процедур и функций
3.4. Связь с рабочим листом
3.4.1. Способы адресации к ячейкам листа
3.4.2. Занесение в ячейку листа формул
3.5. Управляющие структуры
Приложение А Листинг программы
Приложение Б Экранные формы
1. ЦЕЛИ И ЗАДАЧИ ПРАКТИКИ
Цели практики:
· познакомиться с возможностями современных компьютерных технологий решения задач в средах MS Excel 2002, MS Word 2002
· расширить кругозор в области программирования в офисных пакетах, теоретические знания по применению ЭВМ в решении математических задач
· закрепить практические навыки в разработке программного обеспечения
2. ЗАДАНИЕ
Задание №1
Дан файл с исходными данными (прямоугольной матрицей): base.dat, рассматривая элементы строки прямоугольной матрицы координатами точки в n-мерном пространстве, определить номера точек, расстояние d между которыми максимально:
.3. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ О РАЗРАБОТКЕ ПРИЛОЖЕНИЙ ПРИ ПОМОЩИ VBA
3.1 Общие сведения
Обычно Basic ассоциируется с каким-то очень простым в освоении и использовании средством программирования. Это действительно так. На заре компьютерных технологий язык Basic был создан для создания простых программ и использовался в качестве учебного языка для первых шагов при изучении основ программирования с последующим переходом на более сложные и универсальные языки. Это было заложено в название языка BASIC — Beginners All-purpose Symbolic Instructional Code, то есть многоцелевой код символьных инструкций для начинающих. С прогрессом компьютерных технологий развивался и Basic. В настоящее время версия Visual Basic дает возможность решать любые современные задачи разработки приложений. При этом Visual Basic остался достаточно простым в освоении, став в то же время одним из мощных современных языков программирования.
С помощью Visual Basic можно создавать приложения практически для любой области современных компьютерных технологий: бизнес-приложения, игры, мультимедиа, базы данных. При этом приложения могут быть как простыми, так и очень сложными, в зависимости от поставленной задачи.
Простота и мощность языка Visual Basic позволили сделать его встроенным языком для приложений Microsoft Office. Поэтому в настоящее время Basic уже не считается учебным языком — знание Visual Basic и его диалектов (VBA, VBScript) становится необходимостью для современного программиста любого уровня.
Помимо команд и выражений, можно включить в свою программу любой произвольный текст или комментарии. Комментарии, поясняющие текст программы, сделают ее более читабельной и помогут вам или другим пользователям лучше ориентироваться в программе.
Для включения в текст программы комментария необходимо ввести символ ('), который может быть первым символом в строке или находиться в любом ее месте. Этот символ означает начало комментария. Любой текст, расположенный в строке следом за этим символом, будет восприниматься как комментарий, то есть Visual Basic не будет транслировать этот текст. Например:
Комментарий, начинающийся с начала строки
Print strName ' Комментарий, следующий за оператором
В том случае, когда оператор имеет большую длину, его можно разбить на несколько строк, используя символы продолжения строки: пробел, за которым следует символ подчеркивания (_).
Например, поместим на двух строках оператор, объединяющий фамилию, имя и отчество:
strName = strLastname & strFirstname & strSecondname
Получим следующее:
strName = strLastname _
& strFirstname & strSecondname
Как правило, при написании программ операторы размещают на отдельной строке. Если операторы имеют небольшую длину, Visual Basic позволяет их поместить на одной строке, разделив двоеточием. Например:
strLastname = "Иванов ": strFirstname = "Иван "
3.2 Данные
3.2.1 Типы данных
В таблице 3.2.1 перечислены типы данных, используемые в Visual Basic
Тип данных | Размер | Диапазон значений |
Byte (байт) | 1 байт | От 0 до 255. |
Boolean (логический) | 2 байт | True или False. |
Integer (целое) | 2 байт | От –32 768 до 32 767. |
Long (длинное целое) | 4 байт | От -2 147 483 648 до 2 147 483 647. |
Single (с плавающей точкой обычной точности) | 4 байт | От –3,402823E38 до –1,401298E-45 для отрицательных значений; от 1,401298E-45 до 3,402823E38 для положительных значений. |
Double (с плавающей точкой двойной точности) | 8 байт | От - 1,79769313486232E308 до -4,94065645841247E-324 для отрицательных значений; от 4,94065645841247E-324 до 1,79769313486232E308 для положительных значений. |
Currency (денежный) | 8 байт | От -922 337 203 685 477,5808 до 922 337 203 685 477,5807. |
Decimal (масштабируемое целое) | 14 байт | +/-79 228 162 514 264 337 593 543 950 335 без дробной части; +/-7,9228162514264337593543950335 с 28 знаками справа от запятой; минимальное ненулевое значение имеет вид +/-0,0000000000000000000000000001. |
Date (даты и время) | 8 байт | От 1 января 100 г. до 31 декабря 9999 г. |
String (строка переменной длины) | 10 байт + длина строки | От 0 до приблизительно 2 миллиардов. |
String (строка постоянной длины) | Длина строки | От 1 до приблизительно 65 400. |
Object (объект) | 4 байт | Любой указатель объекта. |
Variant (числовые подтипы) | 16 байт | Любое числовое значение вплоть до границ диапазона для типа Double. |
Variant (строковые подтипы) | 22 байт + длина строки | Как для строки (String) переменной длины. |
Тип данных, определяемый пользователем (с помощью ключевого слова Type) | Объем определяется элементами | Диапазон каждого элемента определяется его типом данных. |
3.2.2 Определение типа данных в макросе
Для определения типа переменной можно использовать неявное объявление. Для этого используется специальный символ (см. таблицу 3.2.2).
Таблица 3.2.2 – Таблица специальных символов
Тип переменной | Символ, добавляемый к имени |
Integer (целое) | % |
Long (длинное целое) | & |
Single (с плавающей точкой обычной точности) | ! |
Double (с плавающей точкой двойной точности) | # |
Currency (денежный) | @ |
String (строка постоянной длины) | $ |
Пример использования неявного объявления типа переменной
msg$ = “Задача выполнена”
MsgBox msg$
Явное объявление осуществляется операторами Dim, private, Static, public, которые имеют следующий синтаксис:
Dim имяПеременной [As типДанных]
Private имяПеременной [As типДанных]
Static имяПеременной [As типДанных]
Public имяПеременной [As типДанных]
Операторы Dim, Private, static, public определяют область действия переменной. С помощью одного оператора вы можете объявлять несколько переменных, разделяя их запятыми. Примеры объявления переменных приведены ниже:
Private bInSuccess As Boolean
Dim strLastname As String, dblSum As Double
Для объявления строки с фиксированной длиной используется следующий синтаксис:
Dim имяПеременной As String * длинаПеременной
Параметр длинаПеременной указывает максимальное количество символов, отводимое переменной. Символ звездочки (*) указывает на то, что переменная имеет фиксированную длину.
Инструкции Defтип, используются на уровне модуля для задания типа данных, используемого по умолчанию для переменных, аргументов, передаваемых в процедуры, и значений, возвращаемых процедурами Function и Property Get, имена которых начинаются с соответствующих символов.
Синтаксис:
DefBool диапазонБукв[, диапазонБукв] . . .
DefByte диапазонБукв[, диапазонБукв] . . .
DefInt диапазонБукв[, диапазонБукв] . . .
DefLng диапазонБукв[, диапазонБукв] . . .
DefCur диапазонБукв[, диапазонБукв] . . .
DefSng диапазонБукв[, диапазонБукв] . . .
DefDbl диапазонБукв[, диапазонБукв] . . .
DefDec диапазонБукв[, диапазонБукв] . . .
DefDate диапазонБукв[, диапазонБукв] . . .
DefStr диапазонБукв[, диапазонБукв] . . .
DefObj диапазонБукв[, диапазонБукв] . . .
DefVar диапазонБукв[, диапазонБукв] . . .
Обязательный аргумент диапазонБукв имеет следующий синтаксис:
буква_1[-буква_2]
Аргументы буква_1 и буква_2 указывают диапазон имен, для которых задается тип данных по умолчанию. Каждый аргумент представляет первую букву имени переменной, аргумента, процедуры Function или Property Get и может быть любой буквой алфавита. Регистр символов в аргументе диапазонБукв не существенен.
Инструкции Defтип можно использовать только на уровне модуля (т.е. нельзя использовать внутри процедур).
Переменные, имена которых начинаются с букв "A" - "K",
будут по умолчанию Integer.
DefInt A-K
Переменные, имена которых начинаются с букв "L" - "Z",
будут по умолчанию String.
DefStr L-Z
CalcVar = 4 ' Инициализирует переменную типа Integer.
StringVar = "Всем привет" ' Инициализирует переменную типа String.
AnyVar = "Привет" ' Будет обнаружено несовпадение типов.
Dim Calc As Double ' Явно объявлена переменная типа Double.
Calc = 2.3455 ' Присваивает значение переменной типа Double.