卡西欧4800P计算器程序.docx
《卡西欧4800P计算器程序.docx》由会员分享,可在线阅读,更多相关《卡西欧4800P计算器程序.docx(15页珍藏版)》请在冰豆网上搜索。
![卡西欧4800P计算器程序.docx](https://file1.bdocx.com/fileroot1/2023-6/3/21dc1ba8-5fd8-4d06-80a0-2ea3d2fed6c3/21dc1ba8-5fd8-4d06-80a0-2ea3d2fed6c31.gif)
卡西欧4800P计算器程序
对卡西欧4800计算器在编程中的浅见
在计算能力飞速发展的今天,各种计算工具应运而生代替了以往我们大量、繁琐的分析计算工作,简化了计算步骤节省了计算时间。
在种类繁多的计算工具中适合测量工作的计算器也大有所在。
比如有一款SHAPPC-E500计算器,它相当于是基于BASIC语言的微型电脑,功能也相当齐全能编写较复杂的程序、内存也相当大有32KB、64KB、128KB、256KB、几种型号,同时具有输入输出通讯设备。
但价格不菲,现在市场价格大约为2000元到3000元,个人经济承受能力有限。
通过几年的实际测量工作我个人为认为真正适合测量人员较为专业的计算器应首推基于科学计算器具有简单程序语言的casio4x00计算器。
它有很多优点:
一、使用简单,最大的一个优点就是只要具有初中水平会运用数学公式对函数有一般的了解的人,能基本理解casio4x00的内装函数即可进行简单的编程。
非常适合测量初学者和数学程序爱好者学习,也适合专业的测量人员的使用和能力提高。
不像其它的专业一定要具有较高的专业技术水平才能进行电脑编程。
二、成本低廉,价格在400元左右。
三、携带方便,体积很小可随时放在口袋里随拿随用。
casio系列较好的编程型号有casio4500(以下简称4500)、casio4800(以下简称4800),(好象近来还推出了一款casio4850)前者较内存小,只有1103个字节,能应付一些较为简单的公式计算和科学计算,但由于内存有限,对一些较复杂或子程序过多的程序就力不从心了,不能出色的完成测量任务。
4800就比4500有较大的改进,4800内存达到的4500个字节,而且显示屏是4500的几倍大,能更准确的显示数据,内装函数字符一目了然。
且具有简单的人机对话功能,出现了菜单子菜单。
4800还在4500增加了啊佛加德罗常数、万有引力长常数、详见《操作说明书》。
4800有很多很实用的功能如他有一个公式解答功能,其原理是用牛顿法解方程。
举个例子:
有一方程式:
a=2b-c求当a=2、c=5时的b值。
将该方程式存入公式存贮器中,:
先按按解答键“SOLVE”a输入2、c输入5,再按解答键“SOLVE”计算器就会显示:
b=3.5。
此项功能被称为自动解答功能。
同时它也是非常实用的,在实际工作中通常要有一个经常使用的小公式,可借助它来完成。
4800使用的程序语言可以算做简单的BASIC语言,有的命令如GOTO(转移到)、PAUSE(暂停)就与BASIC语言的一模一样。
现在4800的程序语言来说说。
其主要命令有:
1、=>……条件转移成立符号,其用法相当于BASIC中的IF……THEN(假设语句相当于假如……然后,IF相当于条件……THEN相当于结果)语句2、≠>……条件转移不成立符号,其用法相当于BASIC中的IF……ELSE语句通常二者连用,相当于BASIC中的IF……THEN……ELSE语句(它的英语形式一般为ifa>bthenc>delseifb>athe……)3、⊿……条件转移结束符号,与=>和≠>配合使用,放在条件语句最后面。
4、LbI……标记命令。
用于将一段语句作转换标记。
后可接字母、数字、符号,但不能超过两个字节,如不能用≥10的数字作行标,否则会出现出错信息。
。
5、Goto……(条件)转移命令。
前面可加条件语句,与BASIC中的GOTO作用相同。
通常与LbI一起用,如果所转移的行号无效,则会显示:
GOERROR(详见说明书)出错信息6、Dsz……减量循环命令。
可减少未知数的数量。
7、Isz……增量循环命令。
8、Pause……暂停命令。
后可接0~9之间的整数n,可使某一数据显示n/2秒钟,然后继续运行下面的程序。
它被认为是一个语句。
9、Fixm……变量锁定命令。
该命令能使其所有变量值(A~Z)均当成定数处理。
当程序运行时,将不需要输入变数(“{}”内的变数除外),而是将存贮器中原有的数值来完成计算。
10、{}……变量输入命令。
只程序在循环使用时经常发生改变的数字,如里程、和宽度。
它的输入方式可以使很多种如{AB}{A,B}{AB}都可以。
注意“{”和“}”必需成对输入。
否则会出现SynERROR(详见说明书)出错信息。
11、=、≠、>、<、≤、≥……条件运算关系算子,常与Goto命令构成条件转换语句。
12、Prog……在正常情况是下打开程序的快捷键。
在编程过程中是运行子程序命令,后接子程序名(一定要加引号,且要注意空格,否则会出现SynERROR(详见说明书)的出错信息。
13、↓……换行,只保留计算过程不显示计算结果。
当不想对其换行时也可用:
代替。
14、◣……数据显示命令。
该命令输入后会自动换行。
保留计算过程并显示计算结果。
有一条总原则即:
①学会运用程序的语言,尽可能使程序变得简明扼要;我们编写程序应该尽可能地使程序变得简明扼要,能省略的要一定省略。
烦琐的语句过多的字节只能使计算器的运算速度变慢没有任何好处,而且相当站用内存。
学会节省字节和使用符号是相当重要的。
尤其要灵活运用计算器语句因为它会使你更多的节省字节达到预期效果。
比如下程序就灵活运用了Dsz(减量循环命令)。
比如使其能输入10个数值,并计算10个数值的平均值。
一般程序求10个数字的平均值需要有11个数字的提示符号。
但学会灵活运用了Dsz(减量循环命令)那么只要有三个就可以了,这样就大大节省了字节的占用。
例程序如下:
A=10C=0Lbi1{B}C=B+CDszAGoto1C÷10但要注意的是:
如果你是初学者或你对程序的编程不熟练,首先一定要先按照你的思路把程序步骤一步一步的列好在确定它能正确的计算后在想办法对其进行精简修改,否则只会使程序出现过多的错误;②尽可能使程序所包含的子程序减少;子程序过多就会造成程序结构松散,有的计算器主程序需要三个或四子程序,过多的子程序只会引起程序之间紊乱、混淆。
子程序过多对在使用时查找也比较麻烦。
而且子程序过多如果其中某个环节出现错误很难发现其错误所在,在编写程序时要尽量的少编写子程序,即使要编写子程序时也要注意尤其在容易出错的地方要多加注意。
有弊就有利如果你对子程序了解得多了那么可以几个主程序合用一个之程序也到到了要求的减少程序的字节使程序更简化。
例程序如下:
CXCDLbi1Lbi1Prog”V”Prog”V”B=L-(K-S)◣B=L+(K-S)◣Goto1Goto1VY=√A2B2+B2X2÷A③尽量少用或不使用扩充变数存贮器,如A[1]、A[2]等:
使用扩充存贮器是一个利少弊多的做法。
每扩充一个存贮器就要减少10个字节的容量,而每个扩充存贮器至少要占四个字节,比一个A~Z变量净增三个。
有时你会觉得变量存贮器不够用。
其实不尽然,一般程序变量数很少会超过26个,只是你不懂得去使用。
一般来说,两个相对独立的程序步骤之间根本不需要考虑变量重复问题。
针对某一个程序,只要不是固定变量({}内的变量),也就是那些通过计算出来的用于下一步计算的数值。
我们就可以通过重复赋值来得到某些计算量。
反正在下一轮循环中该量是变化的。
明白了各种命令的含义和注意事项就可以编程了。
举例有公式如下:
CX程序名称Lbl0↓起始标记命令语句QMNFJ↓数据输入语句(指公式循环运算时的不变量){KDE}↓数据输入语句(指公式循环运算时变量)S=K—Q:
G=F+J↓公式运算命令X=M+ScosF↓公式运算命令Y=M+SsinF↓公式运算命令Prog"j"↓运行子程序命令Goto0↓循环运算语句J子程序名称H=X+DcosG◣公式运算、数据显示语I=Y+DsinG◣公式运算、数据显示语T=X—EcosG◣公式运算、数据显示语U=Y—EsinG◣公式运算、数据显示语最后计算器状态设定语句是大家最容易忽视的。
如果将单位进行预设那么计算器就会默认其使用单位在进行下一单位换算时要一定要进行单位转换,否者会使计算结果错误。
在显示屏幕的左下角可以清楚地发现小提示符号:
如D代表度为现在的缺省单位、R代表弧度为现在的缺省单位、G代表梯度为现在的缺省单位。
首页┊GPS测量┊工程测量┊遥感测量┊地籍测量┊控制测量┊数字测图┊地图制图┊数据处理┊测绘仪器┊软件应用┊房产测量┊地理信息┊测量管理┊程序开发┊理论文章┊其他┊文章更新列表┊游客发布论文
所属分类:
程序开发来源:
作者:
更新日期:
2006-8-25阅读次数:
156文章更新列表查看公告列表
公路编程实例
ZBZS★坐标正算主程序Deg:
FixmLbl0:
{O}:
O“1,47264-50167.162,50150-50673.503,50700-54700”Lbl1:
{ZKB}:
Z:
K:
B:
O=1=>Goto2△O=2=>Goto3△O=3=>Goto4△Lbl2:
Z<47264=>Goto5△Z>50167.16=>Goto5△Z<48708.52=>Prog“55”:
Goto6△Z<49310.50=>Prog“56”:
Goto6△Z<49874.21=>Prog“57”:
Goto6△Prog“57-1”:
Goto6△Lbl3:
Z<50150=>Goto5△Z>50673.5=>Goto5△Prog“58”:
Goto6△Lbl4:
Z<50700=>Goto5△Z>54700=>Goto5△Z<51265.12=>Prog“59”:
Goto6△Z<52266.78=>Prog“60”:
Goto6△Z<53341.82=>Prog“61”:
Goto6△Z<53868.03=>Prog“62”:
Goto6△Prog“63”:
Goto6△Lbl5:
“ZHERROR”▲Goto0Lbl6:
Prog“DQXY”:
“X=”:
X:
Pause0:
“Y=”:
Y▲Pol(X-Q,Y-U):
J<0=>J=360+J△:
I=Intg(1000I+.5)÷1000“L=”:
I:
Pause0:
“T=”:
J→DMS▲Goto1说明:
本程序适用于casio4850计算器。
把线路从断链处分为三段,O的取值,待求点在第一段输1,第二段输2,第三段输3。
Z、待求点的桩号。
K、待求点在左幅输0右幅输1。
B、待求点距中距离。
Goto5前的桩号为起止点或断链点桩号。
Prog“xx”:
Goto6前的桩号为曲线组合的HZ点桩号。
Q、U为测站坐标,运行程序前先存入。
ZHFS★桩号反算主程序Deg:
FixmLbl0:
{TL}:
T:
L:
T=IntT+Frac100T÷36+(Int100T÷100T-IntT)÷.6X=Q+Rec(L,T):
Y=U+J:
“X=”:
X:
Pause0:
“Y=”:
Y▲Lbl1:
Prog“55”:
Prog“YS”:
Z>48980=>Goto2△Prog“FQ”Z<47264=>GotoB△GotoZLbl2:
Prog“56”:
Prog“YS”:
Z>49437.85=>Goto3△Prog“FQ”:
GotoZLbl3:
Prog“57”:
Prog“YS”:
Z>49874.21=>Goto4△Prog“FQ”:
GotoZLbl4:
Prog“57-1”:
Prog“YS”:
Z>50354.96=>Goto5△Prog“FQ”Z>50167.16=>Z=Z-17.16△GotoZLbl5:
Prog“58”:
Prog“YS”:
Z>50931.36=>Goto6△Prog“FQ”Z>50673.5=>Z=Z+26.5△GotoZLbl6:
Prog“59”:
Prog“YS”:
Z>51953.51=>Goto7△Prog“FQ”:
GotoZLbl7:
Prog“60”:
Prog“YS”:
Z>52546.8=>Goto8△Prog“FQ”:
GotoZLbl8:
Prog“61”:
Prog“YS”:
Z>53477.04=>Goto9△Prog“FQ”:
GotoZLbl9:
Prog“62”:
Prog“YS”:
Z>54118.18=>GotoA△Prog“FQ”:
GotoZLblA:
Prog“63”:
Prog“YS”:
Z>54700=>GotoB△Prog“FQ”:
GotoZLblB:
“CXERROR”▲Goto0LblZ:
Z=Intg(1000Z+.5)÷1000:
B=Intg(1000B+.5)÷1000:
“LC=”:
Z:
Pause0:
“BJ=”:
B▲Goto0说明:
T、L测点相对测站的方位角和距离,T的取值例:
12°34′56″输为12.3456。
Q、U为测站坐标,程序运行前先存入。
Goto2前的桩号为第2个曲线组合的ZH点桩号,以后类推。
“BJ=”显示正值则测点在线路右幅,显示负值则测点在线路左幅。
DQXY★单曲线坐标正算子程序S=.5Abs(C-A):
G=(C-A)÷2SC-A<-180=>S=180-S:
G=-G△C-A>180=>S=180-S:
G=-G△T=(R+N2÷24R)tanS+N÷2-N^3÷240R2:
L=πRS÷90+N:
K=0=>K=-1△Z≤D-T=>Goto1△Z≥D-T+L=>Goto2△Z<D-T+N=>Goto3△Z>D-T+L-N=>Goto4△Lbl0:
M=A+G(90+90N÷πR+180(Z-D+T-N)÷πR)-180X=E+Rec((R+N2÷24R)÷cosS,C+G(90-S)):
Y=F+JX=X+Rec(R-GKB,M):
Y=Y+J:
Goto5Lbl1:
X=E-Rec(D-Z,A):
Y=F-J:
X=X+Rec(B,A+90K):
Y=Y+J:
Goto5Lbl2:
X=E+Rec(Z-D+2T-L,C):
Y=F+J:
X=X+Rec(B,C+90K):
Y=Y+J:
Goto5Lbl3:
X=E-Rec(T,A):
Y=F-J:
H=Z-D+T:
Prog“XY”X=X+Rec(P,A+Gtan-1(W÷V)):
Y=Y+JX=X+Rec(B,A+90GH2÷πRN+90K):
Y=Y+J:
Goto5Lbl4:
X=E+Rec(T,C):
Y=F+J:
H=D-T+L-Z:
Prog“XY”X=X+Rec(P,C+180-Gtan-1(W÷V)):
Y=Y+JX=X+Rec(B,C-90GH2÷πRN+90K):
Y=Y+J:
Goto5Lbl5XY★缓和曲线参数计算子程序V=H-H^5÷40R2N2+H^9÷3456R^4N^4W=H^3÷6RN-H^7÷336R^3N^3+H^11÷42240R^5N^5:
P=√(V2+W2)YS★曲线要素计算子程序S=.5Abs(C-A):
G=(C-A)÷2SC-A<-180=>S=180-S:
G=-G△C-A>180=>S=180-S:
G=-G△T=(R+N2÷24R)tanS+N÷2-N^3÷240R2:
L=πRS÷90+NPol(X-E,Y-F):
J=J-C:
Z=IcosJ-T:
Z=D-T+L+ZFQ★单曲线反求桩号子程序Z≥D-T+L=>Z:
B=IsinJ:
GotoA△D=D-T+L÷2:
V=E+Rec((R+N2÷24R)÷cosS,C+G(90-S)):
W=F+JO=C+G(90-S)+180:
O>360=>O=O-360△Pol(X-V,Y-W):
J<0=>J=360+J△Z=D+G(J-O)πR÷180:
B=G(R-I)Z<D-(L-2N)÷2=>Goto1△Z>D+(L-2N)÷2=>Goto2△GotoALbl1:
D=D-L÷2:
E=E-Rec(T,A):
F=F-J:
P=A-90:
G=-G:
Prog“HHXY”:
Z=D+T:
GotoALbl2:
D=D+L÷2:
E=E+Rec(T,C):
F=F+J:
P=C+90:
Prog“HHXY”:
Z=D-T:
B=-B:
GotoALblAHHXY★反求缓和曲线长度子程序Pol(X-E,Y-F):
J=J-P:
X=IcosJ:
Y=IsinJB=G÷46080R^6N^6:
H=X÷3840R^5N^5:
I=13G÷5760R^4N^4:
J=GY÷384R^4N^4K=X÷48R^3N^3:
M=G÷15R2N2:
O=GY÷8R2N2:
P=X÷2RN:
S=GY:
Z=YLbl2:
V=BZ^13+HZ^10-IZ^9+JZ^8-KZ^6+MZ^5-OZ^4+PZ2-GZ+SW=13BZ^12+10HZ^9-9IZ^8+8JZ^7-6KZ^5+5MZ^4-4OZ^3+2PZ-GT=Z-V÷W:
Abs(T-Z)<1E-5=>Goto3△Z=T:
Goto2Lbl3:
V=G(T^3÷6RN-T^7÷336R^3N^3+T^11÷42240R^5N^5)W=T-T^5÷40R2N2+T^9÷3456R^4N^4V=X=>W=Y=>B=0:
Goto5△△Pol(X-V,Y-W):
B=sin(J+90GT2÷πRN-90):
S=-1:
B>0=>S=1△B=SILbl555★55~63为平曲线参数置数子程序D=48212.03:
E=42650.6693:
F=16021.6936:
A=247°56′58″:
C=151°56′02″:
R=826.192:
N=6056★D=49148.91:
E=41425.5219:
F=16674.9305:
A=151°56′02″:
C=185°56′02″:
R=354.724:
N=12057★D=49661.59:
E=40908.3058:
F=16621.1706:
A=185°56′02″:
C=151°54′14″:
R=600:
N=8057-1★D=50019.67:
E=40582.613:
F=16795.0457:
A=151°54′14″:
C=172°51′03″:
R=570.059:
N=8058★D=50498.68:
E=40087.8038:
F=16857.11:
A=172°51′03″:
C=184°48′17″:
R=1250:
N=6059★D=51112.95:
E=39501.143:
F=16807.7977:
A=184°48′17″:
C=206°30′23″:
R=600:
N=8060★D=52113.01:
E=38603.5949:
F=16360.1705:
A=206°30′23″:
C=237°03′19″:
R=400:
N=10061★D=52962.43:
E=38138.5471:
F=15642.5421:
A=237°03′19″:
C=193°17′44″:
R=910:
N=10062★D=53677.91:
E=37406.98:
F=15469.6681:
A=193°17′44″:
C=228°55′55″:
R=500:
N=8063★D=54344.49:
E=36962.0015:
F=14959.0062:
A=228°55′55″:
C=181°27′44″:
R=400:
N=80说明:
线路起点K47+264,止点K54+700。
共十个交点,两处断链,第一处K50+167.16=K50+150,长17.16M。
第二处K50+673.5=K50+700,短26.5M。
置数子程序中,D交点桩号。
E、F交点坐标。
A、C交点前后边正方位角。
R曲线半径。
N缓和曲线长。
程序“HHXY”引用借鉴了徐光辉2000年7月5日编写的“《CASIOfx-4800P线路计算6.0版》程序设计”中“反求缓曲长度子程序HQ”的计算式。
GCjs★路面高程计算主程序Lbl0:
{O}:
O“1,47264-50167.162,50150-50673.503,50700-54700”Lbl1:
{Z:
K:
B}:
Z:
K:
B:
Fixm意义同坐标正算程序V=2:
K=0=>K=-1△B<.75=>B=.75△B>11.25=>Goto5△.75为1/2中央分隔带宽O=1=>Goto2△O=2=>Goto3△O=3=>Goto4△11.25为路面半幅宽度Lbl2:
Z<47264=>Goto5△Z>50167.16=>Goto5△Prog“A”:
Prog“SQ”:
Prog“O”:
Goto6Lbl3:
Z<50150=>Goto5△Z>50673.5=>Goto5△Prog“B”:
Prog“SQ”:
Prog“P”:
Goto6Lbl4:
Z<50700=>Goto5△Z>54700=>Goto5△Prog“C”:
Prog“SQ”:
Prog“Q”:
Goto6Lbl5:
“ZHERROR”▲Goto0Lbl6:
Prog“CG”:
“H=”:
H▲Goto1SQ★竖曲线计算子程序Z≤D-T=>Goto1△Z≥D+T=>I=J:
Goto1△Lbl0:
H=G-(D-Z)I÷100+(Z-D+T)2÷2RN:
Goto2Lbl1:
H=G-(D-Z)I÷100:
Goto2Lbl2CG★超高计算子程序(弯道未设加宽)P=2VS÷(V+W)Z<M=>Goto1△Z>M+L=>Goto1△Z≤M+P=>F=Z-M:
Goto2△Z≥M+L-P=>F=M+L-Z:
Goto2△Z<M+S=>F=Z-M:
Goto3△Z>M+L-S=>F=M+L-Z:
Goto3△Lbl0:
X=H+(B-.75)WK÷100:
Y=H-(B-.75)WK÷100E=-1=>H=X:
≠>H=Y△Goto5Lbl1:
H=H-(B-.75)V÷100:
Goto5Lbl2:
X=H-(B-.75)V÷100:
Y=H+((V+W)F÷S-V)(B-.75)÷100E=-1=>K=-1=>H=X:
≠>H=Y△≠>K=1=>H=X:
≠>H=Y△△Goto5Lbl3:
X=H+((V+W)F÷S-V)(B-.75)K÷100Y=H-((V+W)F÷S-V)(B-.75)K÷100E=-1=>H=X:
≠>H=Y△Goto5Lbl5说明:
竖曲线参数置数子程序中,D竖曲线顶点桩号。
G顶点高程。
I竖曲线前段纵坡。
J竖曲线后段纵坡。
R竖曲线半径。
T切线长。
N凹曲线取1凸曲线取-1。
平曲线参数置数子程序中,M起超点桩号。
S超高缓和段长。
L超高曲线总长。
W最大单向横坡坡比。
E曲线左偏取-1右偏取1。
V直线段双向横坡坡比。
纵坡按设计给出的正负取值,横坡均按正数取值。
坡比取值示例:
2.5%取2.5。
A★Z<47635=>Goto1△Z<48680.5=>Goto2△Z<49200=>Goto3△Z<49369.25=>Goto4△Lbl0:
D=50040:
G=1025.21:
I=-6:
J=-3:
R=4000:
T=60.05:
N=1:
Goto5Lbl1:
D=47560:
G=1135.61:
I=-6:
J=-3:
R=5000:
T=75:
N=1:
Goto5Lbl2:
D=48640:
G=1103.21:
I=-3:
J=-6:
R=2700:
T=40.5:
N=-1:
Goto5Lbl3:
D=49140:
G=1073.21:
I=-6:
J=-3:
R=4000:
T=60:
N=1:
Goto5Lbl4:
D=49340:
G=1067.21:
I=-3:
J=-6:
R=1950:
T=29.25:
N=-1:
Goto5Lbl5B★D=50220:
G=1019.3:
I=-3:
J=-6:
R=3000:
T=45.04:
N=-1C★Z<50957.5=>Goto1△Z<51125=>Goto2△Z<51805=>Goto3△Z<51953=>Goto4△Z<52546=>Goto5△Z<52727.44=>Goto6△Z<52950.32=>Goto7△Z<53800=>Goto8△Lbl0:
D=54400:
G