воскресенье, 29 апреля 2007
Нужна помощь в VBA: Есть блок-схема. Все проде бы просто, но не получается зациклить программу, т. е. надо, наверное, вписать всякие "Loop", "do", "While", но я не знаю, куда. Вот текст программы
читать дальшеOption Explicit
Dim a As Integer
Dim b As Integer
Dim e As Single
Dim n As Integer
Dim h As Single
Dim i As Integer
Dim x0 As Single
Dim x1 As Single
Dim x2 As Single
Dim y0 As Single
Dim y1 As Single
Dim y2 As Single
Dim S As Single
Dim I1 As Single
Dim I2 As Single
Sub lab_rab_1()
a = 1
b = 2
e = 10 ^ (-6)
I1 = 0
n = 4
h = (b - a) / 4
I2 = 0
i = 2
x2 = a + i * h
x1 = x2 - h
x0 = x1 - h
y0 = (x0 + 1.2) * Sin(x0 / 2)
y1 = (x1 + 1.2) * Sin(x1 / 2)
y2 = (x2 + 1.2) * Sin(x2 / 2)
S = y0 + 4 * y1 + y2
I2 = I2 + S
If i < n Then
i = i + 2
Else
I2 = I2 * (h / 3)
End If
Exit Do
If Abs(I1 - I2) < e Then MsgBox I2
Else
I1 = I2
n = n * 2
h = h / 2
End If
End Sub
и блок-схема
читать дальше
И еще одна задачка: нужно вывести все корни уравнения; если корней больше трех (как раз мой случай), то вывести первые три. Как это сделать? Текст
читать дальшеOption Explicit
Dim a As Single
Dim b As Single
Dim c As Single
Dim e As Single
Dim y1 As Single
Dim y2 As Single
Sub lab_rab_2()
a = InputBox("Введите нижний предел")
b = InputBox("Введите верхний предел")
e = 10 ^ (-6)
y1 = 1.2 - Log(a) - 4 * Cos(2 * a)
Do
c = (a + b) / 2
y2 = 1.2 - Log(c) - 4 * Cos(2 * c)
If Abs(y2) > e Then
If y1 * y2 > 0 Then
a = c
Else
b = c
End If
Else
MsgBox (c)
Exit Do
End If
Loop
End Sub
Если кто поможет, буду безмерно благодарна.