Расчёт выхода целлюлозы при варке по математической модели. Алгоритм работающей программы, страница 4

'запрос у пользователя ввода 2-ого значения для расчёта

Dim X2E As String

X2E = InputBox("Введите время варки [" + CStr(Xmin2) + ";" + CStr(Xmax2) + "]", "Расчёт выхода целлюлозы")

'условие проверки того, что пользователь ввёл только числовое значение

If IsNumeric(X2E) = False Then

MsgBox "Время варки введено не верно!", vbOKOnly + vbInformation, "Расчёт выхода целлюлозы"

Exit Sub

End If

'условие проверки отличия введённого значения от минимально и максимально допустимого значения

If CSng(X2E) < Xmin2 Or CSng(X2E) > Xmax2 Then

MsgBox "Время варки выходит за предел допустимых значений!", vbOKOnly + vbInformation, "Расчёт выхода целлюлозы"

Exit Sub

End If

X2 = CSng(X2E)

lblX2.Caption = Format(X2E, "##0.00")

myRas 'выполнение функции основного расчёта программы

End Sub

Private Sub mnuzap3_Click()

'запрос у пользователя 3-ого значения для расчёта

Dim X3E As String

X3E = InputBox("Введите температуру варки [" + CStr(Xmin3) + ";" + CStr(Xmax3) + "]", "Расчёт выхода целлюлозы")

'условие проверки того, что пользователь ввёл только числовое значение

If IsNumeric(X3E) = False Then

MsgBox "Температура варки введена не верно!", vbOKOnly + vbInformation, "Расчёт выхода целлюлозы"

Exit Sub

End If

'условие проверки отличия введённого значения от минимально и максимально допустимого значения

If CSng(X3E) < Xmin3 Or CSng(X3E) > Xmax3 Then

MsgBox "Температура выходит за предел допустимых значений!", vbOKOnly + vbInformation, "Расчёт выхода целлюлозы"

Exit Sub

End If

X3 = CSng(X3E)

lblX3.Caption = Format(X3E, "##0.00")

myRas 'выполнение функции основного расчёта программы

End Sub

Private Sub myRas()

'Функция основного расчёта

'условие проверки наличия данных необходимых для расчёта

If (Len(lblX1.Caption) <> 0 And Len(lblX2.Caption) <> 0 And Len(lblX3.Caption) <> 0) Then

DX1 = (X1 - (Xmax1 + Xmin1) / 2) / ((Xmax1 - Xmin1) / 2)

DX2 = (X2 - (Xmax2 + Xmin2) / 2) / ((Xmax2 - Xmin2) / 2)

DX3 = (X3 - (Xmax3 + Xmin3) / 2) / ((Xmax3 - Xmin3) / 2)

Y = B0 + B1 * DX1 + B2 * DX2 + B3 * DX3 + B12 * DX1 * DX2 + B13 * DX1 * DX3 + B23 * DX2 * DX3 + B123 * DX1 * DX2 * DX3

Y = Round(Y)

lblY.Caption = CStr(Y) + " %"

mnufsave.Enabled = True

End If

End Sub

Код формы “О программе” (FAbout.frm)

Private Sub cmdExit_Click()

'выход из программы в случае, если пользователь нажал кнопку "Да" в MsgBox

Dim rv As String

rv = MsgBox("Вы дейсвительно хотите выйти из программы?", vbDefaultButton2 + vbYesNo + vbQuestion, "Выход")

If rv = vbYes Then

End

End If

End Sub

Private Sub cmdOk_Click()

'открытие главного окна программы

FAbout.Hide

FMainForm.Show

End Sub

Контрольный пример

X1, ступенчатость: 2

X2, время варки, час: 3.74

X3, температура варки, °С: 180.76

Y, выход целлюлозы, %: 52

DX1 = (2 - (2 + 1) / 2) / ((2 - 1) / 2)=-1

DX2 = (3.74 - (4 + 3) / 2) / ((4 - 3) / 2)=0.48

DX3 = (180.76 - (185 + 180) / 2) / ((185 - 180) / 2)=-0.7

Y = 53.14 + (-0.59) * (-1) + (-2.19) * 0.48 + (-0.89) * (-0.7) + (-0.86) * (-1) * 0.48 + (-1.14) * (-1) * (-0.7) + 1.09 * 0.48 * (-0.7) + (-0.29) * (-1) * 0.48 * (-0.7) = 52