Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ММ для Лабораторных Работ_ПТМ_НВИ11.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
6.94 Mб
Скачать

I. Построить в одной системе координат

  1. Y = aCos(x); Z = b Cos 2 (2x) , при x [-2;2], x=0,2

  2. Y = aSin(x) – a Cos(x); Z = Cos2(2x) – qSin(x), при x [-1,8;2], x=0,25

  3. Y = aSin(x)- Cos(3x); Z = Cos(2x) – bSin3(x) , при x [-3;3,4], x=0,8

  4. Y = qSin(2x)Cos(x)–Cos2(3x); Z = qCos2(2x)–Sin (3x), при x[-1,1], x=0,05

  5. Y = aSin(x)Cos(x); Z = Cos2(x)Sin(sx), при x [0;4], x=0,4

  6. Y = sSin(3x)Cos(2x); Z = Cos3(qx)Sin(x) , при x [-3;0], x=0,3

  7. Y = aSin(2x)Cos(4x); Z = Cos 2(bx)-Cos(x)Sin(x) , при x [-3,3;0,9], x=0,3

  8. Y = Sin(jx)+bSin(2x)Cos(3x); Z = Cos(x)-Cos(dx)Sin2(x), при x [0;2], x=0,1

  9. Y = Cos(ax)Sin(x)+qSin(3x)Cos(2x); Z = Cos 2(x)-Cos(ax), при x [0;3], x=0,2

  10. Y = fSin(2x)Cos(x)+Sin(x); Z = Cos (ax)Sin2(x)-Cos(4x), при x [0;2], x=0,1

II. Построить графики следующих функций:

  1. Z = , при x[-1,4;1,4], x=0,1

  1. Y = , при x[-1,5;1,9], x=0,3

  2. G = , при x [-1,5;1,5], x=0,1

  1. Y = , при x[-1,5;1,9], x=0,3

  1. Y = , при x [-2;2], x=0,2

  1. Y = , при x[-1,7;1,3], x=0,3

  1. G = , при x [-1,5;1,5], x=0,1

  1. G = , при x [-2;2], x=0,2

  1. G = , при x [-2;2], x=0,1

  1. Z = , при x [-2;1,4], x=0,2

  1. G = , при x [-1,5;1,5], x=0,1

  1. Y = , при x [-1,5;1,5], x=0,1

  1. Z = , при x [-1,8;1,8], x=0,1

  1. = , при x[-2;1,8], x=0,2

  1. Z = , при x [-1,8;1,8], x=0,2

  1. Z = , при x[-1,6;2,5], x=0,3

  1. Z = , при x [-1,8;1,6], x=0,2

  1. Z = , при x[-1,4;1,4], x=0,1

  2. Y = , при x[-1,5;1,9], x=0,3

  1. G = , при x[-1,4;1,8], x=0,2

Лабораторная работа № 7

Основы программирования в VBA.

Visual Basic for Applications

Язык Visual Basic for Applications является одной из версий популярного языка разработки приложений Visual Basic.

Отличия двух языков:

  • Язык Visual Basic разрабатывался для создания законченных самостоятельных приложений, VBA используется для автоматизации существующих приложений

  • Visual Basic имеет собственную среду программирования, VBA использует среду приложения

  • Приложения, созданные в Visual Basic, можно скомпилировать в .EXE файлы. VBA - приложения могут выполняться только в том приложении, в котором они были созданы

Общими для VBA и VB являются:

  • Язык программирования (типы данных, правила объявления и использования переменных, процедур и функций)

  • Средства разработки и отладки программ

  • Аналогичные модели объектно-ориентированного и событийно-управляемого программирования

Процедуры

Процедура— это именованный блок операторов VBA, расположенная в модуле

В VBA можно выполнить только тот программный код, который содержится в какой-либо процедуре. Вне процедуры, в начале модуля, могут располагаться только установка опций(например Option Explicit - требование обязательного объявления переменных) и объявление переменных и констант, общих для модуля или проекта.

  • Набор команд, который предполагается использовать многократно, записывается в виде процедуры пользователя.

  • Повторное использование отлаженного кода при применении процедуры пользователя позволяет сократить время разработки программы, а также ее размер.

  • Детали вычислений заменяются в основной программе оператором вызова соответствующей процедуры пользователя

  • Такой подход улучшает читабельность программы и позволяет абстрагироваться от деталей вычислений.

Свойства процедуры

  • Каждая процедура имеет один вход. При вызове процедуры управление передается ее первой инструкции.

  • На время выполнения вызываемой процедуры выполнение вызывающего ее процедуры откладывается. В любой момент времени выполняется только одна процедура.

  • После завершения процедуры управление всегда возвращается в вызывающую процедуру на инструкцию, следующую непосредственно за вызовом процедуры.

В VBA предусмотрены следующие типы процедур:

  • процедура типа Sub (подпрограмма)— универсальная процедура для выполнения каких-либо действий, типа ввода данных(например массива), вывода, изменения элементов массива и т.п..

Синтаксис инструкции Sub

[Private | Public] Sub имяПроцедуры ([списокАргументов])

[инструкции]

[Exit Sub]

[инструкции]

End Sub

процедура типа Function (функция) — набор инструкций для вычисления сложного выражения.

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

Синтаксис инструкции Function

[Private | Public] Function имяФункции ([список_Аргументов]) [As тип]

[инструкции]

[имяФункции = выражение]

[Exit Function]

[инструкции]

[имяФункции = выражение]

End Function

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

Постановка задачи следующая:

Заполнить вектор (одномерный массив) B кубическими корнями элементов вектора А. размерность векторов, разумеется, одинаковые.

Private Sub main() 'Главная процедура

Dim A() As Double, B() As Double, n As Integer, i As Double

n = InputBox("Введи размер вктора")

ReDim A(1 To n)

ReDim B(1 To n)

ВводВектКлав A, n

ПечатВект A, n

ЗаполнВект B, A, n

ПечатВект B, n

End Sub

Private Sub ЗаполнВект(вект1, вект2, размер)

Dim i As Integer

For i = 1 To размер

вект1(i) = фунКубКорень(вект2(i))

Next

End Sub

Public Sub ВводВектКлав(вектор, размер As Integer)

Dim i As Integer

For i = 1 To размер

вектор(i) = InputBox("Введи элемент №" & i)

Next

End Sub

Public Sub ПечатВект(вектор, размер As Integer)

Dim i As Integer

Debug.Print

For i = 1 To размер

Debug.Print вектор(i),

Next

Debug.Print

End SubPublic Sub ЗаполнВект(вект1, вект2, размер)

Dim i As Integer

For i = 1 To размер

вект1(i) = фунКубКорень(вект2(i))

Next

End Sub

Public Function фунКубКорень(x)

If x >= 0 Then фунКубКорень = x ^ (1 / 3): Exit Function

If x < 0 Then фунКубКорень = -Abs(x) ^ (1 / 3)

End Function

В главной (основной) процедуре main объявляются два вещественных вектора A и B, а так же размерность векторов n.

Размер вектора n вводится с клавиатуры, а затем вызывается процедура пользователя ВводВектКлав с фактическими параметрами: имя вектора А размерностью n. Вызванная процедура заполняет вектор числами, введенными с клавиатуры, и возвращает управление в основную процедуру. Затем вызывается процедура ПечатВект с фактическими параметрами А и n. После печати вектора А вызывается процедура заполнения, куда передаются: вектор В для заполнения, вектор А и их размерность.

Так как в VBA не существует функции кубического корня, то создана функция пользователя с именем фунКубКорень, которая позволяет вычислять кубический корень, в том числе из отрицательного числа. После возврата в основную процедуру из процедуры ЗаполнВект, опять вызывается процедура ПечатВект, но теперь в качестве фактического параметра выдается вектор В и его размер. Имена аргументов процедур пользователей (вектор, размер и т.п.) написаны на кириллице только для того, чтобы подчеркнуть, что это формальные аргументы. Правильнее и проще задать эти имена латиницей, например V1, N, и т.п. Имена процедур и функций пользователя имеет смысл задавать по-русски, когда из названия будет ясно назначение этих процедур.

Проект содержит два модуля. В модуле Module1 находится основная процедуры main и ЗаполнВект, в модуле с именем библиотека находятся общедоступные (Public) процедуры.

Задание: создайте в VBA этот проект и выполните его в пошаговом режиме (запуск клавишей F8), наблюдая вызовы процедур и изменение значений переменных в окне Locals (вызов окна View-> Locals Window).

Рисунок 1

Объекты, методы, свойства и события в VBA

VBA относится к языкам объектно-ориентированного про­граммирования. Объект - основной элемент VBA Excel. В VBA объектами яв­ляются рабочая книга, рабочий лист и его составляющие, напри­мер:

Worksheets- листы Excel;

Cell - ячейка;

Range - диапазон ячеек;

Application - приложение;

UserForm - пользовательская форма.

CommandButton -кнопка, и другие.

Работа с объектами возможна через его свойства и методы.

Свойства служат для задания характеристик объек­тов. Например, задания зна­чений , размера и цвета шрифта или состояние объекта (доступность, видимость),.Чтобы задать или изменить характеристику объекта, надо изменить значение его свойства, т.е. присвоить ему определенные значения.

Синтаксис задания значения свойства следующий: Объект.Свойство = Значение Свойства

где:

Объект - обозначает имя объекта;

Свойство - имя свойства, которому присваивается значение, имя объекта отделяется от имени свойства точкой.

Range(“B2”).Value = 7.8 - поместить в ячейку В2 значение 7.8 .

Range("D2:F10"). Font.Size =20 установить размер шрифта 20 в диапазон ячеек D2:F10.

Cells(3,4).Value=0.875 поместить в ячейку в 3 строке и 4 столбце (“D3”) число 0,875.

Свойствами объекта могут быть другие (вложенные) объекты, например:

Worksheets(2).Cells(1, 2).Value = “Пример” – обращение к ячейке на втором рабочем листе .

Лист1.Range(“B2”).Cells(1,1) –нумерации начинается с ячейки “B2”.

Номера строк и столбцов могут быть целочисленными переменными, например, следующая процедура заполняет пять ячеек на рабоче листе с именем «Лист1», второй столбец, начиная с третьей строки, квадратами чисел:

Private Sub Пример1()

For i = 1 To 5

Лист1.Cells(2 + i, 2) = i ^ 2

Next

End Sub

Методы это действия, совершаемые над объектами. Например, ячейку или диапазон ячеек можно очистить (Clear), можно выбрать (Select), приложение закрыть (Quit), пользовательскую форму показать (Show) или скрыть (Hide). Название метода отделяется от на­звания объекта точкой:

название объект . название метода

примеры использования методов:

Range("B2:E2").Select - выбрать диапазон ячеек B2:E2;

Range("C1:C5").Clear - очистить диапазон ячеек C1:C5;

Application.Quit - выйти из приложения.

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

В языке программирования VBA для каждого объекта определен набор стандартных событий. Например, стандартное со бытие для объекта CommandButton (кнопка) - Click (щелчок мышью).

Если пользователь нажимает на кнопку, то это событие. На это событие должен быть отклик, т.е. выполнение какой-либо процедуры Такая процедура называется процедурой обработки события и имеет стандартное имя – «ИмяОбъекта_ИмяСобытия», например CommandButton1_Click.

Двойной щелчок на кнопке, автоматически создаст в модуле активного листа заготовку процедуры, запускаемой по щелчку по этой кнопке.

Создадим проект демонстрирующий чтение данных в массив с активного в данный момент рабочего листа Excel и вывод массива на лист.

Рисунок 2

Программа запускается щелчком по командной кнопке с именем CommandButton1, расположенной на листе Excel. Процедура обработки события CommandButton1_Click, которая должна находится в модуле этого листа, запрашивает размер массива, переобъявляет его и вызывает процедуру чтения данных «ЧтениеВектораЛист» из стандартного модуля с именем «библиотека» , передавая ей в качестве фактических параметров имя массива (A) и его размер (n) , а затем процедуру вывода на лист « ВыводВектораЛист» с теми же параметрами. Чтение и вывод осуществляются горизонтально , начиная с ячейки, адрес которой запрашивается.

Наберите в редакторе VBA тексты процедур и выполните их, сначала в пошаговом режиме (нажав клавишу F8, при нахождении курсора в процедуре CommandButton1_Click, затем запустите процедуру командной кнопкой с рабочего листа. Инструкция Range(C).Cells(1, i).Select введена только для демонстрации хода выполнения процедур.