📄 33010407.frm
字号:
Weight = 700
Underline = 0 'False
Italic = -1 'True
Strikethrough = 0 'False
EndProperty
Height = 255
Left = 720
TabIndex = 12
Top = 2520
Width = 375
End
Begin VB.Line Line2
BorderColor = &H00000000&
BorderWidth = 8
X1 = 1440
X2 = 1440
Y1 = 8040
Y2 = 8640
End
Begin VB.Label Label3
Alignment = 2 'Center
BackColor = &H00C0C0C0&
Caption = "用时"
Enabled = 0 'False
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00000000&
Height = 615
Left = 7680
TabIndex = 10
Top = 1080
Width = 615
End
Begin VB.Line Line1
BorderColor = &H00000000&
BorderWidth = 8
X1 = 795
X2 = 795
Y1 = 5640
Y2 = 8640
End
Begin VB.Label Label2
BackColor = &H00C0C0C0&
Caption = " Cg"
BeginProperty Font
Name = "Bodoni MT Condensed"
Size = 15.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = -1 'True
Strikethrough = 0 'False
EndProperty
ForeColor = &H00000000&
Height = 495
Left = 3000
TabIndex = 5
Top = 960
Width = 615
End
Begin VB.Label Label1
BackColor = &H00C0C0C0&
Caption = " k"
BeginProperty Font
Name = "Bodoni MT Condensed"
Size = 21.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = -1 'True
Strikethrough = 0 'False
EndProperty
ForeColor = &H00000000&
Height = 495
Left = 5640
TabIndex = 1
Top = 960
Width = 615
End
Begin VB.Menu r33010407任旭
Caption = "r33010407任旭"
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Const k = 0.375, f = 0.95
Const x = 2, max = 200
Const h = 6, Cd = 0.1, Co = 0.2
Dim xc, x3, y3, x4, xcl, L As Single
Dim Tm, Cg, flag As Single
Dim g(max), w(max) As Single '追赶法中使用的系数g,w
Dim a(max), b(max), d(max) As Single '矩阵方程系数
Dim a1(max), b1(max), d1(max) As Single
Dim s(max), c(max), c1(max) As Single 'c,c1为浓度
Dim i As Integer
'重置
Private Sub Command2_Click()
Picture1.Refresh
For i = 1 To max
Picture1.Line (i * 40, Picture1.ScaleHeight)-(i * 40, Picture1.ScaleHeight - 600), RGB(255, 0, 0) '作工件表面原始含碳量
Next
flag = 1
Timer1.Enabled = False
For i = 1 To max '定义初始浓度
c(i) = Co
c1(i) = Co
Next
Tm = Tm + 1
Text1.Text = "80"
Text2.Text = "1"
Text3.Text = "0"
Tm = 0
Command1.Caption = "Start"
Line2.Y1 = 8040
Line1.Y1 = 5640
For i = 1 To max '定义初始浓度
c(i) = Co
c1(i) = Co
Next
Cg = 1
flag = 0
a(1) = -f '矩阵元素赋值与计算
d(1) = 1 + f + k
For i = 2 To max - 1
a(i) = -f
b(i) = -f
d(i) = 2 * (1 + f)
Next
b(max) = -f
d(max) = 1 + f
a1(1) = f
d1(1) = 1 - f - k
For i = 2 To max - 1
a1(i) = f
b1(i) = f
d1(i) = 2 * (1 - f)
Next
b1(max) = f
d1(max) = 1 - f
Timer1.Enabled = True
End Sub
'退出程序
Private Sub Command3_Click()
End
End Sub
Private Sub Form_Load()
For i = 1 To max '定义初始浓度
c(i) = Co
c1(i) = Co
Next
Cg = 1
flag = 0
a(1) = -f '矩阵元素赋值与计算
d(1) = 1 + f + k
For i = 2 To max - 1
a(i) = -f
b(i) = -f
d(i) = 2 * (1 + f)
Next
b(max) = -f
d(max) = 1 + f
a1(1) = f
d1(1) = 1 - f - k
For i = 2 To max - 1
a1(i) = f
b1(i) = f
d1(i) = 2 * (1 - f)
Next
b1(max) = f
d1(max) = 1 - f
End Sub
'启动及暂停程序
Private Sub Command1_Click()
If Command1.Caption = "pause" Then
Command1.Caption = "continue"
Timer1.Enabled = False
Else
Command1.Caption = "pause"
Timer1.Enabled = True
End If
End Sub
Private Sub r33010407任旭_Click()
End
End Sub
Private Sub Timer1_Timer()
If flag = 0 Then
For i = 1 To max
Picture1.Line (i * 40, Picture1.ScaleHeight)-(i * 40, Picture1.ScaleHeight - 600), RGB(255, 0, 0)
Next
flag = 1
Timer1.Enabled = False
Exit Sub
End If
s(1) = d1(1) * c(1) + a1(1) * c(2) + 2 * k * Cg
s(max) = b1(max) * c(max - 1) + d1(max) * c(max)
For i = 2 To max - 1
s(i) = b1(i) * c(i - 1) + d1(i) * c(i) + a1(i) * c(i + 1)
Next
g(1) = s(1) / d(1) '求g(i),w(i)追的过程
w(1) = a(1) / d(1)
For i = 2 To max - 1
w(i) = a(i) / (d(i) - b(i) * w(i - 1))
g(i) = (s(i) - b(i) * g(i - 1)) / (d(i) - b(i) * w(i - 1))
Next
For i = 1 To max '保存前时刻的浓度
c1(i) = c(i)
Next
'求当前时刻各点浓度值c(i)赶的过程
g(max) = (s(max) - b(max) * g(max - 1)) / (d(max) - b(max) * w(max - 1))
c(max) = g(max)
For i = max - 1 To 1 Step -1
c(i) = g(i) - w(i) * c(i + 1)
Line2.Y1 = 8640 - c(i) * 3000
Next
For i = 1 To max '做浓度梯度曲线
Picture1.Line (i * 40, Picture1.ScaleHeight - 600)-(i * 40, Picture1.ScaleHeight - c1(i) * 3000), Picture1.BackColor
Picture1.Line (i * 40, Picture1.ScaleHeight - 600)-(i * 40, Picture1.ScaleHeight - c(i) * 3000), RGB(0, 0, 255 * Rnd)
Next
Tm = Tm + 1
Text3.Text = CStr(Tm * 0.1)
End Sub
'设定k值大小
Private Sub VScroll1_Change()
Text1.Text = VScroll1.Value
Timer1.Interval = VScroll1.Value
End Sub
'设定Cg值大小
Private Sub VScroll2_Change()
Text2.Text = VScroll2.Value / 10
Cg = VScroll2.Value / 10
Line1.Y1 = 8640 - Cg * 3000
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -