5800计算器程序.docx

上传人:b****7 文档编号:11328708 上传时间:2023-02-27 格式:DOCX 页数:23 大小:30.39KB
下载 相关 举报
5800计算器程序.docx_第1页
第1页 / 共23页
5800计算器程序.docx_第2页
第2页 / 共23页
5800计算器程序.docx_第3页
第3页 / 共23页
5800计算器程序.docx_第4页
第4页 / 共23页
5800计算器程序.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

5800计算器程序.docx

《5800计算器程序.docx》由会员分享,可在线阅读,更多相关《5800计算器程序.docx(23页珍藏版)》请在冰豆网上搜索。

5800计算器程序.docx

5800计算器程序

曲線任意里程中邊樁坐標正反算5800p

TYQXJS(主程序名)

LbI0:

4→Dimz:

Cls

"1.SZ→XY"

"2.XY→SZ"?

→N:

Cls

"XO"?

U:

"YO"?

V:

"SO"?

O:

"FO"?

G:

"LS"?

H:

"RO"?

P:

"RN"?

R:

?

Q

1÷P→C:

(P-R)÷(2HPR)→D:

180÷π→E

N=2=>Goto2

LbI1:

Cls:

?

S

S=0=>Goto0  (注:

當S輸入0時,程序會由LbI0開始重新運行)

?

Z:

Abs(S-O)→W

Prog"SUB1":

Cls

"XS=":

X◢

"YS=":

Y◢

"FS=":

F-90►DMS◢

Goto1

LbI2:

Cls:

?

X

X=0=>Goto0  (注:

當X輸入0時,程序由會LbI0開始重新運行)

?

Y:

X→I:

Y→J

Prog"SUB2":

O+W→S:

Cls

"S=":

S◢

"Z=":

Z◢

Goto2

注:

紅色部可以不要,亦可以要,它的作用是將S或X輸入0時,程序會重新由頭開始運行,(即是可以計算下段線元)

SUB1(子程序名)

0.→A:

0.→B

0.→K:

0.→L

1-L→F:

1-K→M

G+QEKW(C+KWD)→Z[1]

G+QELW(C+LWD)→Z[2]

G+QEFW(C+FWD)→Z[3]

G+QEMW(C+MWD)→Z[4]

A×cos(Z[1])→X  (剩號可省略)

X+Bcos(Z[2])→X

X+Bcos(Z[3])→X

X+Acos(Z[4])→X

U+WX→X

Asin(Z[1])→Y

Y+Bsin(Z[2])→Y

Y+Bsin(Z[3])→Y

Y+Asin(Z[4])→Y

V+WY→Y

G+QEW(C+WD)+90→F

X+Zcos(F)→X

Y+Zsin(F)→Y

SUB2(子程序名)

G-90→T

(Y-V)cos(T)-(X-U)sin(T)→W

Abs(W)→W:

0→Z

LbI4:

Prog"SUB1"

T+QEW(C+WD)→L

(J-Y)cos(L)-(I-X)sin(L)→Z

IfAbs(Z)<1E-6:

Then0→Z:

Prog"SUB1"

(J-Y)÷sin(F)→Z

ElseW+Z→W:

Goto4:

IfEnd

注:

1E-6即是10的負6次方,亦即是等於0.

輸入時按SHIFT---log---(-)---6

亦可直接將IfAbs(Z)<1E-6寫成IfAbs(Z)<0.

注意:

本程序是根據yhhf編寫的4800P改寫而成,以下是源程序及算例

大家有問題亦可在以下網址查看及向yshf發問

曲线任意里程中边桩坐标正反算(CASIOfx-4800P计算器)程序

一、程序功能

        本程序由一个主程序(TYQXJS)和两个子程——正算子程序(SUB1)、反算子程序(

SUB2)序构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线

元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲

率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。

外也可以将本程序中核心算法部分的两个子程序移植到其它相关的程序中,用于对曲

线任意里程中边桩坐标进行正反算。

本程序也可以在CASIOfx-4500P计算器及CASIOfx-4850P计算器上运行。

  特别申明:

(1).适用于弧长小于2倍半径的各种线元坐标正反算,精度优

                于1mm;

                    

(2).在引用该核心计算部分时,请注明来源。

二、源程序

1.主程序(TYQXJS)

"1.SZ=>XY":

"2.XY=>SZ":

N:

U"X0":

V"Y0":

O"S0":

G"F0":

H"LS":

P"R0":

R"

RN":

Q:

C=1÷P:

D=(P-R)÷(2HPR):

E=180÷π:

N=1=>Goto1:

≠>Goto2Δ←┘

Lbl1:

{SZ}:

SZ:

W=Abs(S-O):

Prog"SUB1":

X"XS"=X◢

Y"YS"=Y◢

F"FS"=F-90◢

Goto1←┘

Lbl2:

{XY}:

XY:

I=X:

J=Y:

Prog"SUB2":

S"S"=O+W◢

Z"Z"=Z◢

Goto2

2.正算子程序(SUB1)

A=0.:

B=0.:

K=0.:

L=0.:

F=1-L:

M=1-K:

X=U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Bcos(G+QEFW

(C+FWD))+Acos(G+QEMW(C+MWD))):

Y=V+W(Asin(G+QEKW(C+KWD))+Bsin(G+

QELW(C+LWD))+Bsin(G+QEFW(C+FWD))+Asin(G+QEMW(C+MWD))):

F=G+QEW(C+

WD)+90:

X=X+ZcosF:

Y=Y+ZsinF

3.反算子程序(SUB2)

T=G-90:

W=Abs((Y-V)cosT-(X-U)sinT):

Z=0:

Lbl0:

Prog"SUB1":

L=T+QEW(C+

WD):

Z=(J-Y)cosL-(I-X)sinL:

AbsZ<1E-6=>Goto1:

≠>W=W+Z:

Goto0Δ←┘

Lbl1:

Z=0:

Prog"SUB1":

Z=(J-Y)÷sinF

三、使用说明

1、规定

        

(1)以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时,

Q=-1;当线元往右偏时,Q=1;当线元为直线时,Q=0。

        

(2)当所求点位于中线时,Z=0;当位于中线左铡时,Z取负值;当位于中线中线右

侧时,Z取正值。

        (3)当线元为直线时,其起点、止点的曲率半径为无穷大,以10的45次代替。

        (4)当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆

弧的半径。

        (5)当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45

次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。

止点与直线相接时,曲率半

径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。

        (6)当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的

值;与圆曲线相接时,曲率半径等于圆曲线的半径。

止点与直线相接时,曲率半径等

于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。

 

2、输入与显示说明

      输入部分:

      1.SZ=>XY

      2.XY=>SZ

      N?

  选择计算方式,输入1表示进行由里程、边距计算坐标;输入2表示由坐标反算

              里程和边距。

    X0?

线元起点的X坐标

    Y0?

线元起点的Y坐标

    S0?

线元起点里程

    F0?

线元起点切线方位角

    LS?

线元长度

    R0?

线元起点曲率半径

    RN?

线元止点曲率半径

    Q?

  线元左右偏标志(左偏Q=-1,右偏Q=1,直线段Q=0)

      S?

正算时所求点的里程

      Z?

正算时所求点距中线的边距(左侧取负,值右侧取正值,在中线上取零)

      X?

反算时所求点的X坐标

      Y?

反算时所求点的Y坐标

      显示部分:

      XS=×××    正算时,计算得出的所求点的X坐标

      YS=×××    正算时,计算得出的所求点的Y坐标

      FS=×××    正算时,所求点对应的中线点的切线方位角

      S=×××    反算时,计算得出的所求点的里程

      Z=×××    反算时,计算得出的所求点的边距

 

四、算例

        某匝道的由五段线元(直线+完整缓和曲线+圆曲线+非完整缓和曲线+直线)组

成,各段线元的要素(起点里程S0、起点坐标X0Y0、起点切线方位角F0、线元长度

LS、起点曲率半径R0、止点曲率半径RN、线元左右偏标志Q)如下:

S0  X0      Y0                  F0            LSR0RN    Q

500.000    19942.837    28343.561    1251631.00    269.256    1E451E45      0

769.256    19787.340    28563.378    1251631.00      37.492    1E45221.75    -1

806.748    19766.566    28594.574    1202554.07    112.779    221.75221.75    -1

919.527    19736.072    28701.893      911730.63      80.285    221.759579.228  -1

999.812    19744.038    28781.659      804050.00    100.000    1E451E45      0

        1、正算

          (注意:

略去计算方式及线元要素输入,请自行根据所求点所在的线元输入线元

要素)

            S=700  Z=-5    计算得  XS=19831.41785  YS=28509.72590

            S=700  Z=0    计算得  XS=19827.33592  YS=28506.83837

            S=700  Z=5    计算得  XS=19823.25398  YS=28503.95084

            S=780  Z=-5    计算得  XS=19785.25749  YS=28575.02270

            S=780  Z=0    计算得  XS=19781.15561  YS=28572.16358

            S=780  Z=5    计算得  XS=19777.05373  YS=28569.30446

          

            S=870  Z=-5    计算得  XS=19747.53609  YS=28654.13091

            S=870  Z=0    计算得  XS=19742.68648  YS=28652.91379

            S=870  Z=5    计算得  XS=19737.83688  YS=28651.69668

      

            S=940  Z=-5.123    计算得  XS=19741.59118  YS=28722.05802

            S=940  Z=0            计算得  XS=19736.47687  YS=28722.35642

            S=940  Z=3.009    计算得  XS=19733.47298  YS=28722.53168

            

      2、反算

            X=19831.418  Y=28509.726  计算得  S=699.  Z=-5.

            X=19827.336  Y=28506.838  计算得  S=699.  Z=0.

            X=19823.25398  Y=28503.95084    计算得  S=699.  Z=5.

          X=19785.25749  Y=28575.02270  计算得  S=780.  Z=-5.

          X=19781.15561  Y=28572.16358  计算得  S=780.  Z=-0.

          X=19777.05373  Y=28569.30446  计算得  S=780.  Z=4.

          

          X=19747.536  Y=28654.131  计算得  S=870.  Z=-4.

          X=19742.686  Y=28652.914  计算得  S=870.  Z=-0.

          X=19737.837  Y=28651.697  计算得  S=870.  Z=4.

          X=19741.5912  Y=28722.0580  计算得  S=939.  Z=-5.

          X=19736.4769  Y=28722.3564  计算得  S=939.  Z=-0.

          X=19733.4730  Y=28722.5317  计算得  S=940.  Z=3.

谢谢发贴:

+24分【测量空间】[0

查看楼主其它文章  <<返回

  → 回复内容      只查看楼主与本人回复

沙发:

哈哈明

09-1-299:

33回

评:

+8分

详细,简洁,不错,适合初学者。

谢谢楼主辛苦改编

2楼:

蓝天小乖

09-2-514:

4回

评:

+6分

谢谢!

我下载试试。

3楼:

'workers

09-2-720:

12回

本人是初学者,对于正算算例里的起点曲率半径R0、止点曲率半径RN、线元左右偏标志Q的数值不是很明白

4楼:

'workers

09-2-720:

38回

抱歉,认真看了说明后已经知道起点曲率半径R0=10的45次方,止点曲率半径RN=10的45次方、线元左右偏标志Q的数值=0.只是套用算例中的数据计算后,误差惨不忍睹.

5楼:

'workers

09-2-80:

35回

我是如下输入程序的,请LZ看看错误在哪,

TYQXJS(主程序名)

LbI0:

4→DimZ:

Cls

"1.SZ→XY"

"2.XY→SZ"?

→N:

Cls

"XO"?

U:

"YO"?

V:

"SO"?

O:

"FO"?

G:

"LS"?

H:

"RO"?

P:

"RN"?

R:

?

Q

1÷P→C:

(P-R)÷(2HPR)→D:

180÷π→E

N=2=>Goto2

LbI1:

Cls:

?

S

S=0=>Goto0  

?

Z:

Abs(S-O)→W

Prog"SUB1":

Cls

"XS=":

X◢

"YS=":

Y◢

"FS=":

F-90►DMS◢    (90与►DMS有空格?

?

?

?

?

?

Goto1

LbI2:

Cls:

?

X

X=0=>Goto0  

?

Y:

X→I:

Y→J

Prog"SUB2":

O+W→S:

Cls

"S=":

S◢

"Z=":

Z◢

Goto2

SUB1(子程序名)

0.→A:

0.→B

0.→K:

0.→L

1-L→F:

1-K→M

G+QEKW(C+KWD)→Z[1]

G+QELW(C+LWD)→Z[2]

G+QEFW(C+FWD)→Z[3]

G+QEMW(C+MWD)→Z[4]

Acos(Z[1])→X  

X+Bcos(Z[2])→X

X+Bcos(Z[3])→X

X+Acos(Z[4])→X

U+WX→X

Asin(Z[1])→Y

Y+Bsin(Z[2])→Y

Y+Bsin(Z[3])→Y

Y+Asin(Z[4])→Y

V+WY→Y

G+QEW(C+WD)+90→F

X+Zcos(F)→X

Y+Zsin(F)→Y

SUB2(子程序名)

G-90→T

(Y-V)cos(T)-(X-U)sin(T)→W

Abs(W)→W:

0→Z

LbI4:

Prog"SUB1"

T+QEW(C+WD)→L

(J-Y)cos(L)-(I-X)sin(L)→Z

IfAbs(Z)<10∧(-6):

Then0→ZProg"SUB1"    (Z与Prog"SUB1"之间的空格?

?

?

(J-Y)÷sin(F)→Z

ElseW+Z→W:

Goto4:

IfEnd

6楼:

tung楼主

09-2-815:

34回

所有程序都沒有空格,一直輸入就可以,轉行別忘記按EXE鍵,

本人輸入后,計算所得答案与yshf提供的答案一樣

=>---是一內置符號.輸入按FUNCTION3REPLAY(向下鍵二下)3

大家有問題亦可在以下網址查看及向yshf發問

7楼:

'it87520

09-2-1520:

18回

评:

+6分

很好,很简洁,辛苦啦,非常感谢

8楼:

'hong

09-2-1922:

49回

评:

+10分

楼主,哪些地方要转行的呢?

9楼:

'hong

09-2-200:

19回

评:

+10分

楼主,怎么我到Q就错了呢?

1.SZ=>XY

      2.XY=>SZ

      N?

  选择计算方式,输入1表示进行由里程、边距计算坐标;输入2表示由坐标反算

              里程和边距。

    X0?

线元起点的X坐标

    Y0?

线元起点的Y坐标

    S0?

线元起点里程

    F0?

线元起点切线方位角

    LS?

线元长度

    R0?

线元起点曲率半径

    RN?

线元止点曲率半径

到了Q?

  就错了

10楼:

'鸿

09-2-200:

25回

评:

+10分

楼主,你能用电话帮我下吗?

我真的不知道错在哪,你发条信息来,我给你回打电话。

谢谢了

11楼:

'geergril

09-2-2018:

41回

评:

+10分

输入变量运算正确,但强烈建议楼主将其改编为数据库型的最好,期待楼主出新版本!

!

!

12楼:

tung楼主

09-2-2019:

50回

10楼:

鸿

建议再检查清楚

13楼:

'it87520

09-2-2023:

24回

楼主,请问一下,为什么我反算的时侯桩号会对而距离不对?

还有就是该语句IfAbs(Z)<10∧(-6):

Then0→ZProg"SUB1"后面的0→Z:

Prog"SUB1"是否要加冒号?

14楼:

'111

09-2-229:

29回

评:

+4分

楼主,  我为什么正算行  反算就不行了    那里有问题    请你仔细检查检查

15楼:

'111

09-2-229:

30回

评:

+4分

楼主,  我为什么正算行  反算就不行了    那里有问题    请你仔细检查检查

16楼:

tung楼主

09-2-2218:

55回

13楼:

it87520

要加冒号的,多谢提示,已更正

IfAbs(Z)<10∧(-6):

Then0→Z:

Prog"SUB1"

17楼:

tung楼主

09-2-2220:

37回

14楼:

111

本人初次输入后亦有问题,经多次检查后才能使用

运行程序时程序如显示SyntaxERROR,这表示程序中欠缺了某种符号,例如冒号.变量(英文字母)等

这时你要按AC键或者EXIT键看下光标停在什么位置,并检查光标附近句子是缺少了什么符号

18楼:

'hanhan

09-2-2219:

55回

评:

+8分

请问楼主,我按照你上面程序编写还是不能进行计算~~~    

我编写完成后,输入第一个命令就是选择正算还是反算(我那个计算器上面没有出现N这个符号,不知道是什么原因)

19楼:

tung楼主

09-2-2220:

35回

18楼:

hanhan

没错,N这个变量是不会显示的,应该显示如下:

1.SZ→XY

2.XY→SZ?

执行SZ→XY时------输入1EXE

执行XY→SZ时------输入2EXE

20楼:

'111

09-2-239:

13回

评:

+10分

对了    谢谢

21楼:

'hanhan

09-2-239:

37回

评:

+8分

请问楼主,整个程序我照你上面编写,执行还是不成功哦~~~

不知道是什么原因哦(执行程序之后出现:

GO  ERROR

22楼:

'hanhan

09-2-2310:

37回

评:

+8分

请问楼主,程序里面0和o如何区分~~

23楼:

'geergirl

09-2-2315:

42回

这个程序手输线元参数后计算结果是正确的,但不是数据库,感觉不好

24楼:

'hanhan

09-2-2317:

47回

听不懂,数据库程序跟这个有区别吗?

  可以讲解一下吗?

25楼:

tung楼主

09-2-2320:

17回

LbI0

X=0=>Goto0

以上的是零(比较扁瘦)

"XO"?

U:

"YO"?

V:

"SO"?

O:

"FO"?

G:

"LS"?

H:

"RO"?

P:

"RN"?

R:

?

Q

以上的是英文字母O(比较园肥)

26楼:

'geergirl

09-2-2320:

33回

评:

+6分

输入变量运算正确,但强烈建议楼主将其改编为数据库型的最好能全线连续计算,期待楼主出新版本!

!

!

27楼:

'包西

09-2-2321:

47回

楼主你好,可以给我说说在那里可以找到这几个固定值吗?

谢谢了,                                  0.→A:

  0.→B

0.→K  :

0.→L  

28楼:

vbvbvbvb

09-2-2322:

32回

楼主:

  这个5800程序,怎样加入数据库?

  4850已解决!

29楼:

'liugang

09-2-2518:

0回

这个程序4800版本我一直在用(已经2年了),现在出来了5800版本,真高兴啊,只是给楼主提个问题:

应用中发现反算程序计算里程和偏移值相差太大,只有把反算程序运行两次差值才可以达到精度,请问楼主是否注意到,能否改进

30楼:

tung楼主

09-2-2519:

59回

27.28.28搂:

这个程序不是我编写的,是改编自本论坛yshf的4800p

大家有問題亦可在以下網址查看及向yshf發問

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1