APP下载

浅谈BASIC编程语言在工程测量中的应用

2020-03-18

黑龙江交通科技 2020年1期
关键词:计算器程式计算公式

魏 蒙

(中铁二十局集团第四工程有限公司,山东 青岛 266100)

BASIC(Beginners All-Purpose Symbolic Instruction Code)语言是一种直译式的、设计给初学者的编程语言,由于BASIC语言简单、易学的基本特性,且具备通过微电脑作为载体撰写程式的优势,使其在科学计算和数据处理等方面普遍流行。

BASIC语言在工程测量领域同样有所涉及:如内业数据批量处理时,测量人员常常会使用Microsoft Office办公系统中的Excel软件,在Excel软件中包含的宏语言VBA(Visual Basic for Application)就是windows环境下的一种BASIC语言;另如路基、隧道等结构物放样时,施工断面很难通过内业方法提前计算,需要根据实际施工里程进行中边桩坐标计算,测量人员常常会使用CASIO fx-5800P计算器进行现场计算,而CASIO fx-5800P计算器采用就是类结构化BASIC语言。测量人员将需解决的问题的思路、方法和手段通过BASIC语言告诉计算机(器),使得计算机(器)能够根据人的指令一步一步去工作,完成复杂、繁重的计算任务。

本文结合马鞍山郑蒲港铁路项目跨X024县道公跨铁立交桥的线路平面设计资料,采用Excel软件中Visual Basic编辑器与CASIO fx-5800P计算器分别撰写BASIC语言程式,实现线路中边桩坐标的快速计算。

1 线路平面设计资料

设计单位提供的《曲线要素表》如表1所示。

表1 曲线要素表

2 线元表

依照设计单位提供的《曲线要素表》整理出《线元表》,如表2所示。

表2 线元表

采用Excel软件中VBA方法进行数据批量处理。

(1)在新建的Excel表中输入需要计算的“桩号”、“偏距”、“偏角”等数据,排版后添加“命令按钮”控件,如图1所示。

图1 在Excel表中添加“命令按钮”控件

(2)双击“命令按钮”控件,撰写在敲击“命令按钮”的行为下执行的BASIC语言程式,包括声明部分、自定义变量类型、建立判断和循环等语句、设置超限、建立基础数据库、执行计算公式、计算结果输出等部分的内容,程序清单如下

Private Sub CommandButton1_Click() '声明部分

Dim A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,Z1,Z2,Z3,Pi As Double '自定义变量类型

Pi=3.1415926 '变量赋值

A=4 '变量赋值

Do While Worksheets("X024县道改移工程").Cells(A,1).Value<>"" '建立循环语句

B=Worksheets("X024县道改移工程").Cells(A,1).Value

If B<0 Or B>369.308 Then

MsgBox CStr(B)& "超出计算范围→计算中断" '设置超限

GoTo 1

End If

If B>=0 And B<=105.666 Then '建立基础数据库

Z=105.912 852 8 C=Z*Pi/180 D=0 E=3 494 949.135 F=500 226.072 5

GoTo 2

End If

………

2:G=E+(B-D)*Cos(C) '直线计算公式

H=F+(B-D)*Sin(C)

I=Worksheets("X024县道改移工程").Cells(A,6).Value

J=C+I*Pi/180

K=Worksheets("X024县道改移工程").Cells(A,5).Value

N=Worksheets("X024县道改移工程").Cells(A,10).Value

O=C+N*Pi/180

P=Worksheets("X024县道改移工程").Cells(A,9).Value

L=G+K*Cos(J) m= h+K*Sin(J)Q=G+P*Cos(O)R= h+P*Sin(O)

Worksheets("X024县道改移工程").Cells(A,2).Value=Z '成果输出

Worksheets("X024县道改移工程").Cells(A,3).Value=G

Worksheets("X024县道改移工程").Cells(A,4).Value= h

Worksheets("X024县道改移工程").Cells(A,7).Value=L

Worksheets("X024县道改移工程").Cells(A,8).Value= m

Worksheets("X024县道改移工程").Cells(A,11).Value=Q

Worksheets("X024县道改移工程").Cells(A,12).Value=R

GoTo 6

………

6:A=A+1

Loop

1:

End Sub

说明:程序清单中省略的内容为基础数据库、计算公式和成果输出的其余部分,其输入格式与列举格式相同,因篇幅原因,不再一一展开。

(3)撰写程式完毕后保存并退出VBA界面,返回Excel表中,先退出设计模式,后单击“命令按钮”控件,批量数据处理,生成计算结果,如图2所示。

图2 在Excel表中批量生成计算结果

(4)将设计坐标与VBA生成坐标进行较差,差值均小于1 mm,如表3所示。

表3 设计坐标与VBA生成坐标较差表

3 使用CASIO fx-5800P计算器进行编程计算

(1)打开CASIO fx-5800P计算器,点击“MODE”,选择“5:PROG”,再选择“1:NEW”,输入主程序名称“X024”,子程序的新建方法与主程序方法一致。

(2)点击回车,进入“File mode”界面,选择“1:COMP”,进入撰写BASIC语言程式,程式清单如下:

①主程序(X024) ’主结构程序

Lbl 0:″LCZH=″:? →S:

If S>=0 AND S<105.666:Then Prog “YS1”:IfEnd:

If S>=105.666 And S<130.666:Then Prog“YS2”:IfEnd:

If S>=130.666 And S<171.234:Then Prog“YS3”:IfEnd:

If S>=171.234 And S<196.234:Then Prog“YS4”:IfEnd:

If S>=196.234 And S<196.805:Then Prog“YS5”:IfEnd:

If S>=196.805 And S<221.805:Then Prog“YS6”:IfEnd:

If S>=221.805 And S<262.481:Then Prog“YS7”:IfEnd:

If S>=262.481 And S<287.481:Then Prog“YS8”:IfEnd:

If S>=287.481 And S<369.308:Then Prog“YS9”:IfEnd:

1÷P→C:(P-R)÷(2HPR)→D:180÷π→E:”BJ(Z-,Y+)=”? →Z:”ZJ(+)=”? →N:Abs(S-O)→W:Prog”JSGS”:”X=”:X◢”Y=”:Y◢”α=”:F■DMS◢Goto 0:

②子程序(JSGS) ’计算公式

0.1739274226→A:0.3260725774→B:0.0694318442→K:0.3300094782→L:1-L→F:1-K→M:

U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Bcos(G+QEFW(C+FWD))+Acos(G+QEMW(C+MWD)))→X:

V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Bsin(G+QEFW(C+FWD))+Asin(G+QEMW(C+MWD)))→Y:

G+QEW(C+WD)→F:X+Zcos(F+N)→X:Y+Zsin(F+N)→Y:

③子程序(YS1) ’第1段线元的数据库

3494949.1350→U:500226.0725→V:0→O:105°54′46.27″→G:105.666→H:10^45→P:10^45→R:0→Q:

说明:第2至9段线元的输入格式与第1段线元相同,因篇幅原因,不再一一展开。

(3)将设计提供坐标与CASIO fx-5800P计算坐标进行较差,最大差值为1 mm,如表4所示。

表4 设计提供坐标与CASIO fx-5800P计算坐标较差表

4 结 论

(1)通过计算实例与设计资料进行对照,计算结果满足规范精度要求。采用BASIC语言程序进行数据处理,尤其是批量数据处理,与人工处理数据相比较,工作效率将得到大幅度提高。

(2)计算实例仅是过程演示,测量人员在熟练掌握各种计算原理与计算公式的基础上,触类旁通、举一反三,合理运用BASIC语言撰写程式,将使其在工程测量领域得到更广泛的应用。

猜你喜欢

计算器程式计算公式
电机温升计算公式的推导和应用
增程式电动汽车续驶里程的延长优化
英语程式语可学性的语言模因论解读
基于Motor-CAD的增程式电动车发电机设计
[计算器不是万能的]
谈拟柱体的体积
微分在近似计算中的应用
一个损坏的计算器
计算器游戏
计算器