800P计算器)程序(附带高程).doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、功能及原理说明 1. 功能说明:本程序由一个主程序(1-MAIN)和七个子程序——正算子程序(1-SUB-ZS)、反算子程序(1-SUB-FS)等构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。本修改版程序既可实现正算全线贯通,亦可实现反算全线贯通。本程序在CASIO FX-5800P计算器运行。 2.计算原理:利用Gauss-Legendre 5点通用公式正算线路中边桩坐标、线外测点至曲线元起点和终点的垂距的符号是否相异(即Dca×Dcb=0=该测点在其线元内)进行判断并利用该线元要素反算中桩里程、支距,最后计算出反算结果。 3. 程序输入计算器后,请根据统计串列List X,Y,freq[N]在程序中实际可能被使用的维数,将其统计矩阵串列改为包含相应维数的任意数据的矩阵,即在list列表中随机输入相应维数的数据,保证矩阵大小符合维数要求。 4. 本程序正算速度在1-2秒左右,反算比正算慢点,可根据需要调整精度加快速度。本程序可建立曲线要素数据库及高程变坡点数据库,一次输入整条线路数据,计算时自动调用数据库,实现全线贯通,也可临时手动输入线元计算要素进行计算。 5. 本程序由小骆在前人的基础上改进而成,经个人测试可用。学识浅薄,不足之处,在所难免,欢迎提出改进意见。交流邮箱:716118673@ 二、源程序 1.主程序(1-MAIN) Deg:fix 3 20→DimZ Lbl 0:cls:“INPUT(0),ZX(1),YX(2)”?I (选择手动输入计算参数0,还是调用线路数据1,2) If I=0:Then Prog “1-DAT1”:IfEnd “SZ=XY(1),XY=SZ(2)”?N(正算,反算) If N=1 :Then Goto 1 Else If N=2 :Then Goto 2 Else Goto 3 IfEnd:IfEnd Lbl 1:“KP=”?S(输入待求桩号) If S0:Then Goto 0:IfEnd “JL(m)=”?Z (输入偏距) If Z≠0:Then “ANGLE→R(Deg)=”?M:IfEnd (输入斜交右角) If I≠0:Then Prog “1-DAT2”:IfEnd S-O→W:If W0:Then Goto 0:Else If WH:Then cls:locate 6,2,KP OUT◢ Goto 0:IfEnd:IfEnd(前半条针对“DAT”情况,后半条针对“INPUT”情况。) Prog “1-SUB-ZS”:Prog “1-SUB-GC” If Z0:Then cls:“XL(m)=”:locate 4,1,X: “YL(m)=”:locate 4,2,Y◢ Else If Z0:Then cls:“XR(m)=”:locate 4,1,X: “YR(m)=”:locate 4,2,Y◢ Else cls:“X(m)=”:locate 5,1,X: “Y(m)=”:locate 5,2,Y “Hs(m)=”:locate 5,3,Z[16]: Fix 6:(临时增加显示位数以显示角度)“FWJ=”: locate 5,4,Int(F)+0.01Int(60Frac(F))+0.006Frac(60Frac(F))◢(将10进制角度转换为度分秒形式) Fix 3:IfEnd:IfEnd Goto 1 Lbl 2:“X(m)=”?X:If X0:Then Goto 0:IfEnd(输入待反算点X坐标) “Y(m)=”?Y(输入待反算点Y坐标) X→Z[4]:Y→Z[5]:0→M If I=0:Then 1→j:U→list X[1]:V→list Y[1]:H→W: 0→Z:prog“1-SUB-ZS”:G+QEH(C+HD)→F: X→list X[2]:Y→list Y[2]:1→Z G-90→A:F-90→B:Prog “1-SUB-ZX” If Z[6]Z[7]=0:Then goto B:Ifend G+90→A:F+90→B:Prog “1-SUB-ZX” IF Z[6]Z[7]=0:Then Goto B Else cls:locate 6,2,KP OUT:Goto 0:IfEnd:Ifend 1→J:Prog 1-DAT1 0→Z:Lbl A: Isz J:Prog 1-DAT1:Isz Z List freq[Z]-90→A:list freq[Z+1]-90→B:Prog “1-SUB-ZX” If Z[6]Z[7]=0:Then Z→J:Prog“1-DAT1”

文档评论(0)

xiaofei2001129 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档