📄 水准测量.frm
字号:
VERSION 5.00
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 9270
ClientLeft = 60
ClientTop = 345
ClientWidth = 11025
LinkTopic = "Form1"
ScaleHeight = 9270
ScaleWidth = 11025
StartUpPosition = 3 '窗口缺省
Begin VB.PictureBox Picture1
Height = 9015
Left = 2640
ScaleHeight = 8955
ScaleWidth = 8235
TabIndex = 10
Top = 120
Width = 8295
End
Begin VB.Frame Frame1
Caption = "已测各站高差(mm),边长(m)"
Height = 7095
Left = 0
TabIndex = 1
Top = 120
Width = 2535
Begin VB.TextBox Text3
Height = 495
Left = 1080
TabIndex = 24
Text = "100"
Top = 6480
Width = 1215
End
Begin VB.TextBox Text2
Height = 495
Index = 9
Left = 120
TabIndex = 22
Text = "-1020"
Top = 5760
Width = 975
End
Begin VB.TextBox Text2
Height = 495
Index = 8
Left = 120
TabIndex = 21
Text = "-372.1"
Top = 5160
Width = 975
End
Begin VB.TextBox Text2
Height = 495
Index = 7
Left = 120
TabIndex = 20
Text = "-261.9"
Top = 4560
Width = 975
End
Begin VB.TextBox Text2
Height = 495
Index = 6
Left = 120
TabIndex = 19
Text = "1022.85"
Top = 3960
Width = 975
End
Begin VB.TextBox Text2
Height = 495
Index = 5
Left = 120
TabIndex = 18
Text = "701.6"
Top = 3360
Width = 975
End
Begin VB.TextBox Text2
Height = 495
Index = 4
Left = 120
TabIndex = 17
Text = "-1049.25"
Top = 2760
Width = 975
End
Begin VB.TextBox Text2
Height = 495
Index = 3
Left = 120
TabIndex = 16
Text = "-1114.5"
Top = 2160
Width = 975
End
Begin VB.TextBox Text2
Height = 495
Index = 2
Left = 120
TabIndex = 15
Text = "813.1"
Top = 1560
Width = 975
End
Begin VB.TextBox Text2
Height = 495
Index = 1
Left = 120
TabIndex = 14
Text = "970.8"
Top = 960
Width = 975
End
Begin VB.TextBox Text2
Height = 495
Index = 0
Left = 120
TabIndex = 13
Text = "316.7"
Top = 360
Width = 975
End
Begin VB.TextBox Text1
Height = 495
Index = 9
Left = 1200
TabIndex = 12
Text = "151"
Top = 5760
Width = 1215
End
Begin VB.TextBox Text1
Height = 495
Index = 8
Left = 1200
TabIndex = 11
Text = "265"
Top = 5160
Width = 1215
End
Begin VB.TextBox Text1
Height = 495
Index = 0
Left = 1200
TabIndex = 9
Text = "126.5"
Top = 360
Width = 1215
End
Begin VB.TextBox Text1
Height = 495
Index = 1
Left = 1200
TabIndex = 8
Text = "211"
Top = 960
Width = 1215
End
Begin VB.TextBox Text1
Height = 495
Index = 2
Left = 1200
TabIndex = 7
Text = "270.5"
Top = 1560
Width = 1215
End
Begin VB.TextBox Text1
Height = 495
Index = 3
Left = 1200
TabIndex = 6
Text = "417.5"
Top = 2160
Width = 1215
End
Begin VB.TextBox Text1
Height = 495
Index = 4
Left = 1200
TabIndex = 5
Text = "171"
Top = 2760
Width = 1215
End
Begin VB.TextBox Text1
Height = 495
Index = 5
Left = 1200
TabIndex = 4
Text = "285"
Top = 3360
Width = 1215
End
Begin VB.TextBox Text1
Height = 495
Index = 6
Left = 1200
TabIndex = 3
Text = "219"
Top = 3960
Width = 1215
End
Begin VB.TextBox Text1
Height = 495
Index = 7
Left = 1200
TabIndex = 2
Text = "281"
Top = 4560
Width = 1215
End
Begin VB.Label Label1
Caption = "起点高程(m)"
Height = 375
Left = 240
TabIndex = 25
Top = 6600
Width = 735
End
End
Begin VB.Frame Frame2
Caption = "处理"
Height = 1935
Left = 0
TabIndex = 0
Top = 7200
Width = 2535
Begin VB.CommandButton Command1
Caption = "数据处理并输出结果"
Height = 735
Left = 720
TabIndex = 23
Top = 720
Width = 1215
End
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim s(1 To 10), h(1 To 10), h0(1 To 10), h1(1 To 10) As Double '定义各测站间边长,测得高差,经闭合差改正高差,各站近似高程
Dim h2(1 To 10), v(1 To 10), fh1(2 To 10) As Double '定义平差后高程,高差改正数,各站高程改正数
Dim m0, m(2 To 10) As Double '单位权中误差,各测站高程中误差
Dim b(1 To 10, 1 To 9), bt(1 To 9, 1 To 10), btb(1 To 9, 1 To 9), btb1(1 To 9, 1 To 9), btl(1 To 9), l(1 To 10) As Double
Dim bb(1 To 9, 1 To 9), E(1 To 9, 1 To 18) As Double
Dim ch, zz, z As Double
Private Sub Command1_Click()
Dim i, j, t, p As Integer
Dim hz, sz As Double
Dim d, dd(1 To 9) As Double
Dim v(1 To 10) As Double
hz = 0
sz = 0
h1(1) = Text3.Text
h1(1) = h1(1) * 1000
For i = 0 To 9
s(i + 1) = Text1(i).Text
h(i + 1) = Text2(i).Text
hz = hz + h(i + 1)
sz = sz + s(i + 1)
Next i
Picture1.Print hz; sz
For i = 1 To 9
h0(i) = h(i) - hz * s(i) / sz
h1(i + 1) = h1(i) + h0(i)
Next i
h0(10) = h(10) - hz * s(10) / sz
For i = 1 To 10
l(i) = h(i) - h0(i)
Next i
For i = 1 To 10
Picture1.Print l(i)
Next i
For i = 1 To 10
For j = 1 To 9
b(i, j) = 0
Next j
Next i
For i = 1 To 10
If i = 1 Then
b(i, i) = 1
ElseIf i = 10 Then
b(i, i - 1) = -1
Else
b(i, i - 1) = -1
b(i, i) = 1
End If
Next i
For i = 1 To 10
For j = 1 To 9
Picture1.Print b(i, j);
Next j
Picture1.Print
Next i
For i = 1 To 10 '转置'
For j = 1 To 9
bt(j, i) = b(i, j)
Next j
Next i
For i = 1 To 9
For j = 1 To 9
btb(i, j) = 0
Next j
Next i
For i = 1 To 9 'BTB,BTL相乘'
For t = 1 To 9
For j = 1 To 10
btb(i, t) = btb(i, t) + bt(i, j) * b(j, t)
Next j
Next t
Next i
For i = 1 To 9
For j = 1 To 9
btb1(i, j) = btb(i, j)
Next j
Next i
For i = 1 To 9
btl(i) = 0
For j = 1 To 10
btl(i) = btl(i) + bt(i, j) * l(j)
Next j
Next i
For k = 1 To 8 '求改正数dd()'
For j = k + 1 To 9
btb(k, j) = btb(k, j) / btb(k, k)
Next j
btl(k) = btl(k) / btb(k, k)
For i = k + 1 To 9
For j = k + 1 To 9
btb(i, j) = btb(i, j) - btb(i, k) * btb(k, j)
Next j
btl(i) = btl(i) - btb(i, k) * btl(k)
Next i
Next k
d = 0
dd(9) = btl(9) / btb(9, 9)
For i = 8 To 1 Step -1
For j = i + 1 To 9
d = d + btb(i, j) * dd(j)
Next j
dd(i) = btl(i) - d
d = 0
Next i
Picture1.Print '求高程平差值
For i = 1 To 9
h1(i + 1) = h1(i + 1) + dd(i)
Next i
For j = 1 To 10 '高差改正数v()
d = 0
For t = 1 To 9
d = d + b(j, t) * dd(t)
Next t
v(j) = d - l(j)
Next j
Picture1.Print
d = 0
For i = 1 To 10 '单位权中误差m0'
d = d + v(i) * v(i)
Next i
Picture1.Print d
m0 = Sqr(d)
'协因数阵bb()
For i = 1 To 9
For j = 1 To 9
E(i, j) = btb1(i, j)
Next j
Next i
For i = 1 To 9
For j = 10 To 18
If i = j - 9 Then
E(i, j) = 1
Else
E(i, j) = 0
End If
Next j
Next i
For j = 1 To 9
If E(j, j) = 0 Then
For i = 1 To 9
If E(i, j) <> 0 Then Exit For
Next i
For p = 1 To 18
ch = E(i, p)
E(i, p) = E(j, p)
E(j, p) = ch
Next p
End If
z = E(j, j)
For p = 1 To 18
E(j, p) = E(j, p) / z
Next p
For i = 1 To 9
If i <> j And E(i, j) <> 0 Then
zz = E(i, j)
For p = 1 To 18
E(i, p) = E(i, p) - E(j, p) * zz
Next p
End If
Next i
Next j
For i = 1 To 9
For j = 1 To 9
bb(i, j) = E(i, j + 9)
Next j
Next i
For i = 1 To 9
For j = i To 9
Picture1.Print Tab(6 * (j - 1)); bb(i, j);
Next j
Picture1.Print
Next i
For i = 2 To 10
m(i) = m0 * Sqr(bb(i - 1, i - 1))
Next i
For i = 2 To 10
Picture1.Print m(i)
Next i
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -