将上例用4800系列计算器程序语言编译成该类型数据库为:
Lbl0
Y=10
X≤0=>Y=20:
Goto1◣
X≤1=>Y=30:
Goto1◣
X≤2=>Y=40:
Goto1◣
X≤3=>Y=50:
Goto1◣
Lbl1
Y"Y="◢
Goto0
将上述程序在CASIOfx-4800P上运行,当X输入值为时,程序会先将值“10”给予Y,然后进入下一行运行;在第二行运行时程序会用“”代入“X≤0”若是成立那么将值“10”用“20”置换,然后转到倒数第三行处将Y值显示出来,若是不成立那么继续向下代入直到符合条件为止。
本章中的数据库子程序是将求算点中桩桩号值作为变量,即上例中的“x”;将线路中的各HZ点作为设定条件,即上例中的“0,1,2,3”;将与各HZ点相应的曲线要素值作为赋值语句,即上例中的“10,20,30,40,50”。
当输入的桩号值在某一范围时就挪用该段的曲线要素,然后回到主程序进行计算。
3.1.4
程序框图
源代码
.1非对称大体型平曲线放样计算主程序,程序名:
【】
1.非对称大体型CASIOfx-4800P版
Lbl0
Norm:
Deg
{QW}:
Q"CHAINAGE"
Prog"HIGHWAY"…………………………………………………………运行数据库程序“HIGHWAY”
W"WIDTH"
QGoto0◣………………………………………………………………如所求桩号超出HZ点那么执行0标记
C=90=>GotoX◣……………………………………………………………如为正交那么执行X标记
C"Ang="◢……………………………………………………………………如为非正交那么显示交角值
LblX
R=0=>Goto1◣
G=AbsBπR÷180-(L+M)÷2……………………………………………计算圆曲线长
S=M:
Z=1………………………………………………………………………将M(Ls2)值给予S以计算p2和q2
LblY
P=S2÷24R-S^4÷2688R^3:
O=S÷2-S^3÷240R2………………计算内移值和切线增值
Z=1=>Z=0:
S=L:
U=P:
V=O:
GotoY◣将算得的p2和q2别离存入U、V,将L(Ls1)值给予回到Y标记以计算p1和q1
T=(R+U-(R+P)cosAbsB)÷sinAbsB+O…………………………计算第一切线长T(T1)
S=(R+P-(R+U)cosAbsB)÷sinAbsB+V…………………………计算第二切线长S(T2)
D=F-T…………………………………………………………………………计算ZH点桩号
QGoto0◣…………………………若是Q(输入的桩号)超过限值(线路起点桩号或上一交点的HZ点)那么转到0标记
Abs(Q-D)≤.1=>Q=D◣
Abs(Q-D-L)≤.1=>Q=D+L◣
Abs(Q-D-L-G÷2)≤.1=>Q=D+L+G÷2◣如输入的桩号值与主点相距内,
Abs(Q-D-L-G)≤.1=>Q=D+L+G◣那么该处桩号将默以为距其最近的主点。
Abs(Q-D-L-G-M)≤.1=>Q=D+L+G+M◣
Q≤D=>Goto1◣
Q≤D+L=>J=Q-D:
U=L:
Goto2◣
Q≤D+L+G=>J=1:
Goto3◣判定输入的桩号的位置
Q≤D+M+L+G=>J=Q-D-L-M-G:
U=M:
Goto2◣
Q>D+M+L+G=>Goto0◣
Lbl1
X=N+(Q-F)cosA
Y=E+(Q-F)sinA计算直线段的中桩坐标和法线方向方位角
S=A+C
Goto7
Lbl2
H=J-J^5÷40R2U2+J^9÷3456R^4U^4:
I=J^3÷6RU-J^7÷336R^3U^3+J^11÷42240R^5U^5
………………………………………………………………………………………计算缓和段切线支距
J=Q-D=>Goto4◣…………………………………………………………假设桩号在第一缓和段内那么转到4标记
Goto5……………………………………………………………………………假设桩号在第二缓和段内那么转到5标记
Lbl3
U=90(2Q-2D-L)÷πR
H=RsinU+O:
I=R(1-cosU)+P…………………………………………计算圆曲线段到HZ点切线支距
Lbl4
B<0=>I=-I◣…………………………………………………………………如曲线左偏那么为纵支距乘以符号函数
X=N-TcosA+HcosA-IsinA:
Y=E-TsinA+HsinA+IcosA……计算一缓和圆曲线的中桩坐标
Goto6
Lbl5
B>0=>I=-I◣
X=N+Scos(A+B)+Hcos(A+B)-Isin(A+B):
Y=E+Ssin(A+B)+Hsin(A+B)+Icos(A+B)
………………………………………………………………………………………计算第二缓和段的中桩坐标
Lbl6
U=R
B<0=>U=-R◣
J=Q-D=>S=C+A+90J2÷πUL◣……………………………………计算第一缓和段法线方向方位角
J=Q-D-L-M-G=>S=C+A+B-90J2÷πUM◣……………………计算第二缓和段法线方向方位角
J=1=>S=C+A+180(Q-D-L÷2)÷πU◣……………………………计算圆曲线段法线方向方位角
Lbl7
Fix3
"X=":
X=X+WcosS:
Pause0:
Y=Y+WsinS◢…………………计算边桩坐标并显示
Goto0
2.非对称大体型CASIOfx-4850P版
Lbl0
Norm:
Deg
{QW}:
Q"CHAINAGE":
Cls
Prog"HIGHWAY"9
W"WIDTH"
QGoto0◣
C=90=>GotoX◣
C"Ang="◢
LblX
R=0=>Goto1◣
G=AbsBπR÷180-(L+M)÷2
S=M:
Z=1
LblY
P=S2÷24R-S^4÷2688R^3
O=S÷2-S^3÷240R2
Z=1=>Z=0:
S=L:
U=P:
V=O:
GotoY◣
T=(R+U-(R+P)cosAbsB)÷sinAbsB+O
S=(R+P-(R+U)cosAbsB)÷sinAbsB+V
D=F-T
QGoto0◣
Abs(Q-D)≤.1=>Q=D◣
Abs(Q-D-L)≤.1=>Q=D+L◣
Abs(Q-D-L-G÷2)≤.1=>Q=D+L+G÷2◣
Abs(Q-D-L-G)≤.1=>Q=D+L+G◣
Abs(Q-D-L-G-M)≤.1=>Q=D+L+G+M◣
Q≤D=>Goto1◣
Q≤D+L=>J=Q-D:
U=L:
Goto2◣
Q≤D+L+G=>J=1:
Goto3◣
Q≤D+M+L+G=>J=Q-D-L-M-G:
U=M:
Goto2◣
Q>D+M+L+G=>Goto0◣
Lbl1
X=N+(Q-F)cosA
Y=E+(Q-F)sinA
S=A+C
Goto7
Lbl2
H=J-J^5÷40R2U2+J^9÷3456R^4U^4:
I=J^3÷6RU-J^7÷336R^3U^3+J^11÷42240R^5U^5
J=Q-D=>Goto4◣
Goto5
Lbl3
U=90(2Q-2D-L)÷πR
H=RsinU+O:
I=R(1-cosU)+P
Lbl4
B<0=>I=-I◣
X=N-TcosA+HcosA-IsinA:
Y=E-TsinA+HsinA+IcosA
Goto6
Lbl5
B>0=>I=-I◣
X=N+Scos(A+B)+Hcos(A+B)-Isin(A+B):
Y=E+Ssin(A+B)+Hsin(A+B)+Icos(A+B)
Lbl6
U=R
B<0=>U=-R◣
J=Q-D=>S=C+A+90J2÷πUL◣
J=Q-D-L-M-G=>S=C+A+B-90J2÷πUM◣
J=1=>S=C+A+180(Q-D-L÷2)÷πU◣
Lbl7
Fix3:
Cls
"X=":
X=X+WcosS:
Pause0:
"Y=":
Y=Y+WsinS◢
Goto0
3.对称大体型CASIOfx-4800P版
Lbl0
Norm:
Deg
{QW}:
Q"CHAINAGE"
Prog"HIGHWAY"
W"WIDTH"
QGoto0◣
C=90=>GotoX◣
C"Ang="◢
LblX
R=0=>Goto1◣
G=AbsBπR÷180-L
P=L2÷24R-L^4÷2688R^3
O=L÷2-L^3÷240R2
T=(R+P)tan(AbsB÷2)+O
D=F-T
Abs(Q-D)≤.1=>Q=D◣
Abs(Q-D-L)≤.1=>Q=D+L◣
Abs(Q-D-L-G÷2)≤.1=>Q=D+L+G÷2◣
Abs(Q-D-L-G)≤.1=>Q=D+L+G◣
Abs(Q-D-2L-G)≤.1=>Q=D+2L+G◣
Q≤D=>Goto1◣
Q≤D+L=>J=Q-D:
U=L:
Goto2◣
Q≤D+L+G=>J=1:
Goto3◣
Q≤D+2L+G=>J=Q-D-2L-G:
Goto2◣
Q>D+2L+G=>Goto0◣
Lbl1
X=N+(Q-F)cosA
Y=E+(Q-F)sinA
S=A+C
Goto7
Lbl2
H=J-J^5÷40R2L2+J^9÷3456R^4L^4:
I=J^3÷6RL-J^7÷336R^3L^3+J^11÷42240R^5L^5
J=Q-D=>Goto4◣
Goto5
Lbl3
U=90(2Q-2D-L)÷πR
H=RsinU+O:
I=R(1-cosU)+P
Lbl4
B<0=>I=-I◣
X=N-TcosA+HcosA-IsinA:
Y=E-TsinA+HsinA+IcosA
Goto6
Lbl5
B>0=>I=-I◣
X=N+Tcos(A+B)+Hcos(A+B)-Isin(A+B):
Y=E+Tsin(A+B)+Hsin(A+B)+Icos(A+B)
Lbl6
U=R
B<0=>U=-R◣
J=Q-D=>S=C+A+90J2÷πUL◣
J=Q-D-2L-G=>S=C+A+B-90J2÷πUL◣
J=1=>S=C+A+180(Q-D-L÷2)÷πU◣
Lbl7
Fix3
"X=":
X=X+WcosS:
Pause0:
Y=Y+WsinS◢
Goto0
4.对称大体型CASIOfx-4850P版
Lbl0
Norm:
Deg
{QW}:
Q"CHAINAGE":
Cls
Prog"HIGHWAY"
W"WIDTH"
QGoto0◣
C=90=>GotoX◣
C"Ang="◢
LblX
R=0=>Goto1◣
G=AbsBπR÷180-L
P=L2÷24R-L^4÷2688R^3
O=L÷2-L^3÷240R2
T=(R+P)tan(AbsB÷2)+O
D=F-T
Abs(Q-D)≤.1=>Q=D◣
Abs(Q-D-L)≤.1=>Q=D+L◣
Abs(Q-D-L-G÷2)≤.1=>Q=D+L+G÷2◣
Abs(Q-D-L-G)≤.1=>Q=D+L+G◣
Abs(Q-D-2L-G)≤.1=>Q=D+2L+G◣
Q≤D=>Goto1◣
Q≤D+L=>J=Q-D:
U=L:
Goto2◣
Q≤D+L+G=>J=1:
Goto3◣
Q≤D+2L+G=>J=Q-D-2L-G:
Goto2◣
Q>D+2L+G=>Goto0◣
Lbl1
X=N+(Q-F)cosA
Y=E+(Q-F)sinA
S=A+C
Goto7
Lbl2
H=J-J^5÷40R2L2+J^9÷3456R^4L^4:
I=J^3÷6RL-J^7÷336R^3L^3+J^11÷42240R^5L^5
J=Q-D=>Goto4◣
Goto5
Lbl3
U=90(2Q-2D-L)÷πR
H=RsinU+O:
I=R(1-cosU)+P
Lbl4
B<0=>I=-I◣
X=N-TcosA+HcosA-IsinA:
Y=E-TsinA+HsinA+IcosA
Goto6
Lbl5
B>0=>I=-I◣
X=N+Tcos(A+B)+Hcos(A+B)-Isin(A+B):
Y=E+Tsin(A+B)+Hsin(A+B)+Icos(A+B)
Lbl6
U=R
B<0=>U=-R◣
J=Q-D=>S=C+A+90J2÷πUL◣
J=Q-D-2L-G=>S=C+A+B-90J2÷πUL◣
J=1=>S=C+A+180(Q-D-L÷2)÷πU◣
Lbl7
Fix3:
Cls
"X=":
X=X+WcosS:
Pause0:
"Y=":
Y=Y+WsinS◢
Goto0
5.非对称大体型CASIOfx-4500PA版
Lbl0
Norm:
Deg
RL"LS1"M"LS2"F"JD"E"JDX"N"JDY"B"PJ"A"AZIMUTH"C""K"START"
………………………………………………………………………………………将各曲线要素变量用注释文显示
C=90=>GotoX◣
C"Ang="◢
LblX
R=0=>Goto1◣
G=AbsBπR/180-(L+M)/2
S=M:
Z=1
LblY
P=S2/24R-Sxy4/2688Rxy3………………………………………………………计算内移值
O=S/2-Sxy3/240R2…………………………………………………………………计算切线增值
Z=1=>Z=0:
S=L:
U=P:
V=O:
GotoY◣
T=(R+U-(R+P)cosAbsB)/sinAbsB+O:
S=(R+P-(R+U)cosAbsB)/sinAbsB+V
LblZ
Norm:
{QW}:
Q"CHAINAGE"W"WIDTH"
QGotoS◣……………………………………………………………若是桩号超出上一交点的HZ点那么转到执行S
Q=J=>Goto7◣……………………………………………………………若是本桩号与上一次输入的桩号相同那么转到执行7
D=F-T
Q>D+M+L+G=>GotoS◣
Q≤D=>Goto1◣
Q≤D+L=>J=Q-D:
U=L:
Goto2◣
Q≤D+L+G=>J=1:
Goto3◣
Q≤D+M+L+G=>J=Q-D-M-L-G:
U=M:
Goto2◣
Lbl1
X=E+(Q-F)cosA:
Y=N+(Q-F)sinA
D=A+C
Goto7
Lbl2
H=J-Jxy5/40R2U2+Jxy9/3456Rxy4Uxy4:
I=Jxy3/6RU-Jxy7/336Rxy3Uxy3+Jxy11/42240Rxy5Uxy5
J=Q-D=>Goto4◣
Goto5
Lbl3
U=90(2Q-2D-L)/πR
H=RsinU+O:
I=R(1-cosU)+P
Lbl4
B<0=>I=-I◣
X=E-TcosA+HcosA+Icos(A+90:
)Y=N-TsinA+HsinA+Isin(A+90)
Goto6
Lbl5
B>0=>I=-I◣
X=E+Scos(A+B)+Hcos(A+B)+Icos(A+B+90):
Y=N+Ssin(A+B)+Hsin(A+B)+Isin(A+B+90)
Lbl6
U=R
B<0=>U=-R◣
J=Q-D=>D=C+A+90J2/πUL◣
J=Q-D-M-L-G=>D=C+A+B-90J2/πUM◣
J=1=>D=C+A+180(Q-D-L/2)/πU◣
Lbl7
Fix3
H“X”=X+WcosD◢:
I“Y”=Y+WsinD◢
GotoZ
3.1.5.2数据库程序,程序名:
【HIGHWAY】
本程序能配合CASIOfx-4800P和CASIOfx-4850P版非对称/对称大体型平曲线主程序运行。
Goto1…………………………………………若是要独立计算单个交点,此行保留,不然能够删除。
Q≤###=>E=###:
N=###:
F=###:
B=###:
R=###:
L=###:
M=###:
A=###:
Goto2◣
…………………………
Q≤###=>E=###:
N=###:
F=###:
A=###:
B=0:
R=0:
L=0:
M=0:
Goto2◣
Lbl1
RL"LS1"M"LS2"F"JD"N"JDX"E"JDY"B"PJ"A"AZIMUTH"C"":
K"START":
Goto3
Lbl2
C=90:
K=###………………………………………………………………C—边桩与中桩的交角,K—起点桩号。
Lbl3
W=###………………………………………………………………………当要求算的边桩距中值为必然值时此行才输入。
若是主程序为对称大体型那么可将【HIGHWAY】中的“M=###”删除。
程序中各变量注释文涵义
R——圆曲线半径
LS1——第一缓和曲线长
LS2——第二缓和曲线长
JD——交点桩号
JDX——交点的X坐标
JDY——交点的Y坐标
PJ——偏角,以左负右正输入
AZIMUTH——起边方位角
—