Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос

52K
04 апреля 2011 года
Sergey198826
94 / / 14.03.2011
Здравствуйте это мой код
Код:
Option Explicit


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. ИИз-за чего это может быть?
327
04 апреля 2011 года
UserNet2008
748 / / 03.04.2010
Sergey198826

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")


Цитата:
а иногда одна теряеться, в сумме дает 9



Нужно проверять условия во всех [COLOR="blue"]IF THEN[/COLOR]
т.к стоит [COLOR="blue"]AND[/COLOR] это значит,что два условия должны соответствовать

52K
04 апреля 2011 года
Sergey198826
94 / / 14.03.2011
Цитата:
Вопервых нужно разобраться в этих вырожениях
точнее вот paramK11 + paramK22 * Sqr(2)
Что Вам нужно сначало сложить paramK11 + paramK22,а потом умножить на Sqr(2)?



Нет тут все правильно сначала умножаеться параметрК22 на корень а потом прибовляеться парамК11

Цитата:
Нужно проверять условия во всех IF THEN
т.к стоит AND это значит,что два условия должны соответствовать



А как это иправить убрать AND? Мне нужно чтоб програма проверяла входит ли r111 в промежуток например от 0 до 34включительно, если входит то Then Label2 = Label2 & t1 & "R" & t111 & vbCrLf

327
04 апреля 2011 года
UserNet2008
748 / / 03.04.2010
Цитата:
А как это иправить убрать AND?



Сразу так и не ответишь. Нужно знать диапазон всех переменных.
Можно заменить [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]

52K
04 апреля 2011 года
Sergey198826
94 / / 14.03.2011
сделал код через Select case вроде все нормально. Спасибо!!!!!!!!!!!!!!!!!!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог