建筑新时代论坛's Archiver

【热门搜索】建材Autocad膜结构钢结构加固招聘工程机械测绘建筑材料工程造价建筑施工图

hbcpdi 发表于 2007-11-3 15:46

FX4800在土木工程中的应用

详细介绍了CASIO fx4850/fx4800/3950函数计算器的功能、操作方法、特点及变成技巧。精选了大量土木工程测量、地基基础、施工组织设计、道路设计、力学、钢筋混凝土结构设计、钢结构设计、砌体设计等典型程序案例。特别适合土木工程技术人员使用。
[attach]120778[/attach]
[attach]120779[/attach]
[attach]120780[/attach]
[attach]120781[/attach]

hbcpdi 发表于 2007-11-3 15:51

[attach]120782[/attach]
[attach]120783[/attach]
[attach]120784[/attach]
[attach]120785[/attach]

hbcpdi 发表于 2007-11-3 16:09

[attach]120789[/attach]
[attach]120790[/attach]
[attach]120791[/attach]
[attach]120792[/attach]

hbcpdi 发表于 2007-11-3 16:11

[attach]120793[/attach]

SUN518 发表于 2007-11-9 09:56

还收费???网上多的是,CASIO网站上就有,覃辉的书

yangbin820606 发表于 2007-11-15 09:14

不知道楼主怎么想的?

zxw513053 发表于 2007-11-18 23:17

不知道楼主怎么想的?:Q

zxw513053 发表于 2007-11-26 13:31

casio4800超高及高程(源程序)供参考
超高及高程(源程序)
L1:  R:L“LS”:Z“ZH”:H“HZ”:V“RS”:F“I1”:G“I2”:O“BPH”:N“BP”:T=Vabs(G-F)÷2:X“X(R+1,L-1)”:P“P(R+,L-1)”
L2:  Lbl 6 : {S}
L3:  S+T-N<0    D=O+(S-N)F:  S-N<0   D=O+(S-N)F-U(S-N+T)2÷2÷V:   S-N≤T  D=O+(S-N)G-U(T-S+N)2÷2÷V:  D=O+(S-N)G    D“ H=” ◢
L4:    R<     E=  : M=  Goto 1:   R<    E=  : M=  Goto 1:

L5:    Lbl   1  :  M ≥ L   C=L: Goto 2:   C=M

L6:    Lbl  2  :  P X >0   Goto 3 :  Goto 4

L7:    Lbl  4  :  S ≤Z   I=0.02 : Goto 5:  S<Z+C   I=0.02-(0.02-EPX)÷C×(S-Z) : Goto 5:   S<H-C   I=EPX : Goto 5:   S<H   I=EPX+(0.02-EPX)÷C×(S-H+C) : Goto 5:   I=0.02 : Goto 5
L8: Lbl 3 : Z[1]=0.04÷(EPX+0.02)×C : S ≤Z + Z[1]  I=0.02 : Goto 5:  S<Z+C   I=0.02+(EPX-0.02)÷(C-Z[1])×(S-Z-Z[1]) : Goto 5:   S<H-C   I=EPX : Goto 5:   S<H-Z[1]   I=EPX-(EPX-0.02)÷(C-Z[1])×(S-H+C) : Goto 5:   I=0.02 : Goto 5
L9: Lbl 5 : {B} : W“HB”=D-IB◢
L10: Goto 6
说明:  R:平曲线半径        L“LS”:缓和曲线长  P:偏转,Z=-1,Y=1
     X“XL”:线路(Z,Y)左线=-1,右线=1   Z“ZH”: 直缓点里程
H“HZ” :缓直点里程               V“RS”:竖曲线半径           F“I 1” :前坡堵(带符号)
G“I2”: 后坡度值(带符号)      O“BPH”:变坡点高程         N“BP”: 变坡点里程
T: 切线长                             E:最大超高值                  C :渐变段长度(LC)        
I: 横坡值                              M:最大渐变长度(Lmax)   B :距中心距离     W“HB”:边部高程
---------------------------------------------------------------------casio4800曲线坐标计算(源程序)供测友们参考
曲线坐标计算(源程序)
File1:QXZB
L1  V“ZJZ(L-,R+)”:R:I“LS”:C“ZH(ZY)”:W“FWJ”:A“XJD”:B“YJD”
L2  Z[1]=90I÷R÷Л:Z[2]=I÷2-I^3÷240÷R2:Z[3]=I2÷24÷R:T= Z[2]+(R+ Z[3])tan(AbsV÷2):H“L”=ЛR(AbsV÷2×Z[1]÷180+2I:E=(R+ Z[3] ) (cos(AbsV÷2))-1-R
L3  Lbl 0
L4  {S}:S“K”
L5   P=W-V+180:Z=R+E
L6   L=S-C
L7   L>0  Prog“ZH”:  Prog“XZ”  
L8   X=A+DcosU◢ Y=B+DsinU◢
L9   Goto  0
File2  ZH
L≥I  Prog“QZ”:   Prog“HY”
File3  QZ
L1   J=H-I
L2   L>J   Prog“HZ”:   Prog“YH”  
File4  HZ
      L≥H  D=T+L-H: U=W:F=W◢  Prog“YZ”  

File5  XZ
D=T+C-S: U=P:F=W-V◢
File6  HY
L1   M=L-L^5÷40÷R2÷I2:N=L^3÷6÷R÷I-L^7÷336÷R^3÷I^3:K=T-M:D=√(K2+N2):G=tan-1(N÷K)
L2   V < 0   U=P+G:F=W-V-90(S-C)2÷I÷R÷Л◢   U=P-G:F=W-V+90(S-C)2÷I÷R÷Л◢ 
File7  YH
L1   Q=H÷2-L
L2   O=Abs180Q÷R÷Л:D=√(R2+Z2-2RzcosO)
L3   G=Abssin-1 (RsinO÷D)
L4   V <0   Prog“QX”:   Prog“QS”  
File8  YZ
L1   L=H-L
L2   M=L-L^5÷40÷R2÷I2:N=L^3÷6÷R÷I-L^7÷336÷R^3÷I^3:K=T-M:D=√(K2+N2):G=tan-1(N÷K)
L3   V < 0   U=W-G:F=W+90(H+ C-S)2÷I÷R÷Л◢   U=W+G:F=W-90(H+ C-S)2÷I÷R÷Л◢ 
---------------------------------------------------------------------
坐标反算(源程序)
File  ZBFS
1:  M“X0” : N“Y0” : A“PJ” : R : L“LS” : T : O“L” : H“ZH” : F“FWJ”
2:  Z[1]=P“XJD”+T cos ( F+180) : Z[2]=K“YJD”+T sin ( F+180)
3:  U“R+1,L-1”
4:  Z[3]=H+L : Z[4]=H+O-L : Z[5]=H+O
5:  Lbl 0 : C“LC” : Z[7]=Abs(C-H)
6:  Prog“KL”
7:  S=-((X-M)sin(Q+90)-(Y-N) cos (Q+90) : Abs S<0.0001   C“ LC ” ◢
W=“LP ”= ( X-M ) sin Q-(Y-N) cos Q◢  C = C+S :  Goto 0 △
File   KL
1:  C≤H   Z[8]=-Z[7]  :  Z[9] = 0 : Z[10] = 0 : Goto 2 △
2:  C≤Z[3]  Z[8]= Z[7]-Z[7] ^5÷40÷R2÷L2 : Z[9] = Z[7]^3÷6÷R÷L-Z[7] ^7÷336÷R^3÷L^3 : Z[10] = 90 Z[7] 2÷R÷L÷Л :  Goto 2 △
3:  C≤Z[4]  Z[10] = 90 L÷R÷Л +180( Z[7] -L)÷R÷Л : Rsin (Z[10]+0.5L-L^3÷240÷R2 : Z[9] = R(1-cosZ[10] )+L2÷24÷R : Goto 2 △
4:  C≥Z[5]  X=-( Z[7] -O) : Y = 0 : Z[10] = A : Goto 1 △
5:  C≥Z[4]  Z[10]= A-90 (O- Z[7] ) 2 ÷R÷L÷Л :X = (O-Z[7] )-(O-Z[7] )^5÷40÷R2÷L2 : Y = (O-Z[7] )^3÷6÷R÷L-(O-Z[7] )^7÷336÷R^3÷L^3  △
6:  Lbl 1 : Z[8] = T+(T-X) cos A-Y sin A : Z[9] =(T-X) sin A+ Y cos A : Goto 2 △
7:  Lbl 2 : Pol (Z[8],Z[9]) : Z[7] =F+JU : Q=F+Z[10] U : X=Z[1] + IcosZ[7] : Y=Z[2] + I sin Z[7]
   
==== 2 ====
用于CASIO4X00计算器的坐标反算程序
用于CASIO4X00计算器的坐标反算程序(已知两坐标求算其平距和方位角)
(最简)源程序如下:
程序名:【AZIMUTH】
I=0:J=0
LbI0
Norm
Deg
{DGXY}
D"XA"G"XB"X"XB"Y"YB"
Pol(X-D,Y-G)
J<0=>J=J+360△
Fix6
J"AZIMUTH A-B"=IntJ+.01Int(60FracJ)+.
006Frac(60FracJ)▲
Fix3
I"H.DIST="▲
Goto0
特点:界面友好、简单易用、输出方便
注意:本程序在CASIO4800上调试运行通过。如果是在4500上运行请将源程序中的I,J分别用V,W替代即可。
运行后界面如下:
输入项目
XA?————————————请输入点A的X坐标,按EXE键输入下一个量,下同。
YA?————————————请输入点A的Y坐标。
XB?————————————请输入点B的X坐标。
YB?————————————请输入点B的Y坐标。
显示项目
AZIMUTH A-B=###.######————————————显示点A到点B的方位角(小数点前为度,小数点后第一二位表示分,三四五六位表示为##.##秒。如12.523356即表示为12°52′33.56″.如果你将J"AZIMUTH A-B"=IntJ+.01Int(60FracJ)+.
006Frac(60FracJ)改为J"AZIMUTH A-B="的话则必须在输出结果后按"°′″"键将其转换为度分秒.
H.DIST=###.###——————————————显示AB两点的平距值(三位小数)。
再按EXE就转入下一个计算循环。
--------------------------------------------------------------------- [转帖]公路中线坐标计算程序 [casio 4500]
ZXCLCX
Defm16
Lbl1
X=1:{X}:X“ZJF-1 ZBF-2 TT-3 SJD-4 P2L-5 B2A-6”
X=1=>Prog"ZJF"△
X=2=>Prog“ZBF”△
X=3=>Prog“TT"△
X=4=>Prog“SJD"△
X=5=>Prog“P2L"△
X=6=>Prog“B2A"△
Goto1
ZBF
“-----ZXZBJS-----”:{YD}:Y“I1”“I2”
Y≠D=>Z=0rog“FP”:A=B:B=0:Goto3△
X=0:{TPXVWU}:T“HJD(X+Yi)”
Lbl1
X“XJA=1”“JD(X+Yi)”:U“JDLC”:Y=Arg(P-T)
Y<0=>Y=Y+360△
Y“I”◢C“L”=Abs(P-T)◢
X=0=>V=P:Goto2△
V“JDB(X+Yi)”=Arg(V-P)
D<0=>D=D+360△
D“I”◢Z“L”=Abs(V-P)◢Prog"FP":A=B
Lbl2
W“QJD(X+Yi)”=Arg(W-V)
D<0=>D=D+360△
D“I”◢C“L”=Abs(W-V)◢
Lbl4
Prog“FP”
X=1=>B=B-A△
X=0=>A=B:B=0:Z=0:E=Rep P:F=ImpP:Goto3△
M=Rep(P-T):N=Imp(P-T):I=Rep(W-V):J=Imp(W-V):F“Y”=(M Imp T÷N-I Imp V÷J+Rep V-Rep T)÷(M÷N-I÷J)◢E“X”=M(F-Imp T)÷N+Rep T◢C“L1”=√((E-Rep P)2+(F-Imp P)2)◢U=U+C:C“L2”=√((E-Rep V)2+(F-Imp V)2)◢
Lbl3
X=0:{X}:X“ZBF(0)ZJF(1)”
X=1=>O=Zrog"ZJF"△A=A+Brog"ZBJS"

ZBJS
I=0:J=0:B=0:{RGH}:R:G“LS1”:H“LS2”rog“TWE”
Z=0=>E“JD(X)”:F“JD(Y)”:U“JDLC”△
Rec(-Z[7],Y):Z[15]=I+E:Z[16]=J+F:Rec(Z[8],D):Z[13]=I+E:Z[14]=J+F:C=U-Z[7]:Z[6]“ZH”=C◢Prog“ZDZ”
C=Z[6]
Lbl1
{C}:C“JIAZHUANG”:Z=C-Z[6]
Z≤0=>Rec(Z,Y):Z[11]“X”=I+Z[15]◢Z[12]“Y”=J+Z[16]◢Prog“BZ”:Goto1△
Z≤G=>S=G=Z[1]:Q=Z[3]rog“H”ol(Z[11],Z[12]):Rec(I,Y-JO):Z[11]“X”=I+Z[15]◢Z[12]“Y”=J+Z[16]◢Prog“BZ”:Goto1△
Z≤W-H=>S=G=Z[1]:Q=Z[3]rog“Y”ol(Z[11],Z[12]):Rec(I,Y-JO):Z[11]“X”=I+Z[15]◢Z[12]“Y”=J+Z[16]◢Prog"BZ":Goto1△
Z≤W=>Z=W-Z=H=Z[2]:Q=Z[4]rog"H"ol(Z[11],Z[12]):Rec(I,D+180+JO):Z[11]“X"=I+Z[13]◢Z[12]“Y"=J+Z[14]◢Z=W-Zrog“BZ”:Goto1△
Z>W=>Z=Z-W:Rec(Z,D):Z[11]“X"=I+Z[13]◢Z[12]“Y"=J+Z[14]◢Z=W+Zrog“BZ”:Goto1△
FP
B=Y-D
B>180=>B=B-360△
B<-180=>B=B+360△
O=B÷Abs B:B=Abs B
TWE
S=Grog“PQ”:Z[1]=P:Z[3]=Q=Hrog“PQ”:Z[2]=P:Z[4]=Q
Z[7]“T1”=(R+Z[2]-(R+Z[1])cos(A+B))÷sin(A+B)+Z[3]◢Z[8]“T2”=(R+Z[1]-(R+Z[2])cos(A+B))÷sin(A+B)+Z[4]◢W“L”=πR(A+B)÷180+.5G+.5H◢X“E”=(R+Z[1])÷cos(tan-1(((R+Z[2])÷(R+Z[1])-cos(A+B))÷sin(A+B)))-R◢Z[9]=Z[7]-Osin B÷sin(A+B):Z[10]=Z[8]-Osin A÷sin(A+B)
B≠0=>Z[9]“TA”◢
Z[10]“TB”◢△

---------------------------------------------------------------------
用CASIO4X00型计算器编写公路工程测量程序浅见
      我们已经进入了全电脑化时代,许多好用、实用的程序语言也发展得空前繁盛。纵观公路工程测量这个领域,使用便携式电脑利用专业软件与全站仪联机通讯测量已不是什么稀奇事,使用SHAHP PC-E500型和其它的微型计算机的人也不少。电脑我们比较熟悉,我在此不再赘述;SHAHP PC-E500型微型计算机是一款基于BASIC语言上的微型电脑,功能已很多,能编出很复杂的程序,内存也较大,有32KB、64KB、128KB、256KB四种,有输出、输入设备,数据通信设备,其功能已与一台X86相当了。但两者价格也不菲,SHAHP PC-E500型微机为2000~3000元左右,相当于一台低配置的台式电脑的价钱,而笔记本电脑至少在万元以上。它们都很娇贵,而且损耗也大,加之测量是一项野外工作,往往一台电脑能用1~2年就不错了。它们对于工程量小、造价低、线型较简单的改建工程来说,可算是一件奢侈品了,况且有了硬件还不够,还需要一套正确、实用的程序才能完成测量工作,实际上这样一套程序是较难编写、也不容易得到的(中科院编的一套程序要一万多元),对于那些非计算机专业的测量工作者来说确是一件难事。
      那么什么样的机器适合我们呢?答案是CASIO 4X00型计算器,之所以称之为计算器,是因为它是一款基于科学计算器上的具有简单的程序语言的科学计算器。其中能较好地编程的机器型号目前有CASIO fx-4500型和CASIO fx-4800型两种(以下简称4500和4800)。它们价格低廉、有一定的编程功能,体积小巧,且程序的编写也比较简明。前者内存较小,只能存贮1103个字节,因而只能应付一些较为简单的公式计算,和科学计算。由于其内存有限,对于稍复杂的程序它要么是装不下,要么是运行速度太慢,对于我们快速测量的要求来说,不能很出色地完成。而后者则较之前者有了很大改进,首先是它扩大了内存容量,达到了4500个字节,还有就是它更好用了,已具有了简单的人机对话功能,出现了菜单和子菜单。另外它还增加了一些实用的新命令、新功能和许多科学常数。
     Dsz(计数减循环)和Isz(计数加循环)是4800新增加的两个命令。
    下面我们来看一个例子:有4个不同的数值,求4个数的平均数。
该程序用4500编写为:               若用4800编写则为:
L01:LbI0                                         L01:LbI0
L02:Z=0:C=0                                   L02:A=4:C=0
L03:LbI1                                         L03:LbI1
L04:{B}                                          L04:{B}
L05:C=B+C                                      L05:C=B+C
L06:Z=0=>Z=1:Goto1◣             L06:DszA:Goto1
L07:Z=1=>Z=2:Goto1◣              L07:C=C÷4⊿
L08:Z=2=>Z=3:Goto1◣             L08:A=A-1:Goto1
L09:Z=3=>C=C÷4◣             L02中如A=-4则L06中L10:C⊿ 的Dsz用Isz替代即可。L11:Goto0
      再就是自动解答功能,4500有单个公式编辑功能,而4800则多了一个公式解答功能,其原理是用牛顿法解方程。
     举个例子:
     有一方程式:X=2Y+5求当X=2时的Y值。
     将该方程式存入公式存贮器中,按解答键“SOLVE”计算器就会显示:X?输为2,立即显示:Y=-1.5。此项功能被称为自动解答功能。
     4800还在4500的基础上增加了一些科学常量,如:阿佛加德罗常数、万有引力常数等,笔者在此就不再哆嗦了,详情请参阅机器的《操作说明书》。 在熟悉了计算器之后,我们来谈谈程序的编写。 作为一台可编程的多功能科学计算器,自然有其一套比较完整程序语言。4500和4800使用的程序语言可以算做简单的BASIC语言,有的命令如GOTO、PAUSE就与BASIC语言的一模一样。现在我们就型计算的程序语言来说说。 其主要命令有:
1、=>…………… 条件转移成立符号,其用法相当于BASIC中的IF……THEN语句
2、≠>……………条件转移不成立符号,其用法相当于BASIC中的IF……ELSE语句通常二者连用,相当于BASIC中的IF……THEN……ELSE语句
3、 ………… 条件转移结束符号,与=>和≠>配合使用,放在条件语句最后面。
4、 Goto………… (条件)转移命令。前面可加条件语句,与BASIC中的GOTO作用相同。通常与LbI一起用,如果所转移的行号无效,则会显示:GO ERROR的出错信息。
5、 LbI……………标记命令。用于将一段语句作转换标记。后可接字母、数字、符号,但不能超过两个字节,如不能用≥10的数字作行标,否则会出现出错信息。
6、 Dsz………… 增量循环命令。用法参考前面的例子。
7、 Isz……………减量循环命令。用法同Dsz。
8、 Pause…………暂停命令。后可接0~9之间的整数n,可使某一数据显示n/2秒钟,然后继续运行下面的程序。
9、 Fixm…………变量锁定命令。该命令能使其后的所有变量值(A~Z)均当成定数处理。当程序运行时,将不需要输入变数(“{}”内的变数除外),而是将存贮器中原有的数值来完成计算。(可参考4500说明书)
10、{}……………变量输入命令。“{”和“}”必需成对输入。否则会出现Syn ERROR
11、=、≠、>、<、≤、≥……条件运算关系算子,常与Goto命令构成条件转换语句。12、Prog…………运行子程序命令。后接子程序名(一定要加引号,且要注意空格)否则会出现Syn ERROR的出错信息。如为4500则可不加“”号。
13、 …………数据显示命令。该命令输入后会自动换行。
     如果要将某一值(如:缓和曲线Ls)直观显示则可在该存贮器名(假设为L)后加“Ls”为L“Ls”即可。显示数据时计算器会显示Ls=###,并出现disp字样。明白了各种命令的含义,我们就可着手编程了。稍安勿躁,在编程前,有一条总原则即:尽可能使程序变得简明扼要;尽可能使程序所包含的子程序减少;尽可能不使用扩充变数存贮器,如Z[1]、Z[2]等。
     原因如下:
     ①我们都知道一个词:效率。一个程序应该尽可能地变得简明扼要,能省的坚决省略。过繁冗的语句既会使程序的运行速度变慢,又占用字节,对于内存容量较少的4500计算器来说,节省字节是很重要的,见例A。要注意的是:如果你对程序不太熟练,则必需先按步骤编好并经过调试能运行以后,再着手精简工作,否则只会忙中添乱;
     ②子程序过多就会造成程序结构松散,有的计算器里大小程序有十几个甚至几十个,而只有四、五主程序,我们如果要运行某一个落在后面的主程序的话就得越过大量子程序去选取。子程序过多还可能引起程序之间紊乱、混淆,且出现错误也不容易查出。所以我们要尽量地少编子程序;
     ③使用扩充存贮器是一个利少弊多的做法,君不见:每扩充一个存贮器就要减少10个字节的容量,而每个扩充存贮器至少要占四个字节,比一个A~Z变量净增三个。有时你会觉得变量存贮器不够用。其实不尽然,一般程序变量数很少会超过26个,只是你不懂得去使用。一般来说,两个相对独立的程序步骤之间根本不需要考虑变量重复问题。针对某一个程序,只要不是固定变量({}内的变量),也就是那些通过计算出来的用于下一步计算的数值。我们就可以通过重复赋值来得到某些计算量。反正在下一轮循环中该量是变化的。见例B。
例A:有程序如下①:                           简化后程序如下②:
L01:LbI0                                                          L01:LbI0
L02:B>0=>Goto1◣                             L02:B≤0=>Goto1◣
L03:B≤0=>Goto2◣                            L03:C>0=>A=1◣
L04:LbI1                                                           L04:A=2     
L05:C>0=>A=1◣                               L05:Goto2
L06:C≤0=>A=2◣                              L06:LbI1
L07:Goto3                                                         L07:C>0=>A=3◣
L08:LbI2                                                            L08:A=4
L09:C>0=>A=3◣                               L09:LbI2
L10:C≤0=>A=4◣                               L10:A“Arg=” ⊿
L11:Goto3                                                         L11:Goto0
L12:LbI3
L13:A“Ang=” ⊿
L14:Goto0
      运行!结果相同,而字节数和步骤数却大为减少了。既提高了运行速度又节省了内存,何乐而不为呢?程序②为什么会比程序①简单呢?原因就是它巧妙地运用了数学中的补集原理。我们知道B>0的补集就是B≤0,所以在L03行中B≤0就变得可有可无了。同样道理,在L06、L10行中C≤0也可以精简掉。
      例B:
     有一程序如下:                      修改后程序如下:L01:LbI0                                                  L01:LbI0
L02:{BDX}                                               L02:{BDX}
L03:A=B+D⊿                              L03:A=B+D⊿
L04:C=A+X⊿                             L04:A=A+X⊿
L05:Y=C+D⊿                             L05:A=A+D⊿
L06:Goto0                                                L06:Goto
    经过比较,我们不难看出:修改后的程序是将A用作常变量对其连续赋值,腾出了C、Y来用于表示其它变量。掌握这几个编程序要领后,我们来说说程序结构。通常,一个主程序由行标、计算器状态设定语句、运行子程序语句、数据输入语句、条件转换语句、公式运算语句、数据显示语句、循环运算语句等组成。子程序与主程序不同的是无循环运算语句。
     例如:
     有一个主程序如下:
L01:LbI0……………………………………………… 行标 L02:Norm…………………………………………… 计算器状态设定语句 L03:Deg……………………………………………… 计算器状态设定语句
L04:{ABCD}………………………………………… 数据输入语句(指定变量) L05:A“X0”B“Y0”C“Arg”D“H.DIST”……………… 数据输入语句(将变量赋值) L06:C=0=>Goto0◣…………………………………… 条件转换语句 L07:Fix3……………………………………………… 计算器状态设定语句 L08:X=A+DcosC⊿…………………………………… 公式运算、数据显示语句 L09:Y=B+DsinC⊿…………………………………… 公式运算、数据显示语句 L10:Prog“HUAN HE DUAN”……………………… 运行子程序语句4500中可去掉引号 L11:Goto0…………………………………………… 循环运算语句
     以上语句中,计算器状态设定语句是大家最容易忽视的。以上面的程序为例,Norm是将计算器设为指定指数记号范围(如果计算器在Fix和Sci状态时,再设置为Norm状态则会优先于它们)的命令。
     计算机有四种状态:Norm、Fix、Eng、Sci,功能分别是:指定指数记号范围、小数点位设置、工程计算、有效数位设置。如果计算器处于其它三种状态则可能会出现运算错误。
     Deg是将计算器的角设定为度的状态,共有六种:
     Deg—指定度作为预设单位。
     Rad—指定弧度作为预设单位。
     Gra—指定梯度作为预设单位。也称为“百分度”和“新度”。
        °—指定度作某输入值的单位。
        r—指定弧度作某输入值的单位。
        g—指定梯度作某输入值的单位。
    有时如果误将角度(Deg)设置为弧度(Rad)或梯度(Gra)状态就会造成计算结果错误°、r、g是用于标识角度单位的,例如:
    要计算20度+2弧度+100梯度的值则可输入20°+2r+100g。
   Fix是设定小数位数的。机器能自动将数值四舍五入,显示你所保留的小数。
   ENG和Sci用得不是很多,且《操作说明书》上也比较详细,笔者在此也就不再哆嗦。
    综上所述,状态设定语句能更好地维护程序,防止出错。
    以上是我个人对CASIO 4X00系列计算器编程的一点不成熟的经验和看法,仅供参考,不足之处请斧正为谢。附注:所有⊿符号均为: 所有◣符号均为:
========================================================

zxw513053 发表于 2007-11-26 13:31

casio4800曲线坐标计算(源程序)
曲线坐标计算
File1:QXZB
L1 V“ZJZ(L-,R+)”:R:I“LS”:C“ZH(ZY)”:W“FWJ”:A“XJD”:B“YJD”
L2 Z[1]=90I÷R÷Л:Z[2]=I÷2-I^3÷240÷R2:Z[3]=I2÷24÷R:T= Z[2]+(R+ Z[3])tan(AbsV÷2):H“L”=ЛR(AbsV÷2×Z[1]÷180+2I:E=(R+ Z[3] ) (cos(AbsV÷2))-1-R
L3 Lbl 0
L4 {S}:S“K”
L5 P=W-V+180:Z=R+E
L6 L=S-C
L7 L>0 Prog“ZH”: Prog“XZ”
L8 X=A+DcosU◢ Y=B+DsinU◢
L9 Goto 0
File2 ZH
L≥I  Prog“QZ”: Prog“HY”
File3 QZ
L1 J=H-I
L2 L>J Prog“HZ”: Prog“YH”
File4 HZ
L≥H D=T+L-H: U=W:F=W◢  Prog“YZ”

File5 XZ
D=T+C-S: U=P:F=W-V◢
File6 HY
L1 M=L-L^5÷40÷R2÷I2:N=L^3÷6÷R÷I-L^7÷336÷R^3÷I^3:K=T-M:D=√(K2+N2):G=tan-1(N÷K)
L2 V < 0 U=P+G:F=W-V-90(S-C)2÷I÷R÷Л◢  U=P-G:F=W-V+90(S-C)2÷I÷R÷Л◢ 
File7 YH
L1 Q=H÷2-L
L2 O=Abs180Q÷R÷Л:D=√(R2+Z2-2RzcosO)
L3 G=Abssin-1 (RsinO÷D)
L4 V <0 Prog“QX”: Prog“QS”
File8 YZ
L1 L=H-L
L2 M=L-L^5÷40÷R2÷I2:N=L^3÷6÷R÷I-L^7÷336÷R^3÷I^3:K=T-M:D=√(K2+N2):G=tan-1(N÷K)
L3 V < 0 U=W-G:F=W+90(H+ C-S)2÷I÷R÷Л◢  U=W+G:F=W-90(H+ C-S)2÷I÷R÷Л◢ 

========================================================
    你做压实度资料做不过来时,可以用一下下面这个程序。其中几个固定值为标准砂锥砂重为744g,砂密度固定为1.43g/m3,灌砂筒和砂共重9000g,以上数据可在程序中更改。
     变量说明: <程序运算符定义>
  
A 最大干容重 B 最佳含水量 C 要求达到的压实度
E 灌砂筒+余砂重 F 试坑体积 G 试坑内湿土重
H 湿密度 I 盒+湿土重 J 盒+干土重
K 盒重 L 干土重 Z 水重
N 含水量 O 平均含水量 P 干密度
Q 压实度        

程   序   清   单
注  释
文件1   程序名:YSD  
Defm 1:Lbl 9:Lbl 7:Y=Int(800+500Ran#Ran#):Y>1100=>Goto 7⊿Y=Y÷10:{ABC}:ABC ←
Lbl 6:D=2:V=0 ←
Lbl 0:M=100Ran#Ran#:M>80=>Goto 0⊿M=M÷1000:P=C÷100×A+M+0.003:P÷A>C÷100+0.035=>Goto 0⊿P÷A≥1=>Goto 0⊿Lbl 1:S=Int(30Ran#):S≥10=>Goto 1⊿Int(S÷2)≠S÷2=>0=B+S÷10:≠>0=B-S÷10⊿Z[1]=30:Lbl E:Dsz Z[1]:Goto 2:Goto 1:Lbl 2:M=Int(50Ran#Ran#):M≥1=>M<10=>Goto A:≠>Goto 2⊿≠>Goto 2⊿Lbl A:M=M÷10:X=Int(100Ran#):Int(X÷2)≠X÷2=>N=0+M:≠>N=0-M⊿Abs(N-B)>1.0=>Goto E⊿Abs(20-N-B)>1.0=>Goto E⊿Abs(20-2N)>0.7=>Goto E⊿M=(1+0÷100)×P×100:Prog"YSD1":H=M÷100:Lbl 4:M=Int(1000Ran#):M>150=>Goto 4⊿F=2550+M:M=F×H:Prog"YSD1":G=M:M=9000-1.43F-744:Prog"YSD1":E=M◢
R=9000-E-744◢
F◢
G◢
H◢
W=0:Lbl 5:{K}:K:Lbl 3:U=Int(1000Ran#Ran#):U>50=>U>300=>Goto 3:≠>Goto L⊿≠>Goto 3⊿Lbl L:Int(U÷10)≠U÷10=>L=Y+U÷10:≠>L=Y-U÷10⊿M=N×L÷10:Prog"YSD1":Z=M÷10:J=K+L:I=L+Z+K:I-V≠I=>Abs(I-V)>40=>Goto 3⊿⊿V=I:I◢
J◢
Z◢
L◢
M=Z÷L×1000:Prog "YSD1":T"N"=M÷10◢
W=W+T:N=20-N:DSZ D:Goto 5:M=10W÷2:Prog "YSD1":0=M÷10◢
M=H÷(1+0÷100)×100:Prog "YSD1":P=M÷100◢
M=H÷(1+0÷100)÷A×1000:Prog "YSD1":Q=M÷10◢
{D}:D"<0 TO RESET":D<0=>Goto 9⊿Goto 6

文件2  程序名:YSD1  
M-Int M<0.5=>M=Int M:≠>M=Int M+1⊿
------------------------------------------------------------------

zxw513053 发表于 2007-11-26 13:35

哎,我的程序格式和网站的"表情"有冲突!!!!!又上传不了,急死人!!!!!!!

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.