Движение электронов - VB

Узнай цену своей работы

Формулировка задачи:

Здравстуйте,помогите с задачей!Есть неподвижное ядро атома и вокруг него вращаются три электрона в форме круга.Для атома нужна возможность выбора цвета,а для элетронов : радиус орбиты вращения(1-10),скорость(1-5), цвет, движение по часовой или против.Число оборотов для всех элетронов одинаковое. Также необходимо предусмотреть возможность установки параметров по умолчанию

Решение задачи: «Движение электронов»

textual
Листинг программы
Dim Grad1 As Single, Grad2 As Single, Grad3 As Single
Dim Spd1 As Single, Spd2 As Single, Spd3 As Single
Dim R1 As Integer, R2 As Integer, R3 As Integer
Dim clr1 As Long, clr2 As Long, clr3 As Long
Dim NumberOfoborotov As Integer
Dim oborot1 As Integer, oborot2 As Integer, oborot3 As Integer
Const Pi As Single = 3.14159
 
Private Sub Color1_Change()
If Val(Color1.Text) > 5 Or Val(Color1.Text) < 1 Then Color1.Text = "1"
Color1.SelStart = 0: Color1.SelLength = 1
End Sub
 
Private Sub Color1_GotFocus()
Color1.SelStart = 0: Color1.SelLength = 1
End Sub
 
Private Sub Color1_KeyUp(KeyCode As Integer, Shift As Integer)
Color1.SelStart = 0: Color1.SelLength = 1
End Sub
 
Private Sub Color1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Color1.SelStart = 0: Color1.SelLength = 1
End Sub
 
Private Sub Color2_Change()
If Val(Color2.Text) > 5 Or Val(Color2.Text) < 1 Then Color2.Text = "1"
Color2.SelStart = 0: Color2.SelLength = 1
End Sub
 
Private Sub Color2_GotFocus()
Color2.SelStart = 0: Color2.SelLength = 1
End Sub
 
Private Sub Color2_KeyUp(KeyCode As Integer, Shift As Integer)
Color2.SelStart = 0: Color2.SelLength = 1
End Sub
 
Private Sub Color2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Color2.SelStart = 0: Color2.SelLength = 1
End Sub
 
Private Sub Color3_Change()
If Val(Color3.Text) > 5 Or Val(Color3.Text) < 1 Then Color3.Text = "1"
Color3.SelStart = 0: Color3.SelLength = 1
End Sub
 
Private Sub Color3_GotFocus()
Color3.SelStart = 0: Color3.SelLength = 1
End Sub
 
Private Sub Color3_KeyUp(KeyCode As Integer, Shift As Integer)
Color3.SelStart = 0: Color3.SelLength = 1
End Sub
 
Private Sub Color3_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Color3.SelStart = 0: Color3.SelLength = 1
End Sub
 
Private Sub Form_Load()
Timer1.Interval = 10
Me.Height = 7000: Me.Width = 10000
Picture1.Scale (-10, 10)-(10, -10)
Picture1.FillStyle = 0
Picture1.AutoRedraw = True
cmdStart.Caption = "Start":
 
Speed1.Text = 80:  Radius1.Text = 3: Color1.Text = 3
Speed2.Text = 50: Radius2.Text = 4: Color2.Text = 4
Speed3.Text = 55:  Radius3.Text = 6: Color3.Text = 5
 
Call cmdStart_Click
End Sub
 
Private Sub Timer1_Timer()
If oborot1 < NumberOfoborotov Then
    If Grad1 + 1 <= 2 * Pi / Spd1 Then
        Grad1 = Grad1 + 1
    Else
        Grad1 = 0
        oborot1 = oborot1 + 1
    End If
End If
 
If oborot2 < NumberOfoborotov Then
    If Grad2 + 1 <= 2 * Pi / Spd2 Then
        Grad2 = Grad2 + 1
    Else
        Grad2 = 0
        oborot2 = oborot2 + 1
    End If
End If
 
If oborot3 < NumberOfoborotov Then
    If Grad3 - 1 >= -2 * Pi / Spd3 Then
        Grad3 = Grad3 - 1
    Else
        Grad3 = 0
        oborot3 = oborot3 + 1
    End If
End If
 
If oborot1 = NumberOfoborotov And oborot2 = NumberOfoborotov And oborot3 = NumberOfoborotov Then Timer1.Enabled = False
 
Picture1.Cls
Picture1.FillColor = vbRed
Picture1.Circle (0, 0), 0.5, vbRed
 
Picture1.FillColor = clr1
Picture1.Circle ((Cos(Grad1 * Spd1) * Val(Radius1.Text)), Sin(Grad1 * Spd1) * Val(Radius1.Text)), 0.2, clr1
Picture1.FillColor = clr2
Picture1.Circle ((Cos(Grad2 * Spd2) * Val(Radius2.Text)), Sin(Grad2 * Spd2) * Val(Radius2.Text)), 0.3, clr2
Picture1.FillColor = clr3
Picture1.Circle ((Cos(Grad3 * Spd3) * Val(Radius3.Text)), Sin(Grad3 * Spd3) * Val(Radius3.Text)), 0.2, clr3
 
End Sub
Private Sub cmdStart_Click()
NumberOfoborotov = Val(oborot.Text)
Grad1 = 0: Grad2 = 0: Grad3 = 0
oborot1 = 0: oborot2 = 0: oborot3 = 0
Spd1 = Val(Speed1.Text) / 1000
Spd2 = Val(Speed2.Text) / 1000
Spd3 = Val(Speed3.Text) / 1000
clr1 = Choose(Val(Color1.Text), vbBlack, vbRed, vbGreen, vbBlue, vbMagenta)
clr2 = Choose(Val(Color2.Text), vbBlack, vbRed, vbGreen, vbBlue, vbMagenta)
clr3 = Choose(Val(Color3.Text), vbBlack, vbRed, vbGreen, vbBlue, vbMagenta)
Timer1.Enabled = True
End Sub
 
Private Sub cmdStop_Click()
Timer1.Enabled = False
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5
Похожие ответы