Sin(2 * x) + (Log(x - 1) + Exp(x + 3)) / ((x ^ 4 + 5 * x ^ 2 - 3) ^ (1/3) +  + (Tan(x ^ 2)) ^ 3

Оператор присваивания имеет следующий синтаксис:

<имя переменной> = <арифметическое выражение>

Пример записи оператора присваивания.

х = 2 * a + Log(a + 0.5)

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

1. Диалоговый ввод осуществляется с помощью встроенной функции InputBox, которая при работе программы выводит на экран свое окно. Например, при выполнении строки программного кода a = InputBox(«Введите фамилию») на экране появится диалоговое окно, в котором будет записан текст, заключенный в кавычки, а в полосе ввода числа будет мигать курсор (рис. 5.2). Нужно ввести запрашиваемое в окне значение и нажать клавишу ввода или щелкнуть мышью по кнопке <ОK>.

Рис. 5.2. Окно диалогового ввода функции InputBox

При этом возвращаемое функцией InputBox значение имеет тип String. Поэтому для ввода значения числовой переменной в программе необходимо дополнительно преобразовать получаемое значение к числовому типу функцией Val. Например, для ввода значения числа 5.25 в переменную b необходимо записать следующую строку программного кода:

b = Val(InputBox(«Введите значение b»))

При вводе вещественного числа целая часть отделяется от дробной точкой. Число в степенной форме, например 1,2 ⋅ 10 – 6, записывается при вводе как 1.2Е-6.

2. Можно ввести значения с листа Excel. Например, чтобы поместить значение в переменную х из ячейки A2, можно записать:

НЕ нашли? Не то? Что вы ищете?

x = Worksheets("Лист1").Range("A2")

или

x = Worksheets("Лист1").Cells(2, 1)

где Worksheets("Лист1") – рабочий лист Excel с именем "Лист1"; Range("A2") – ячейка с именем A2; Cells(2, 1) – ячейка с номером строки 2 и номером столбца 1 (т. е. ячейка A2).

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

1. Вывести значение переменной в окно сообщений можно с помощью функции MsgBox. Ее использование позволяет выводить и числа и произвольные текстовые сообщения на экран, при этом выводимое сообщение должно быть заключено в кавычки. Например, в результате выполнения строки MsgBox («Деление на нуль») на экране появится окно c текстом, приведенным в кавычках.

Число, выводимое в окно, можно форматировать (указывать количество знаков до и после запятой). Для этого используется функция Format(x, “##.##”), где x – переменная; ##.## – формат числа.

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

MsgBox ("Значение x=" & Format(x, "##.#"))

2. Можно вывести результаты в ячейки листа Excel. Например:

Worksheets("Лист1").Range("A3") = x

Здесь значение х выводится в ячейку A3:

Worksheets("Лист1").Cells(3, 1) = x

Значение х выводится в ячейку c номером строки 3 и номером столбца 1, т. е. в ячейку А3.

5.3. Линейные программы. Расчет по формулам

В линейных программах выполняются расчеты по формулам и другие действия, не требующие разветвления процессов и их повторов.

Пример 5.3. Для значений x = 15, a = 3.75 и m = 0.5 ∙ 10–4 вычислить значение z по следующим формулам: .

В первом варианте программы ввод исходных данных организован с клавиатуры, вывод – в окно сообщений:

Sub CommandButton1_Click()

Dim x As Single, a As Single, m As Single

Dim w As Single, z As Single

x = Val(InputBox("Введите x"))

a = Val(InputBox("Введите a"))

m = Val(InputBox("Введите m"))

w = 0.1 * x * a * (1 - m ^ 2)

z = Sin(w / (2 + w))

MsgBox (w) : MsgBox (z)  ‘ два оператора на одной строчке

End Sub

Во втором варианте программы ввод данных организован из ячеек листа Excel, вывод – в ячейки листа. Используются объекты Range и Cells:

Sub CommandButton1_Click()

Dim x As Single, a As Single, m As Single

Dim w As Single, z As Single

a = Worksheets("Лист1").Range("B3")

m = Worksheets("Лист1").Range("B4")

w = 0.1 * x * a * (1 - m ^ 2)

z = Sin(w / (2 + w))

Worksheets("Лист1").Range("B8") = w

Worksheets("Лист1").Cells(2,9) = z

End Sub

5.4. Циклические программы

Если в программе надо повторить один оператор или последовательность операторов несколько раз, используются операторы циклов. Операторы циклов заключают такой оператор или группу операторов между ключевыми словами начала и конца цикла (For...Next или Do...Loop) и определяют условия повтора выполнения.

Циклы For…Next используются, когда заранее определено, сколько раз должно выполняться повторение группы операторов:

For <переменная> = <нач. знач.> То <кон. знач.> Step <приращение>

<оператор1>

<оператор2>

Next

Например, чтобы вывести таблицу значений аргумента х и функции Sin(x) на интервале от 0 до 1 с приращением значения аргумента 0.1, необходимо записать:

For x = 0 To 1 Step 0.1

y = Sin(x)

MsgBox (y)

Next

Если необходимо вывести в этом фрагменте программы результаты в первый столбец, начиная с первой строки на рабочем листе с именем Лист1, то программа может выглядеть так:

i = 1

For x = 0 To 1 Step 0.1

y = Sin(x)

Worksheets(“Лист1”).Cells(i, 1) = y

i = i+1

Next

Когда Step отсутствует, то приращение равно единице.

Циклы типа Do...Loop используются тогда, когда не известно, сколько раз должно быть повторено выполнение группы операторов. Такой цикл продолжает работу до тех пор, пока не будет выполнено определенное условие. Существуют 4 типа операторов цикла Do...Loop:

1. Цикл с ключевым словом While продолжает свою работу, пока условие остается истинным, т. е. условие выполняется, и задается в двух вариантах, представленных ниже.

Do While <условие>

<операторы >

Loop

Условие проверяется до того, как выполнится группа операторов, образующих тело цикла

Do

<операторы>

Loop While <условие>

Условие проверяется после того, как операторы, составляющие тело цикла, будут выполнены хотя бы один раз

2. Цикл с ключевым словом Until продолжает свою работу, пока условие является ложным, т. е. условие не выполняется, и задается в двух вариантах, приведенных ниже.

Do Until <условие>

<операторы>

Loop

Условие проверяется до того, как выполнится группа операторов, образующих тело цикла

Do

<операторы>

Loop Until <условие>

Условие проверяется после того, как операторы, составляющие тело цикла, будут выполнены хотя бы один раз

Пример 5.3. Пусть необходимо заполнить первый столбец на рабочем листе результатами вычислений по формуле

при z = {1; 4; 7.5; 9; 15}.

Программа:

Sub CommandButton1_Click()

For i = 1 To 5

z = Val(InputBox("Введите значение z"))

q = Sqr(z ^ 2 + 5 * z) * Log(z + 0.33)

Worksheets(“Лист1”).Cells (i, 1) = q

Next i

End Sub

Пример 5.4. Вычислить значения t по формуле:

t = sin2(x) + e3-x, x = 3(0.1)4 (х меняется от 3 до 4 с шагом 0,1).

Программа:

Sub CommandButton1_Click()

x = 3 : n = 1

Do While x <= 4

t = Sin(x) ^ 2 + Exp(3 - x)

Worksheets(“Лист1”).Cells (1, n) = t

x = x + 0.1

n = n + 1

Loop

End Sub

В этой программе результаты размещаются в первой строке на рабочем листе Excel.

Отладка программы. Если при вводе оператора строчка помечается красным цветом, значит, имеется ошибка в записи оператора (отсутствуют нужные пробелы, количество закрывающих скобок не равно количеству открывающих, вместо точки в числе стоит запятая и т. п.). Надо проанализировать запись и исправить ошибки.

При возникновении ошибки во время запуска программы (например, деление на 0) происходит прерывание выполнения программы и вывод сообщения о типе ошибки. В окне сообщения можно выбрать режим остановки программы (End) или режим перехода в окно отладки программы (Debug), при котором строка с ошибкой или процедура, где возникла ошибка, будет подсвечена желтым цветом.

Для исправления ошибки можно прервать программу, нажав кнопку Reset на панели инструментов редактора VBA, исправить ошибку и запустить программу заново, нажав кнопку Run .

5.5. Задание для выполнения на компьютере

1. В табл. 5.2 приведены формулы и три варианта исходных данных, по которым можно составить три программы с одними и теми же расчетными формулами. Номер варианта (строки из таблицы) для каждого студента определяет преподаватель.

Таблица 5.2

Исходные данные для расчета

№ п/п

Формулы для вычислений

Исходные данные

1 вариант

2 и 3 варианты

1

2

3

4

1

2

3


Продолжение табл. 5.2

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36