5800p正反算0Word格式.docx
《5800p正反算0Word格式.docx》由会员分享,可在线阅读,更多相关《5800p正反算0Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
附件(点击下载):
(在线预览)
程序源
2009.04.08校对件
2009.04.09附算例
原稿子程序J有误见此件红色为真2009.04.14
已有朋友成功,请与成功的朋友多沟通。
2009.04.12
CASIO-----fx5800
(任意平曲线极坐标与直角坐标放样,求里程及边距)
湖南津市赵济汉
主程序PQX
Deg:
Fix3:
“XZ→0:
YZ→1”?
A:
If
A=1:
ThenGoto1:
IfEnd↙
If
A=0:
Then“BS→0:
XY→1:
AND→2:
DK→3:
L(I)→4”?
O:
O=4:
Then
Goto1:
O=3:
Prog
“F.2”:
X=0:
IfEnd:
IfEnd↙
O≠1:
Then“X1”?
X:
“Y1”?
Y:
X→Z[11]:
Y→Z[12]:
“X2”?
P:
“Y2”?
Q:
Pol(P-X,Q-Y):
J﹤0:
J+360→J:
Cls:
“S12=”:
Locate6,1,I:
“B12=”:
J►DMS◣
1→B:
O=1:
Then“XY(0)→0:
≠﹥1”?
B:
Lbl
1:
A=1
And
O=3:
Then
Prog“Q.1”
子程序PPQX
(给定综合曲线属性)
“ZQX→0:
***→1:
***→2*******”?
C↙
C=0:
Then100→Z[98]:
n0→Z[99]:
C=1:
m1→Z[98]:
n1→Z[99]:
C=2:
m2→Z[98]:
n2→Z[99]:
*******
Prog“PQX”
其中:
mi为第i条综合曲线矩阵变量起始单元,(第1条综合曲线矩阵变量起始单元应自100开始,以便其他程序临时使用100以前的矩阵变量,综合曲线中每一基本单元需8个矩阵存储单元);
ni为第i条综合曲线中基本单元数,每增加一个条综合曲线则增加一行If
C=*******→Z[99]:
IfEnd↙语句。
还应注特别意,原有程序中的矩阵变量定维语句DimZ应取消,只要原有程序中的矩阵变量定维不大于100,原有程序的运行不受影响。
子程序Q.5
(建立数据库)
Fix5↙
0→I:
“N”?
W:
W→Z[99]:
“Z[MIN]”?
V:
V→Z[98]↙
“NO.I=”:
I◣
C:
V+8I→G↙
“→DK”?
A→Z[G]↙
“→X”?
B:
B→Z[G+1]↙
“→Y”?
C→Z[G+2]↙
“→AT”?
D:
D→Z[G+3]↙
“→(-1Y+1)”?
K:
K→Z[G+4]↙
“→L”?
E:
E→Z[G+5]↙
“→R1”?
F:
F→Z[G+6]↙
“→R2”?
O→Z[G+7]↙
2:
“JX→1:
NO→0:
OK→2”?
M:
M=2:
Goto3:
M=1:
Goto
I+1→I:
Goto
1↙
3:
“END”
子程序Q.6
“S”?
W=0:
Goto2:
I-W→W:
“⊿S=”:
Locate5,1,W:
“BP=”:
“OK”
子程序Q.1
X=0
Z[98]→I:
Z[99]→J:
“→DKP”?
S↙
S=0:
S﹤Z[I]:
Then“DKP<
MIN”◣
S>
Z[I+8J]:
Then“DKP>
MAX”◣
O≠4
B≠0:
Then“→B”?
Prog“J”:
T→U:
“→(-+)D÷
2”
N:
Else
0→N:
Prog“Q.2”:
“END”
子程序Q.2
O≠3
Then“→”:
Z[98]+8→M↙
S≥Z[M-8]And
S≤Z[M]:
I+1→I:
M+8→M↙
O=3
I→B:
IfEnd:
M→Z[27]:
Prog“Q.3”:
“L(I),I=”:
Cls:
“MIN=”:
Locate
6,1,Z[Z[98]+8I]:
“MAX=”:
6,2,Z[Z[98]+8I+8]:
I→B:
子程序Q.3
U=0:
B→I:
Z[98]+8I→G↙
Z[G]→Z↙
Z[G+1]→Z[1]:
Z[G+2]→Z[2]:
Z[G+3]→Z[3]↙
Z[3]:
“J”:
T→Z[3]↙
Z[G+4]→Z[4]:
Z[G+5]→M:
1÷
Z[G+6]→Z[5]:
Z[G+7]→Z[6]↙
Z[6]-Z[5]→Z[6]:
S-Z→D↙
0→N:
Prog
“Q.4”↙
子程序Q.4
(正算)
0:
0→I:
0→E:
0→F:
0→G:
0→H↙
I+1→I:
Z[3]+Z[4]((ID÷
12)(Z[5]+IDZ[6]÷
24÷
M)(180÷
л)→W:
I﹤12:
Frac(I÷
2)﹥0:
E+cos(W)→E:
F+sin(W)→F:
G+cos(W)→G:
H+sin(W)→H:
I﹤12:
Goto1:
IfEnd↙
Z[1]+(D÷
36)(cos(Z[3])+cos(W)+2G+4E)+Ncos(U+W)→P↙
Z[2]+(D÷
36)(sin(Z[3])+sin(W)+2H+4F)+Nsin(U+W)→Q↙
O≠0:
“XP=”:
Locate5,1,P:
“YP=”:
Locate5,2,Q:
“AT=”:
W►DMS◣
Z[27]→I:
Z[1]-S=0
Z[I+1]=0And
N=0:
P→Z[I+1]:
Q→Z[I+2]:
Prog“H”:
T→Z[I+3]:
Pol(P-Z[11],Q-Z[12]):
J<
0:
ThenJ+360→J:
“SP=”:
Locate5,1,I:
“Q.6”:
2
子程序F.2
(反算)
“ZH.D(LI)→0:
NO→1”?
U↙
Then“I”?
B:
Z[98]+8Z[99]→M↙
X=0:
Z[13]→X:
“X”?
X:
“Y”?
Y:
1→Z[8]↙
“⇒”↙
U=1:
Then-√((X-Z[M+1])²
+(Y-Z[M+2])²
)→Z[7]:
Z[7]+Z[M]→S:
Prog“Q.2”:
Z[98]+8B→M:
Z[M+3]:
Prog“J”:
T-90→T↙
(Y-Z[M+2])cos(T)-(X-Z[M+1])Sin(T)→Z[7]↙
U=1And
Abs(Z[7])≤0.01:
Then-0.01→Z[7]:
Z[7]→D:
Z[M]+D→S:
Z[M+8]:
Z[M+8]→S;
IfEnd
↙
Prog“Q.3”:
(Y-Q)cos(W-90)-(X-P)sin(W-90)→Z[8]↙
Z+Z[7]+Z[8]→S↙
Abs(Z[8])≥0.0001:
ThenZ[7]+Z[8]→D:
Prog“Q.4”:
D→Z[7]:
1:
U=1:
S+0.01<
Z:
Then“DKP≠”:
S◣
B<
Z[99]-1:
ThenB-1→B:
Z[Z[98]+8B]→I:
Z→J:
ElseZ→I:
Z[Z[98]+8Z[99]]→J:
“L(I)=”:
B◣
“MIN=”:
Locate6,1,I:
“MAX=”:
Locate6,2,J:
“END,⇒ZH.D(LI)”◣
X→Z[13]:
0→X:
3→O:
IfEnd:
U=0:
S<
Z-0.01:
Then“DK<
MIN,L→(I-1)”◣
S>
Z[Z[98]+8(B+1)]+0.01:
Then“DK>
MAX,L→(I+1)”◣
“DKP=”:
6,1,S:
X-P→P:
P=0:
×
10-9→P:
Pol(P,Y-Q):
sin(W-J)>
Then-I→I:
“D÷
2=”:
Locate6,2,I:
2↙
3
子程序J
Ans
÷
.36-16(Int
(Ans))÷
9-Int(100(Ans-Int(Ans))
)÷
90→T
子程序H
.64Int
(Ans)+.36Ans+.004Int((60(Ans-(Int(Ans))→T
算例1
例某工程C匝道:
一
启动Q.5
按下列数据建立矩阵存储表
给矩阵存储单元定维:
140→DimZ
综合曲线属性:
名C.ZD
编号0
Z[MIN]=100
N=4
自
然
段
名称
L0
L1
L2
L3
L4
DK
0
190
355.927
472.168
561.791
X
20934.495
21066.119
21142.859
21076.993
20988.267
Y
89274.172
89411.182
89552.427
89640.286
89644.485
AT
47.08177
45.09322
93.33281
160.09323
185.50027
±
1
-1
1
0
L
190
165.927
116.241
89.623
R1
5500
100
100
R2
×
1020
备注:
起始矩阵存储单元Z[100]
终了矩阵存储单元Z[139]。
(139=100+8×
5-1)
二
编写程序PPQX(给定综合曲线属性)
“C.ZD→0”?
C↙
4→Z[99]:
三
启动程序PPQX(指定需计算的综合曲线编号)
C.ZD→0?
提示C匝道赋值0
回车
(自动转向PQX进入各项计算)
平曲线程序运行提示符
CASIOfx—5800P湖南津市赵济汉
启动Q.5建立曲线要素矩阵存储表
提示符
示例
说明
N?
问综合曲线自然段数
Z[MIN]?
问矩阵存储起始单元
NO.I=
提示现在自然段
→DK?
问本段起点里程
→X?
问本段起点纵坐标
→Y?
问本段起点横坐标
→AT?
问本段起点切线方位(以小数点为度)
→(-1Y+1)?
问曲线偏向,左赋值-1,右赋值+1,直线可赋0.
→L?
问本段曲线长
→R1?
问本段起点曲率半径
→R2?
问本段终点曲率半径
JX→1:
NO→0:
OK→2?
问是否校对,是赋值1,否赋值0,本综合段结束赋值2。
(校对有误时可直接对显示值进行修改)
END
重复以上拾序步,直至本综合曲线各自然段赋值结束(赋值2)。
特别提示:
除起始自然段外,其后,各自然段X,Y,AT可缺省,其值均赋值为0,程序在首次运行时,依次计算各接点中桩坐标一次,则能自动补齐各缺省值。
这一功能在匝道曲线方程建立时,十分有利。
启动PPQX选择需计算的综合曲线
ZQX→0:
ZD→1****→M?
问在PPQX程序编写过程中,自定义的综合曲线属性,如:
主曲线赋值0,匝道赋值1,等等。
选择确定后,程序自动转向PQX,无需选择时可直接启动PQX。
启动PQX进入坐标计算阶段
XZ→0:
YZ→1?
问是否改变以前设定的工作状态,新工作状态赋值0,原工作状态赋值1。
(选择原工作状态时,程序直接进入上阶段运行状态,无需再次设置工作与计算状态)
BS→0:
→L(I)4?
选择新状态时:
问计算状态,极坐标放样赋值0,直角坐标赋值1,两种坐标都需要赋值2,求里程、边距赋值3,由里程求所在曲线段号赋值4。
选择原工作状态时不问。
极坐标放样
问计算状态,赋值0时
→X1?
问设站点纵坐标
→Y1?
问设站点横坐标
→X2?
问定向点纵坐标
→Y2?
问定向点横坐标,
由原状态进入时,以上不问。
S=
B12=
给出已知点间边长
给出定向角
→DKP?
问测点里程(赋值0时转向程序运行终止)
→B?
问测点偏角(以小数点为度)
→(-+)D÷
2?
问测点偏距
BP=
SP=
给出测点方向
给出测点边长
S?
问测点实测边长(赋值0时,转向测设下一点,问测点里程)
S=
给出修正值(-为退回、+为延伸)
DKP>
MAX
提示测点里程超出本综合段终点里程
DKP<
MIN
提示测点里程小于本综合段起点里程
程序运行终止(DKP=0时)
直角坐标放样
问计算状态,赋值1时
XY(0)⇒0:
≠⇒1?
中桩赋值0,边桩赋值1
问测点偏角(以小数点为度),中桩不问
问测点偏距,中桩不问
XP=
YP=
AT=
给出测点纵坐标
给出测点横坐标
给出测点切线方向
序运行程终止(DKP=0时)
两种坐标都需要
问计算状态,赋值2时
同上
*
从略
同时给出以上两种结果
由里程求所在曲线段号
问计算状态,赋值4时
L(I),I=
DK(MIN)=
DK(MAX)=
给出里程所在曲线段号。
给出本曲线段最小里程
给出本曲线段最大里程
本功能只是反求里程的一个辅助功能,以便程序按指定所在曲线段方式进行反算,快速获得计算结果。
反求里程边距
问计算状态,赋值3时
ZH.D(LI)→0:
NO→1
问反算形式,指定曲线段赋值0、不指定曲线段赋值1。
按指定曲线段反算
问反算形式,赋值0时。
I?
问曲线段(可慨略指定)
问纵坐标(X=0时,程序运行终止)
问横坐标
⇒
程序运行等待符
DKP=
D÷
2=
给出求点里程
给出求点边距(正交)
问下点曲线段
程序运行终止。
(X=0时)
特殊情况提示:
DK<
MIN,→L(I-1)
提示所求点不在本曲线区间,原段号应减1
DK﹥MIN,→L(I+1)
提示所求点不在本曲线区间,原段号应加1
这一功能的设置,便于反算点曲线区间位置不明确时,也能按指定曲线段形式进行反算。
按指定曲线段形式进行反算,有计算速度快,不存在程序判断盲点的问题,是反算形式的首选。
按不指定曲线段反算
问反算形式,赋值1时
问纵坐标。
(X=0时,程序运行终止)
问下点纵坐标
DKP≠
提示本里程有误,在程序判断盲区,不可采用。
给出本点所在曲线段号。
END,⇒ZH.D(LI)
提示中断运行程序,转向按指定曲线段形式进行反算。
2009-3-31
5800计算器全线坐标计算放样程序(修改版)
彭赐明
“XLZBJSCX”◢
LB1
0↙
CLS:
FIX4:
30→DIMZ↙
“XHS="
G(后视点X):
YHS="
L(后视点Y):
XZJ="
M(置镜点X):
YZJ="
N(置镜点Y):
Pol(G-M,L-N):
DH="
I(