暴强卡西欧5800计算器程序湖南津市 赵济汉.docx
《暴强卡西欧5800计算器程序湖南津市 赵济汉.docx》由会员分享,可在线阅读,更多相关《暴强卡西欧5800计算器程序湖南津市 赵济汉.docx(17页珍藏版)》请在冰豆网上搜索。
![暴强卡西欧5800计算器程序湖南津市 赵济汉.docx](https://file1.bdocx.com/fileroot1/2023-1/10/81414923-da0a-43bf-969c-428fdcfff18d/81414923-da0a-43bf-969c-428fdcfff18d1.gif)
暴强卡西欧5800计算器程序湖南津市赵济汉
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:
IfEnd↙
If O=4:
Then Goto1:
IfEnd↙
If O=3:
Then Prog “F.2”:
If X=0:
Then Goto1:
IfEnd:
IfEnd↙
If O≠1:
Then“X1”?
X:
“Y1”?
Y:
X→Z[11]:
Y→Z[12]:
“X2”?
P:
“Y2”?
Q:
Pol(P-X,Q-Y):
If J﹤0:
Then J+360→J:
IfEnd:
Cls:
“S12=”:
Locate6,1,I:
“B12=”:
J►DMS◣
1→B:
IfEnd↙
If O=1:
Then“XY(0)→0:
≠﹥1”?
B:
IfEnd↙
Lbl 1:
If A=1 And O=3:
Then Prog “F.2”:
IfEnd:
Prog“Q.1”
子程序PPQX (给定综合曲线属性)
“ZQX→0:
***→1:
***→2*******”?
C↙
If C=0:
Then100→Z[98]:
n0→Z[99]:
IfEnd↙
If C=1:
Then m1→Z[98]:
n1→Z[99]:
IfEnd↙
If C=2:
Then m2→Z[98]:
n2→Z[99]:
IfEnd↙
*******
Prog“PQX”
其中:
mi为第i条综合曲线矩阵变量起始单元,(第1条综合曲线矩阵变量起始单元应自100开始,以便其他程序临时使用100以前的矩阵变量,综合曲线中每一基本单元需8个矩阵存储单元);ni为第i条综合曲线中基本单元数,每增加一个条综合曲线则增加一行If C=*******→Z[99]:
IfEnd↙语句。
还应注特别意,原有程序中的矩阵变量定维语句DimZ应取消,只要原有程序中的矩阵变量定维不大于100,原有程序的运行不受影响。
子程序Q.5 (建立数据库)
Deg:
Fix5↙
0→I:
“N”?
W:
W→Z[99]:
“Z[MIN]”?
V:
V→Z[98]↙
Lbl 1:
“NO.I=”:
I◣
Lbl C:
V+8I→G↙
“→DK”?
A:
A→Z[G]↙
“→X”?
B:
B→Z[G+1]↙
“→Y”?
C:
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:
O→Z[G+7]↙
Lbl 2:
“JX→1:
NO→0:
OK→2”?
M:
If M=2:
Then Goto3:
IfEnd:
If M=1:
Then Goto C:
IfEnd↙
I+1→I:
Goto 1↙
Lbl 3:
“END”
子程序Q.6
Lbl 1:
“S”?
W:
If W=0:
Then Goto2:
IfEnd↙
I-W→W:
Cls:
“⊿S=”:
Locate5,1,W:
“BP=”:
J►DMS◣
Goto 1↙
Lbl 2:
Cls:
“OK”
子程序Q.1
If X=0 And O=3:
Then Goto 2:
IfEnd↙
Lbl 1:
Z[98]→I:
Z[99]→J:
“→DKP”?
S↙
If S=-1:
Then Prog “JH.ZJ”:
Goto 1:
IfEnd↙(加桥台转轴时)
If S=-2:
Then Prog “ZH.2”:
Goto 1:
IfEnd↙(加涵通转轴时)
If S=0:
Then Goto 2:
IfEnd:
If S﹤Z[I]:
Then“DKPGoto 1:
IfEnd:
If S>Z[I+8J]:
Then“DKP>MAX”◣
Goto 1:
IfEnd↙
If O≠4 And B≠0:
Then“→B”?
V:
V:
Prog“J”:
T→U:
“→(-+)D÷2” ?
N:
Else 0→N:
IfEnd↙
Prog“Q.2”:
Goto 1↙
Lbl 2:
“END”
子程序Q.2
If O≠3 :
Then“→”:
IfEnd↙
0→I:
Z[98]+8→M↙
If S≥Z[M-8]And S≤Z[M]:
Then Goto 1:
IfEnd↙
Lbl 2:
I+1→I:
M+8→M↙
If S≤Z[M]:
Then Goto 1:
Else Goto 2:
IfEnd↙
Lbl 1:
If O=3 :
Then I→B:
IfEnd:
M→Z[27]:
If O≠4 :
Then Prog“Q.3”:
Else “L(I),I=”:
I◣
Cls:
“MIN=”:
Locate 6,1,Z[Z[98]+8I]:
“MAX=”:
Locate 6,2,Z[Z[98]+8I+8]:
I→B:
IfEnd↙
子程序Q.3
If O=3 And U=0:
Then B→I:
IfEnd↙
Z[98]+8I→G↙
Z[G]→Z↙
Z[G+1]→Z[1]:
Z[G+2]→Z[2]:
Z[G+3]→Z[3]↙
Z[3]:
Prog “J”:
T→Z[3]↙
Z[G+4]→Z[4]:
Z[G+5]→M:
1÷Z[G+6]→Z[5]:
1÷Z[G+7]→Z[6]↙
Z[6]-Z[5]→Z[6]:
S-Z→D↙
If O=3 :
Then 0→N:
IfEnd:
Prog “Q.4”↙
子程序Q.4 (正算)
Lbl 0:
0→I:
0→E:
0→F:
0→G:
0→H↙
Lbl 1:
I+1→I:
Z[3]+Z[4]((ID÷12)(Z[5]+IDZ[6]÷24÷M)(180÷л)→W:
If I﹤12:
Then If Frac(I÷2)﹥0:
Then E+cos(W)→E:
F+sin(W)→F:
Else G+cos(W)→G:
H+sin(W)→H:
IfEnd:
IfEnd↙
If I﹤12:
Then 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↙
If O=3:
Then Goto 2:
IfEnd↙
If O≠0:
Then Cls:
“XP=”:
Locate5,1,P:
“YP=”:
Locate5,2,Q:
“AT=”:
W►DMS◣
IfEnd↙
Z[27]→I:
If Z[I]-S=0 And Z[I+1]=0And N=0:
Then P→Z[I+1]:
Q→Z[I+2]:
W:
Prog“H”:
T→Z[I+3]:
IfEnd↙
If O≠1:
Then Pol(P-Z[11],Q-Z[12]):
If J<0:
ThenJ+360→J:
IfEnd:
Cls:
“SP=”:
Locate5,1,I:
“BP=”:
J►DMS◣
Prog “Q.6”:
IfEnd↙
Lbl 2
子程序F.2 (反算)
“ZH.D(LI)→0:
NO→1”?
U↙
Lbl 2:
If U=0:
Then“I”?
B:
IfEnd↙
Z[98]+8Z[99]→M↙
If X=0:
Then Z[13]→X:
IfEnd:
“X”?
X:
If X=0:
Then Goto 3:
IfEnd↙
“Y”?
Y:
1→Z[8]↙
“=〉”↙
If U=1:
Then-√((X-Z[M+1])²+(Y-Z[M+2])²)→Z[7]:
Z[7]+Z[M]→S:
Prog“Q.2”:
IfEnd↙
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]↙
If U=1And Abs(Z[7])≤0.01:
Then-0.01→Z[7]:
IfEnd↙
Z[7]→D:
Z[M]+D→S:
If S>Z[M+8]:
Then Z[M+8]→S;IfEnd ↙
If U=0:
Then Prog“Q.3”:
Else Prog“Q.2”:
IfEnd↙
“=〉”↙
Lbl 1:
(Y-Q)cos(W-90)-(X-P)sin(W-90)→Z[8]↙
Z+Z[7]+Z[8]→S↙
If Abs(Z[8])≥0.0001:
ThenZ[7]+Z[8]→D:
Prog“Q.4”:
D→Z[7]:
Goto 1:
IfEnd↙
If U=1:
Then If S+0.01Then“DKP≠”:
S◣
If BThenB-1→B:
Z[Z[98]+8B]→I:
Z→J:
ElseZ→I:
Z[Z[98]+8Z[99]]→J:
IfEnd:
“L(I)=”:
B◣
Cls:
“MIN=”:
Locate6,1,I:
“MAX=”:
Locate6,2,J:
“END,=〉ZH.D(LI)”◣
X→Z[13]:
0→X:
3→O:
Goto 3:
IfEnd:
IfEnd↙
If U=0:
Then If SThen“DKGoto 2:
IfEnd:
If S>Z[Z[98]+8(B+1)]+0.01:
Then“DK>MAX,L→(I+1)”◣
Goto 2:
IfEnd:
IfEnd↙
Cls:
“DKP=”:
Locate 6,1,S:
X-P→P:
If P=0:
Then ×10-9→P:
IfEnd:
Pol(P,Y-Q):
If sin(W-J)>0:
Then-I→I:
IfEnd:
“D÷2=”:
Locate6,2,I:
Goto 2↙
Lbl 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
为了实现桥台转轴坐标计算,现(
子程序JH.ZJ (桥台转轴)
“=〉B”?
V:
V:
Prog“J:
W+T→T↙
Lbl 1:
“=〉(-Y+)D”?
N:
N=0=〉Goto2:
“=〉(-→+)S”?
S↙
Pol(N,S):
Rec(I,T-J)↙
Cls:
“X=”:
Locate 6,1,I+P:
“Y=”:
Locate 6,2,J+Q◣
Goto1↙
Lbl 2:
“OK”◣
在子程序Q.1中语句Lbl 1:
Z[98]→I:
Z[99]→J:
“→DKP”?
S↙后加
If S=-1:
Then Prog “JH.ZJ”:
Goto 1:
IfEnd↙(加桥台转轴时)就可以了,(,见绿色标注语句。
桥台(桩基)转轴直角坐标计算运行提示符
直角坐标放样令DKP=-1时,转向桥台(桩基)转轴直角坐标计算
提 示 符 说 明
以上一测点中桩为中心作偏转
=〉B?
问转轴偏角(以小数点为度)
=〉(-Y+)D?
问偏距(与直角坐标放样时意义一致)。
赋值0时转向OK
=〉(-→+)S?
问支距(小里程方向为-,大里程方向为+)
X= 给出点位纵坐标
Y= 给出点位横坐标
OK 本转轴各点计算结束,返回直角坐标放样。
子程序ZH.2 (涵通转轴)
“=〉B”?
V:
V:
Prog“J”:
W+T→T
Lbl 1:
“=〉(-→+)K”?
S:
S=0=〉Goto2:
“=〉(-Y+)D”?
N↙
NCos(T)+P→X:
NSin(T)+Q→Y ↙
Cls:
“X=”:
Locate 6,1,SCos(W)+X:
“Y=”:
Locate 6,2,SSin(W)+Y◣
Goto1↙
Lbl 2:
“OK”◣
在子程序Q.1中语句If S=-1:
Then Prog “JH.ZJ”:
Goto 1:
IfEnd↙后加
If S=-2:
Then Prog “ZH.2”:
Goto 1:
IfEnd↙(加涵通转轴时)即可。
涵通转轴直角坐标计算 中桩直角坐标放样令DKP=-2时,
提 示 符 示 例 说 明
以上一测点中桩为中心作偏转
=〉B?
问涵通偏角(以小数点为度)
=〉(-→+)δK?
问里程差(相对于涵通中桩,小里程为-、大里程为+),赋值0时转向OK
=〉(-Y+)D?
问偏距(与直角坐标放样时意义一致)
X= 给出点位纵坐标
Y= 给出点位横坐标
OK 本转轴各点计算结束,返回直角坐标放样。
算例1
例某工程C匝道:
根据算例数据确定综合曲线属性:
令名C.ZD 令编号0 令(矩阵存起始储单元)Z[MIN]=100 (综合曲线段数,不含终点)N=4
红色数据应在Q.5程序运行时按提示赋值
一 给矩阵存储单元定维:
(COMP状态下) 140→DimZ
二 编写程序PPQX(PROG状态下给定综合曲线属性)
“C.ZD→0”?
C↙
If C=0:
Then起始单元100→Z[98]:
段数4→Z[99]:
IfEnd↙
Prog“PQX”
三 启动Q.5 按下列数据建立矩阵存储表 (COMP状态下按提示赋值,详见附件运行提示符)
自 然 段
名称 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 1 1 0
L 190 165.927 116.241 89.623 0
R1 5500 5500 100 100 0
R2 5500 100 100 ×1020 0
备注:
起始矩阵存储单元Z[100] 终了矩阵存储单元Z[139]。
(139=100+8×5-1)
四 启动程序PPQX(COMP状态下指定需计算的综合曲线编号)
C.ZD→0?
提示C匝道赋值0
回车
(自动转向PQX进入各项计算)
为了提高计算速度,现提供Q.4(5点法加速),以该程序取代原有Q.4,其它无需改变。
取代后按指定区间反算时间大约4秒,有兴趣的朋友可以试试。
Q.4 (5点法加速)
If Z[4]=0:
Then1→Z[4]:
IfEnd↙
Z[4]Z[G+6]→Z[9]:
Z[4]Z[G+7]→Z[10]↙
(Z[9]-Z[10])÷(2M Z[9]Z[10])→Z[13]:
S-Z→Z[14]:
Z[13]Z[14]→Z[13]:
1÷Z[9]→Z[22]↙
0.26→Z[15]:
0.74→Z[16]:
0.02→Z[17]:
0.82→Z[18]↙
1-Z[18]→Z[19]:
1-Z[17]→Z[20]:
180÷л→Z[21]↙
Z[3]+Z[17]Z[14](Z[22]+Z[17]Z[13])Z[21]→Z[17]↙
Z[3]+Z[18]Z[14](Z[22]+Z[18]Z[13])Z[21]→Z[18]↙
Z[3]+Z[19]Z[14](Z[22]+Z[19]Z[13])Z[21]→Z[19]↙
Z[3]+Z[20]Z[14](Z[22]+Z[20]Z[13])Z[21]→Z[20]↙
Z[3]+Z[14](Z[22]+Z[13])Z[21]→W↙
Z[1]+Z[14](Z[15]cos(Z[17])+Z[16]cos(Z[18])+Z[16]cos(Z[19])+Z[15]cos(Z[20]))+Ncos(U+W)→P↙
Z[2]+Z[14](Z[15]sin(Z[17])+Z[16]sin(Z[18])+Z[16]sin(Z[19])+Z[15]sin(Z[20]))+Nsin(U+W)→Q↙
If O=3:
Then Goto2:
IfEnd↙
If O≠0:
Then Cls:
“XP=”:
Locate5,1,P:
“YP=”:
Locate5,2,Q:
“AT=”:
W►DMS◣
IfEnd↙
Z[27]→I:
If Z[I]-S=0 And Z[I+1]=0 AndN=0:
Then P→Z[I+1]:
Q→Z[I+2]:
W:
Prog“H”:
T→Z[I+3]:
IfEnd↙
If O≠1:
Then Pol(P-Z[11],Q-Z[12]):
If J<0:
ThenJ+360→J:
IfEnd:
Cls:
“SP=”:
Locate5,1,I:
“BP=”:
J►DMS◣
Prog “Q.6”:
IfEnd↙
Lbl 2
需对程序有更多了解,可点击附件,看运行提示符
平曲线程序运行提示符
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
重复以上拾