Вопрос
Private Sub Command1_Click()
Dim paramA As Integer
Dim paramB As Integer
Dim paramC As Integer
Dim paramD As Integer
Dim paramD1 As Integer
Dim paramD2 As Integer
Dim paramK1 As Integer
Dim paramK2 As Integer
Dim paramK3 As Integer
Dim paramK4 As Integer
Dim paramK5 As Integer
Dim paramK6 As Integer
Dim paramK11 As Double
Dim paramK22 As Double
Dim paramK33 As Double
Dim paramK44 As Double
Dim paramK55 As Double
Dim paramK66 As Double
Dim t111 As Double
Dim t112 As Double
Dim t113 As Double
Dim r1%, t1%, r11%, t11%, u%, r111%, p%
paramA = Text1.Text
paramB = Text2.Text
paramC = Text9.Text
paramK1 = Text3.Text
paramK2 = Text4.Text
paramK3 = Text5.Text
paramK4 = Text6.Text
paramK5 = Text7.Text
paramK6 = Text8.Text
paramK11 = Text10.Text
paramK22 = Text11.Text
paramK33 = Text12.Text
paramK44 = Text13.Text
paramK55 = Text14.Text
paramK66 = Text15.Text
Label1.Caption = " "
Label2.Caption = " "
Label3.Caption = " "
Label4.Caption = " "
Label5.Caption = " "
For u = 1 To paramA
r1 = Int(Rnd * 100) + 1
t1 = -Log(r1 / 100) * 3600 / (paramB + 1)
r111 = Int(Rnd * 100) + 1
t111 = Format(paramK11 + paramK22 * Sqr(2) * Sqr(-(Log(r111 / 100) * paramK22 * Sqr(2 * 3.14))), "0.00")
t112 = Format(paramK33 + paramK44 * Sqr(2) * Sqr(-(Log(r111 / 100) * paramK44 * Sqr(2 * 3.14))), "0.00")
t113 = Format(paramK55 + paramK66 * Sqr(2) * Sqr(-(Log(r111 / 100) * paramK66 * Sqr(2 * 3.14))), "0.00")
Label3 = Label3 & r111 & " "
If u Mod 1 = 0 Then Label3 = Label3 & vbCrLf
If (r111 > paramK1 And r111 < paramK2) Then Label2 = Label2 & t1 & "R" & t111 & vbCrLf
If (r111 > paramK3 And r111 < paramK4) Then Label2 = Label2 & "-" & vbCrLf
If (r111 > paramK5 And r111 < paramK6) Then Label2 = Label2 & "-" & vbCrLf
If (r111 > paramK1 And r111 < paramK2) Then Label4 = Label4 & "-" & vbCrLf
If (r111 > paramK3 And r111 < paramK4) Then Label4 = Label4 & t1 & "L" & t112 & vbCrLf
If (r111 > paramK5 And r111 < paramK6) Then Label4 = Label4 & "-" & vbCrLf
If (r111 > paramK1 And r111 < paramK2) Then Label5 = Label5 & "-" & vbCrLf
If (r111 > paramK3 And r111 < paramK4) Then Label5 = Label5 & "-" & vbCrLf
If (r111 > paramK5 And r111 < paramK6) Then Label5 = Label5 & t1 & "F" & t113 & vbCrLf
Next u
End Sub
Private Sub Form_Load()
Randomize
End Sub
Почему когда я ввожу paramA(колличество чисел) например цифру 10 то лейбл3 он мне записывает столбик из 10 чисел как и надо, а в 3 дпугих лейблах нет. Те в лейблах 2,4,5 в сумме должно появиться то же 10 цифр, допустим 3цифры в лебле 2, 4 цифры в лебле4 и 3 цифры в лебле 5, иногда он выбрасывает нужное колличество цифр а иногда одна теряеться, в сумме дает 9. ИИз-за чего это может быть?
t111 = Format(paramK11 + paramK22 * Sqr(2) * Sqr(-(Log(r111 / 100) * paramK22 * Sqr(2 * 3.14))), "0.00")
t112 = Format(paramK33 + paramK44 * Sqr(2) * Sqr(-(Log(r111 / 100) * paramK44 * Sqr(2 * 3.14))), "0.00")
t113 = Format(paramK55 + paramK66 * Sqr(2) * Sqr(-(Log(r111 / 100) * paramK66 * Sqr(2 * 3.14))), "0.00")
Вопервых нужно разобраться в этих вырожениях
точнее вот [COLOR="#006400"]paramK11 + paramK22 * Sqr(2)[/COLOR]
Что Вам нужно сначало сложить [COLOR="#006400"]paramK11 + paramK22[/COLOR],а потом умножить на [COLOR="#006400"]Sqr(2)[/COLOR]?
Если сначало сложить тогда
t111 = Format[COLOR="#ff00ff"]([/COLOR](paramK11 + paramK22[COLOR="#ff00ff"])[/COLOR] * Sqr(2) * Sqr(-(Log(r111 / 100) * paramK22 * Sqr(2 * 3.14))), "0.00")
t112 = Format[COLOR="#ff00ff"]([/COLOR](paramK33 + paramK44[COLOR="#ff00ff"])[/COLOR] * Sqr(2) * Sqr(-(Log(r111 / 100) * paramK44 * Sqr(2 * 3.14))), "0.00")
t113 = Format[COLOR="#ff00ff"]([/COLOR](paramK55 + paramK66[COLOR="#ff00ff"])[/COLOR] * Sqr(2) * Sqr(-(Log(r111 / 100) * paramK66 * Sqr(2 * 3.14))), "0.00")
Нужно проверять условия во всех [COLOR="blue"]IF THEN[/COLOR]
т.к стоит [COLOR="blue"]AND[/COLOR] это значит,что два условия должны соответствовать
точнее вот paramK11 + paramK22 * Sqr(2)
Что Вам нужно сначало сложить paramK11 + paramK22,а потом умножить на Sqr(2)?
Нет тут все правильно сначала умножаеться параметрК22 на корень а потом прибовляеться парамК11
т.к стоит AND это значит,что два условия должны соответствовать
А как это иправить убрать AND? Мне нужно чтоб програма проверяла входит ли r111 в промежуток например от 0 до 34включительно, если входит то Then Label2 = Label2 & t1 & "R" & t111 & vbCrLf
Сразу так и не ответишь. Нужно знать диапазон всех переменных.
Можно заменить [COLOR="blue"]AND[/COLOR] на [COLOR="blue"]OR[/COLOR] тогда если одно условия соответствует.
А [COLOR="blue"]Select case[/COLOR] не подходит
[COLOR="blue"]Select case[/COLOR] r111
[COLOR="blue"]case[/COLOR] 0 to 34
Label2 = Label2 & t1 & "R" & t111 & vbCrLf
[COLOR="blue"]End Select[/COLOR]