Программа табулирование разветвляющейся функции вVВА

Private Sub CommandButton1_Click()

Dim i As Integer

Dim j As Integer

Dim x As Single

Dim xn As Single

Dim xk As Single

Dim dx As Single

Dim g As Single

xn = InputBox("Xn = ", "Ввод начального значения x", -3, 8000, 2000)

xk = InputBox("Xk = ", "Ввод конечного значения x", 7, 8000, 1000)

dx = InputBox("dX = ", "Ввод значения шага x", 0.5, 8000, 2000)

i = InputBox("i = ", "Ввод значения начала таблицы, строка i", 5, 8000, 1000)

j = InputBox("j = ", "Ввод значения начала таблицы, столбец j", 5, 8000, 2000)

x = xn: Cells(i, j) = "X(vba)": Cells(i, j + 1) = "G1(vba)": Cells(i, j + 2) = "G2(vba)"

10 Cells(i + 1, j) = x

If x <= 0 Then

g = Sin(x)

Cells(i + 1, j + 1) = g

Else

g = Exp(-x)

Cells(i + 1, j + 2) = g

End If

x = x + dx

i = i + 1

If x > xk Then GoTo 20 Else GoTo 10

End Sub

– Применен условный оператор, у которого в частях Then и Else находятся по два оператора, поэтому по грамматическим требованиям необходим переход на другую строку и завершается оператор End If.


Программа табулирования в VВА

Функции, разветвляющейся больше, чем один раз

Private Sub CommandButton1_Click()

Dim i As Integer

Dim j As Integer

Dim x As Single

Dim xn As Single

Dim xk As Single

Dim dx As Single

xn = InputBox("Xn = ", "Ввод начального значения x", -3, 8000, 2000)

xk = InputBox("Xk = ", "Ввод конечного значения x", 7, 8000, 1000)

dx = InputBox("dX = ", "Ввод значения шага x", 0.5, 8000, 2000)

i = InputBox("i = ", "Ввод значения начала таблицы, строка i", 5, 8000, 1000)

j = InputBox("j = ", "Ввод значения начала таблицы, столбец j", 6, 8000, 2000)

x = xn: Cells(i, j) = "X(vba)": Cells(i, j + 1) = "Z1(vba)": Cells(i, j + 2) = "Z2(vba)": Cells(i, j + 3) = "Z3(vba)"

10 Cells(i + 1, j) = x

If x <= 0 Then

z = Sin(x)

Cells(i + 1, j + 1) = z

End If

If (x > 0) And (x <= 3.5) Then

z = Exp(-x)

Cells(i + 1, j + 2) = z

End If

If x > 3.5 Then

z = Application.Ln(x)

Cells(i + 1, j + 3) = z

End If

x = x + dx

i = i + 1

If x > xk Then GoTo 20 Else GoTo 10

End Sub

Некоторые комментарии к программе:

– Применены три неполных условных оператора, по количеству условий задания. Так как у каждого оператора в частях Then находятся по два оператора, то по грамматическим требованиям необходим переход на другую строку и завершается каждый оператор End If;

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

– В программе используется сложное логическое выражение

(x > 0) And (x <= 3.5),

состоящее из двух простых, объединенных логической функцией And.

Программа табулирования двух функций вVВА


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: