📄 frmbp.frm
字号:
Width = 495
End
Begin VB.Label Label2
Caption = "理想输出"
BeginProperty Font
Name = "楷体_GB2312"
Size = 11.25
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 255
Index = 2
Left = 3000
TabIndex = 18
Top = 360
Width = 975
End
End
Begin VB.Frame Frame1
Caption = "对比结果"
BeginProperty Font
Name = "楷体_GB2312"
Size = 11.25
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 3855
Left = 4560
TabIndex = 2
Top = 480
Width = 1455
Begin VB.PictureBox Picture3
Height = 3015
Left = 240
ScaleHeight = 2955
ScaleWidth = 915
TabIndex = 3
Top = 600
Width = 975
Begin VB.HScrollBar HScroll2
Height = 255
Left = 0
TabIndex = 34
Top = 2760
Width = 735
End
Begin VB.VScrollBar VScroll2
Height = 3015
Left = 720
TabIndex = 33
Top = 0
Width = 255
End
Begin VB.PictureBox Picture4
Height = 2775
Left = 0
ScaleHeight = 2715
ScaleWidth = 675
TabIndex = 4
Top = 0
Width = 735
Begin VB.TextBox Text2
Height = 270
Index = 0
Left = 0
TabIndex = 5
Text = "1"
Top = 0
Visible = 0 'False
Width = 450
End
End
End
Begin VB.Label Label2
Caption = "实际输出"
BeginProperty Font
Name = "楷体_GB2312"
Size = 11.25
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 255
Index = 1
Left = 240
TabIndex = 6
Top = 360
Width = 975
End
End
Begin VB.CommandButton Command2
Caption = "退出"
BeginProperty Font
Name = "楷体_GB2312"
Size = 11.25
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 1455
Left = 10440
TabIndex = 1
Top = 5640
Width = 975
End
Begin VB.CommandButton Command1
Caption = "网络学习"
BeginProperty Font
Name = "楷体_GB2312"
Size = 11.25
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 735
Left = 840
TabIndex = 0
Top = 4920
Width = 1095
End
Begin VB.Label Label4
Caption = "阈调节系数"
BeginProperty Font
Name = "楷体_GB2312"
Size = 11.25
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 255
Index = 1
Left = 720
TabIndex = 42
Top = 7560
Width = 1215
End
Begin VB.Label Label4
Caption = "权调节系数"
BeginProperty Font
Name = "楷体_GB2312"
Size = 11.25
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 255
Index = 0
Left = 720
TabIndex = 40
Top = 6720
Width = 1215
End
Begin VB.Label Label4
Caption = "学习次数"
BeginProperty Font
Name = "楷体_GB2312"
Size = 11.25
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 255
Index = 4
Left = 840
TabIndex = 37
Top = 5880
Width = 975
End
Begin VB.Label Label1
Alignment = 2 'Center
Caption = "BP 算法演示"
BeginProperty Font
Name = "华文行楷"
Size = 36
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 3855
Left = 6120
TabIndex = 35
Top = 0
Width = 975
End
Begin VB.Line Line2
BorderWidth = 3
Index = 1
X1 = 2520
X2 = 2880
Y1 = 6240
Y2 = 6480
End
Begin VB.Line Line2
BorderWidth = 3
Index = 0
X1 = 2760
X2 = 2880
Y1 = 6120
Y2 = 6480
End
Begin VB.Line Line1
BorderWidth = 3
Index = 0
X1 = 1080
X2 = 2760
Y1 = 4680
Y2 = 6360
End
End
Attribute VB_Name = "FrmBP"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim Memory, CmdMark As Integer
Dim OY As Double
Private Sub Command1_Click()
Dim i, j, k As Integer
N = Val(Text6.Text)
L1 = Val(Text7.Text)
L2 = Val(Text8.Text)
Call Read_z_d
For j = 1 To NN
For i = 1 To KK
Err = Err + (d(j, i) - o(j, i)) ^ 2
Next i
Next j
Line3(0).X1 = 0
If CmdMark = 0 Then
Line3(0).Y1 = Picture15.Height / 2 - Err * 500
Line3(0).Y2 = Picture15.Height / 2 - Err * 500
Else
Line3(0).Y1 = OY
Line3(0).Y2 = OY
End If
Line3(0).X2 = 0
Call Erase_e
For k = 1 To N
Call StudyMain
Call Draw_e(k)
Call Write_o
Next k
OY = Line3(N).Y2
Call Write_Weight
Call Write_Key
Memory = N
CmdMark = 1
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
Memory = 0
CmdMark = 0
ReDim V(JJ, II)
ReDim W(KK, JJ)
ReDim R(JJ)
ReDim Q(KK)
ReDim z(NN, II)
ReDim y(NN, JJ)
ReDim o(NN, KK)
ReDim d(NN, KK)
ReDim Er1(KK)
ReDim Er2(JJ)
Call Pic1Redraw
Call Text1Load
Call Pic3Redraw
Call Text2Load
Call Pic5Redraw
Call text3Load
Call Pic7Redraw
Call text4Load
Call Pic9Redraw
Call text5Load
Call Pic11Redraw
Call text9Load
Call Pic13Redraw
Call Text10Load
Line4.X1 = 0
Line4.Y1 = Picture15.Height / 2
Line4.X2 = Picture15.Width
Line4.Y2 = Picture15.Height / 2
Call Teacher
Call Write_z_d
Call Initial
Call Write_Weight
Call Write_Key
End Sub
Private Sub Write_z_d()
Dim i, j, k As Integer
For j = 1 To NN
For i = 1 To II
Text1((j - 1) * II + i).Text = z(j, i)
Next i
Next j
For j = 1 To NN
For k = 1 To KK
Text3((j - 1) * KK + k).Text = d(j, k)
Next k
Next j
End Sub
Private Sub Read_z_d()
Dim i, j, k As Integer
For j = 1 To NN
For i = 1 To II
z(j, i) = Val(Text1((j - 1) * II + i).Text)
Next i
Next j
For j = 1 To NN
For k = 1 To KK
d(j, k) = Val(Text3((j - 1) * KK + k).Text)
Next k
Next j
End Sub
Private Sub Write_Weight()
Dim i, j, k As Integer
For j = 1 To JJ
For i = 1 To II
Text5((j - 1) * II + i).Text = V(j, i)
Next i
Next j
For k = 1 To KK
For j = 1 To JJ
Text4((k - 1) * JJ + j).Text = W(k, j)
Next j
Next k
End Sub
Private Sub Write_Key()
Dim i, j, k As Integer
For j = 1 To JJ
Text9(j).Text = R(j)
Next j
For k = 1 To KK
Text10(k).Text = Q(k)
Next k
End Sub
Private Sub Write_o()
Dim j, k As Integer
For j = 1 To NN
For k = 1 To KK
Text2((j - 1) * KK + k).Text = o(j, k)
Next k
Next j
End Sub
Private Sub Draw_e(L As Integer) '画线
Dim Err As Double
Err = 0
Dim i, j, k As Integer
For j = 1 To NN
For k = 1 To KK
Err = Err + (d(j, k) - o(j, k)) ^ 2
Next k
Next j
Err = Err / 2
Load Line3(L)
Line3(L).Visible = True
Line3(L).X1 = Line3(L - 1).X2
Line3(L).Y1 = Line3(L - 1).Y2
Line3(L).X2 = Line3(L - 1).X2 + Picture15.Width / N * L
Line3(L).Y2 = Picture15.Height / 2 - 500 * Err
End Sub
Private Sub Erase_e() '擦除画线
Dim i As Integer
For i = 1 To Memory
Unload Line3(i)
Next
End Sub
Private Sub Pic1Redraw() '视窗图片重绘子程序
'设置表格载体图片控件的属性
Picture2.Width = II * Text1(0).Width + 50
Picture2.Height = NN * Text1(0).Height + 50
'判断滚动条出现的不同情况
If Picture1.Width < Picture2.Width + Picture2.Left * 2 _
And Picture1.Height < Picture2.Height + Picture2.Top * 2 Then
'水平、垂直滚动条都出现
HScroll1.Left = 0
HScroll1.Top = Picture1.Height - HScroll1.Height
HScroll1.Width = Picture1.Width
HScroll1.Max = Picture2.Width + 2 * Picture2.Left - Picture1.Width
HScroll1.Min = 0
VScroll1.Top = 0
VScroll1.Left = Picture1.Width - VScroll1.Width
VScroll1.Height = Picture1.Height - HScroll1.Height
VScroll1.Max = Picture2.Height + 2 * Picture2.Top - Picture1.Height
VScroll1.Min = 0
HScroll1.Visible = True
VScroll1.Visible = True
ElseIf Picture1.Width < Picture2.Width + Picture2.Left * 2 Then
'只出现水平滚动条
HScroll1.Left = 0
HScroll1.Top = Picture1.Height - HScroll1.Height
HScroll1.Width = Picture1.Width
HScroll1.Max = Picture2.Width + 2 * Picture2.Left - Picture1.Width
HScroll1.Min = 0
HScroll1.Visible = True
VScroll1.Visible = False
ElseIf Picture1.Height < Picture2.Height + Picture2.Top * 2 Then
'只出现垂直滚动条
VScroll1.Top = 0
VScroll1.Left = Picture1.Width - VScroll1.Width
VScroll1.Height = Picture1.Height
VScroll1.Max = Picture2.Height + 2 * Picture2.Top - Picture1.Height
VScroll1.Min = 0
HScroll1.Visible = False
VScroll1.Visible = True
Else
HScroll1.Visible = False
VScroll1.Visible = False
End If
HScroll1.SmallChange = 20
HScroll1.LargeChange = (HScroll1.Max - HScroll1.Min) / 10
HScroll1.Value = 0
VScroll1.SmallChange = 20
VScroll1.LargeChange = (VScroll1.Max - VScroll1.Min) / 10
VScroll1.Value = 0
End Sub
Private Sub HScroll1_Change() '水平滚动条变化
Picture2.Left = 0 - HScroll1.Value
End Sub
Private Sub Text1Load() '调入文本框控件
Dim i, j As Integer
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -