Линейные программы. Расчет по формулам
В линейных программах выполняются расчеты по формулам и другие действия, не требующие разветвления процессов и их повторов.
Пример 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
Циклические программы
Если в программе надо повторить один оператор или последовательность операторов несколько раз, используются операторы циклов. Операторы циклов заключают такой оператор или группу операторов между ключевыми словами начала и конца цикла (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}.
Программа: