📄 linear.frm
字号:
VERSION 5.00
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 3195
ClientLeft = 60
ClientTop = 345
ClientWidth = 4680
LinkTopic = "Form1"
ScaleHeight = 3195
ScaleWidth = 4680
StartUpPosition = 3 '窗口缺省
Begin VB.CommandButton Command3
Caption = "Command3"
Height = 615
Left = 1440
TabIndex = 2
Top = 2160
Width = 1575
End
Begin VB.CommandButton Command2
Caption = "负荷最优分配"
Height = 495
Left = 1200
TabIndex = 1
Top = 1440
Width = 1695
End
Begin VB.CommandButton Command1
Caption = "煤耗特性线性化"
Height = 375
Left = 1200
TabIndex = 0
Top = 480
Width = 1695
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim Z(1 To 8, 1 To 5) As Double
Dim N As Integer
Dim hangshu As Integer
Dim lieshu As Integer
Dim lieshu1 As Integer
Private Sub Command1_Click()
Open "E:\wyl\煤耗特性数据文件.txt" For Input As #1
For I = 1 To 8
For J = 1 To 5
Input #1, Z(I, J)
Next J
Next I
Close #1
For I = 1 To 8
Call linear(Z(I, 1), Z(I, 2), Z(I, 3), Z(I, 4), Z(I, 5))
Q(I, 1) = t
Q(I, 2) = k
Q(I, 3) = Z(I, 4)
Q(I, 4) = Z(I, 5)
Next I
Open "E:\wyl\煤耗线性数据文件.txt" For Output As #1
For I = 1 To 8
For J = 1 To 4
Print #1, Q(I, J);
Next J
Print #1,
Next I
Close #1
End Sub
Private Sub Command2_Click()
N = 3
hangshu = N + 1
lieshu = 3 * N + 1
lieshu1 = 2 * N
'给距阵A赋初值:
ReDim A(1 To N + 1, 1 To 3 * N + 1)
For I = 1 To N
A(1, I) = 1
Next I
For I = 2 To hangshu
A(I, I - 1) = 1: A(I, I + N - 1) = 1
Next I
For I = 1 To hangshu
A(I, 2 * N + 1) = 1
Next I
'给向量B赋初值:
ReDim B(1 To hangshu)
Open "E:\wyl\机组负荷数据文件.txt" For Input As #3
For I = 1 To hangshu
Input #3, B(I)
Next I
Close #3
'给向量P赋初值:
ReDim P(1 To N)
Open "E:\wyl\机组特性数据文件.txt" For Input As #3
For I = 1 To N
Input #3, P(I)
Next I
Close #3
'给向量C赋初值:
ReDim C(1 To lieshu)
For I = 1 To lieshu1
C(I) = 0
Next I
For I = lieshu1 + 1 To lieshu
C(I) = -1
Next I
For I = 1 To hangshu
For J = 1 To lieshu
C(J) = C(J) + A(I, J)
Next J
Next I
'给fvalue赋初值:
For I = 1 To hangshu
fvalue = fvalue + B(I)
Next I
'给向量jx()赋初值:
ReDim JX(1 To hangshu)
For I = 1 To hangshu
JX(I) = 2 * N + I
Next I
Call AJmax(C(), lieshu)
If Cmax > 0 Then
10: Call AImin(A(), B(), hangshu)
Call xiaoyuan(A(), B(), C(), Jmax, Imin, fvalue, lieshu, hangshu)
JX(Imin) = Jmax
End If
Call AJmax(C(), lieshu)
If Cmax > 0 Then GoTo 10
Open "E:\wyl\临时文件.txt" For Output As #2
For I = 1 To hangshu
Print #2, B(I);
Next I
Print #2,
For I = 1 To hangshu
Print #2, JX(I);
Next I
Print #2, fvalue
Print #2,
For I = 1 To lieshu
Print #2, C(I);
Next I
Close #2
'第二阶段
'给A2赋初值:
ReDim A2(1 To hangshu, 1 To lieshu1)
For I = 1 To hangshu
For J = 1 To lieshu1
A2(I, J) = A(I, J)
Next J
Next I
'给C2赋初值:
ReDim C2(1 To lieshu1)
For I = 1 To N
C2(I) = -P(I)
Next I
For I = 1 To hangshu
If C2(JX(I)) <> 0 Then
For k = 1 To lieshu1
C2(k) = C2(k) + A(I, k) * P(I)
Next k
fvalue2 = fvalue2 + B(I) * P(I)
End If
Next I
'给fvalue2赋初值:
Call AJmax(C2(), lieshu1)
If Cmax > 0 Then
20: Call AImin(A2(), B(), hangshu)
Call xiaoyuan(A2(), B(), C2(), Jmax, Imin, fvalue2, lieshu1, hangshu)
JX(Imin) = Jmax
End If
Call AJmax(C2(), lieshu1)
If Cmax > 0 Then GoTo 20
Open "E:\wyl\临时文件.txt" For Append As #2
For I = 1 To hangshu
Print #2, B(I);
Next I
Print #2,
For I = 1 To hangshu
Print #2, JX(I);
Next I
Print #2, fvalue2
Print #2,
For I = 1 To lieshu1
Print #2, C2(I);
Next I
Close #2
End Sub
Private Sub Command3_Click()
ReDim B(1 To 4)
ReDim P(1 To 3)
N = 3
B(1) = 36: B(2) = 12: B(3) = 22: B(4) = 10
P(1) = 0.45: P(2) = 0.46: P(3) = 0.51
Call good(N, P(), B())
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -