| нужно смоделировать распределение заданное функцией f=A(cos^2(x))/x^2;0<x<10 у меня все работает,а преподаватель говорит что что - то не так,а я код не полностью понимаю поэтому не знаю что именно,может кто сталкивался с такими задачами?помогите пожалуйста.
 Option Explicit
 Dim y(1000) As Double
 Dim pi As Single
 Dim A As Single
 Private Sub Command1_Click()
 A = 1.4
 Timer1.Enabled = True
 Timer1.Interval = 1
 End Sub
 
 Private Sub Command2_Click()
 Timer1.Enabled = False
 Picture1.Cls
 Dim i As Integer
 For i = 0 To 999 Step 1
 y(i) = 0
 Next i
 End Sub
 
 Private Sub Command3_Click()
 Timer1.Enabled = False
 End Sub
 
 Private Sub Command4_Click()
 End
 End Sub
 
 Private Sub Form_Load()
 Dim x As Single
 Dim y As Single
 Dim s As Single
 pi = 3.1415926
 Picture1.Scale (0, 1000)-(1000, 0)
 
 Timer1.Enabled = False
 x = 0.1
 While x < 2 * pi
 s = Cos(x) * Cos(x)
 y = Abs((Cos(x) * Cos(x)) / (x ^ 2))
 x = x + 0.01
 Wend
 End Sub
 
 Private Sub Timer1_Timer()
 Dim xp As Single
 Dim yp As Single
 Dim x As Single
 Dim j As Integer
 While j < 1000
 xp = 2 * pi * Rnd
 If xp > (0) And xp < 10 Then
 yp = 1.4 * Rnd
 If yp < 1.4 * Abs(Cos(xp) / xp) Then
 x = xp * 100000 \ (2 * pi * 100)
 Picture1.Line (x, y(x))-(x, y(x)), vbBlue, BF
 y(x) = y(x) + 0.5
 End If
 j = j + 1
 End If
 Wend
 
 End Sub
 Ответить
       |