Как задать условие так, чтобы работа процедуры была непрерывной? - VB
Формулировка задачи:
Пишу программу на VB6.Это программа для расчёта коэффициентов.Изначально пользователь задаёт начальные значения n и k.Затем по формулам рассчитывается n1 и k1.Полученные значения нужно сохранить и записать вместо n и k начальных,заданных пользователем.И такие действия осуществляются пока не будет выполнено условие.
Не могу догнать,как задать условие так,чтобы работа процедуры была непрерывной,чтобы по рассчитанным по формулам значениям производились расчёты заново.Объяснил немного сумбурно,но надеюсь кто-нибудь поймет о чем я.Ниже приведу пример,но скорее всего думаю,что написан он не правильно.За любую помощь буду благодарен.
Решение задачи: «Как задать условие так, чтобы работа процедуры была непрерывной?»
textual
Листинг программы
Private Sub Command2_Click() Dim n1 As Double, n2 As Double, n3 As Double, k2 As Double, k3 As Double, Tmax As Double, Tmin As Double, T As Double Dim s1 As Double, s2 As Double, s3 As Double, s4 As Double, s5 As Double, s6 As Double, s7 As Double, s8 As Double, s9 As Double, s10 As Double, s11 As Double, s12 As Double, s13 As Double, s14 As Double, s15 As Double, s16 As Double, s17 As Double, s18 As Double, s19 As Double, s20 As Double, s21 As Double, s22 As Double, s23 As Double, m1 As Double, m2 As Double, m3 As Double, m4 As Double, m5 As Double, m6 As Double, m7 As Double, m8 As Double, m9 As Double Dim Add1 As Double, Add2 As Double, Add3 As Double, Add4 As Double, Add5 As Double Dim A As Double, B As Double, C As Double, d As Double, E As Double, F As Double, r As Double, p As Double, Re1 As Double, Re2 As Double, Re3 As Double, Re4 As Double, Im1 As Double, Im2 As Double, Im3 As Double, Im4 As Double 'Зададим начальные значения n1 = Val(Text1.Text) n2 = Val(Text2.Text) n3 = Val(Text3.Text) k2 = Val(Text4.Text) k3 = Val(Text5.Text) Tmax = Val(Text6.Text) Tmin = Val(Text7.Text) While (n2<>3)'пока n2 не равно трем 'производим расчёты n2 T = Tmax / Tmin s1 = Format(n1 ^ 2 * n2 ^ 2, "#,##0.00") s2 = Format(2 * n2 * n1 ^ 2 * n3, "#,##0.00") s3 = Format(2 * n3 ^ 2 * n1 ^ 2, "#,##0.00") s4 = Format(2 * n1 ^ 2, "#,##0.00") s5 = Format(4 * k3 * n1 ^ 2, "#,##0.00") s6 = Format(2 * k3 ^ 2 * n1 ^ 2, "#,##0.00") s7 = Format(2 * n2 ^ 4, "#,##0.00") s8 = Format(2 * n2 ^ 3 * n3, "#,##0.00") s9 = Format(2 * n3 ^ 2 * n2 ^ 2, "#,##0.00") s10 = Format(4 * n2 ^ 2, "#,##0.00") s11 = Format(4 * k3 * n2 ^ 2, "#,##0.00") s12 = Format(2 * k3 ^ 2 * n2 ^ 2, "#,##0.00") s13 = Format(2 * n2 * n3, "#,##0.00") s14 = Format(2 * n3 ^ 2, "#,##0.00") s15 = 2 s16 = Format(4 * k3, "#,##0.00") s17 = Format(2 * k3 ^ 2, "#,##0.00") s18 = Format(2 * n1 * n2 ^ 3, "#,##0.00") s19 = Format(8 * n1 * n2 ^ 2 * n3, "#,##0.00") s20 = Format(2 * n1 * n2 * n3 ^ 2, "#,##0.00") s21 = Format(2 * n1 * n2, "#,##0.00") s22 = Format(4 * n1 * n2 * k3, "#,##0.00") s23 = Format(2 * n1 * n2 * k3 ^ 2, "#,##0.00") m1 = Format(T * n2 * n3 * n1 ^ 2, "#,##0.00") m2 = Format(T * 2 * k3 * n1 ^ 2, "#,##0.00") m3 = Format(T * 2 * n2 ^ 3 * n3, "#,##0.00") m4 = Format(T * 2 * n2 * n3, "#,##0.00") m5 = Format(T * 2 * n1 * n2 ^ 3, "#,##0.00") m6 = Format(T * 4 * n1 * n2 * n3 ^ 2, "#,##0.00") m7 = Format(T * 2 * n1 * n2, "#,##0.00") m8 = Format(T * 4 * n1 * n2 * k3, "#,##0.00") m9 = Format(T * 2 * n1 * n2 * k3 ^ 2, "#,##0.00") Add1 = s15 Add2 = (-s16) Add3 = (s4 + s10 - s13 + s14 + s17 - s21 - m4 - m7 + m8) Add4 = (-s5 - s11 + s22 - m2) Add5 = (s1 - s2 + s3 + s6 + s7 - s8 + s9 + s12 - s18 + s19 - s20 - s23 - m1 - m3 - m5 - m6 - m9) Text10.Text = Add1 & "(n2^4)+" & Add2 & "(n2^3)+" & Add3 & "(n2^2)+" & Add4 & "(n2)+" & Add5 A1 = Add1 B1 = Add2 C1 = Add3 d1 = Add4 E1 = Add5 F1 = 0 p1 = (8 * A1 * C1 - 3 * B1 ^ 2) / (8 * A1 ^ 2) r1 = (16 * A1 * B1 ^ 2 * C1 - 64 * A1 ^ 2 * B1 * d1 - 3 * B1 ^ 4 + 256 * A1 ^ 3 * E) / (256 * A1 ^ 4) If ((p1 ^ 2 - 4 * r1) > 0) Or ((p1 ^ 2 - 4 * r1) = 0) Then If ((-p1 + Sqr(p1 ^ 2 - 4 * r1)) >= 0) Then Re11 = Sqr((-p1 + Sqr(p1 ^ 2 - 4 * r1)) / 2) - B1 / (4 * A1) Im11 = 0 Re21 = -Sqr((-p1 + Sqr(p1 ^ 2 - 4 * r1)) / 2) - B1 / (4 * A1) Im21 = 0 Else Re11 = -B1 / (4 * A1) Im11 = Sqr((p1 - Sqr(p1 ^ 2 - 4 * r1)) / 2) Re21 = -B1 / (4 * A1) Im21 = -Sqr((p1 - Sqr(p1 ^ 2 - 4 * r1)) / 2) End If End If If ((-p1 - Sqr(Abs(p1 ^ 2 - 4 * r1))) >= 0) Then Re31 = Sqr((-p1 - Sqr(p1 ^ 2 - 4 * r1)) / 2) - B1 / (4 * A1) Im31 = 0 Re41 = -Sqr((-p1 - Sqr(p1 ^ 2 - 4 * r1)) / 2) - B1 / (4 * A1) Im41 = 0 Else Re31 = -B1 / (4 * A1) Im31 = Sqr((p1 + Sqr(Abs(p1 ^ 2 - 4 * r1))) / 2) Re41 = -B1 / (4 * A1) Im41 = -Sqr((p1 + Sqr(Abs(p1 ^ 2 - 4 * r1))) / 2) End If If p1 * p1 - 4 * r1 < 0 Then If p1 < 0 Then F1 = Atn(-Sqr(Abs(4 * r1 - p1 ^ 2)) / p1) End If If p1 > 0 Then F1 = Atn(-Sqr(Abs(4 * r1 - p1 ^ 2) / p1)) + 3.14159265388979 If p1 = 0 Then F1 = 3.14159265388979 / 2 Re11 = Sqr(Sqr(Abs(r1))) * Cos(F1 / 2) - B1 / (4 * A1) Im11 = Sqr(Sqr(Abs(r1))) * Sin(F1 / 2) Re21 = Sqr(Sqr(Abs(r1))) * Cos(F1 / 2) - B1 / (4 * A1) Im21 = -Sqr(Sqr(Abs(r1))) * Sin(F1 / 2) Re31 = -Sqr(Sqr(Abs(r1))) * Cos(F1 / 2) - B1 / (4 * A1) Im31 = Sqr(Sqr(Abs(r1))) * Sin(F1 / 2) Re41 = -Sqr(Sqr(Abs(r1))) * Cos(F1 / 2) - B1 / (4 * A1) Im41 = -Sqr(Sqr(Abs(r1))) * Sin(F1 / 2) 'Закончили расчёты и проверяем какое из четырех значений будет равно n2 'обновим значение n2 и заново будем производить с ним расчёты If (1 < Re11 < 3) Then k2 = Re11 End If If (1 < Re21 < 3) Then k2 = Re21 End If If (1 < Re31 < 3) Then k2 = Re31 End If If (1 < Re41 < 3) Then k2 = Re41 End If End If End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д