文档库 最新最全的文档下载
当前位置:文档库 › Fx-5800p常用程序

Fx-5800p常用程序

Fx-5800p常用程序
Fx-5800p常用程序

F x-5800p 常用程序

1、坐标反算(FS )

?X :?Y ?Y↙↙

∟b ∣0:?:?A A :?:?B B ↙

Pol(A-X,B-Y):J Pol(A-X,B-Y):J<<0=>J+360J+360→→J ↙

“S=S=””:I :I◢◢“T=T=””:J :J??DMS DMS◢◢

Goto 0↙

说明说明::X,Y X,Y——基点坐标A,B A,B——测点坐标

2、坐标正算(ZS )

∟b ∣0:0:??S :?:?T T :?:?A A :?:?B B ↙

Rec(S,T)+A Rec(S,T)+A→→X ↙B+J B+J→→Y ↙

“X=X=””:X ◢“Y=Y=””:Y :Y◢◢

Goto 0↙

说明说明::S —距离T —方位角A,B A,B——基点坐标X,Y X,Y——计算坐标

3、坐标转换(ZH —H )

?N :?:?E E :?:?Q Q ↙

∟b ∣0:0:““1.S =>D ”:“2.D =>S ”:?F ↙

I f F=1:Then Goto 1:Eles Goto 2:If End End↙↙

∟b ∣1:1:??X :?:?Y Y ↙N+X cos cos((Q )—Y sin sin((Q )→U ↙

E+X sin sin((Q )+Y cos cos((Q )→V ↙“X1=X1=””:U ◢:“Y1=Y1=””:V ◢Goto 0↙

∟b ∣2:?:?X X :?:?Y Y ↙(X —N )cos cos((Q )+(Y —E )sin sin((Q )→U ↙(N —X )sin sin((Q )+(Y —E )cos cos((Q )→V ↙

“X2=X2=””:U ◢“Y2=Y2=”

”:V ◢Goto 0↙说明:

N ,E —施工坐标原点大地坐标

Q —施工坐标X 轴在轴在大地坐标系大地坐标系大地坐标系中的中的中的方位角方位角X ,Y —需转换坐标F —判断符F=1F=1,施工,施工,施工→→大地,其他,大地大地,其他,大地→

→施工4、竖曲线(SQX )

?A :?B :?D :?T :?R :?Z ↙

If Z ≥1:Then Goto 1:Eles Goto 2:If End End↙

↙∟b ∣1:?:?C C :A+A+Abs(Abs(Abs(((B —A ))÷T (C —D )—(C —D )2÷(2R 2R)

)→H ↙“H=H=”

”:H ◢Goto 1↙∟b ∣2:?:?C C :A+A+Abs(Abs(Abs(((B —A ))÷T (C —D )+(C —D )2÷(2R 2R)

)→H ↙“H=H=”

”:H ◢Goto 2↙说明:说明:A

A —起点(终点)高程

B —切线交点高程

C —需计算点的需计算点的桩号桩号

D —起点(终点)桩号

T —切线长R —半径H —C 桩号的高程Z —Z ≥1时为凸曲线,其他为凹曲线

5、曲线任意里程坐标正反算

1.主程序(TYQXJS)

"1.SZ =>XY":"2.XY =>SZ"SZ"::?N :1÷P →C :(P-R)(P-R)÷÷(2HPR)→D:180180÷π÷π→E :If N =1:Then Goto 1:Else Goto 2↙

Lbl 1:?:?S S :?:?Z Z :Abs(S-O)→W :Prog "SUB1""SUB1"::"XS=""XS="::X ◢"YS=""YS=":

:Y ◢Goto 1↙Lbl 2:?X :?:?Y Y :X →I :Y →J :Prog "SUB2""SUB2"::O+W →S:"S=""S="::S ◢"Z=""Z=":

:Z ◢Goto 2↙

2.正算子程序(SUB1)

0.1739274226→A :0.3260725774→B :0.0694318442→K :0.3300094782→L :1-L →F :1-K

→M:

U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Bcos(G+QEFW(C+FWD))+ Acos(G+QEMW(C+MWD)))→X:

V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Bsin(G+QEFW(C+FWD))+A sin(G+QEMW(C+MWD)))→Y:

G+QEW(C+WD)+90→F:X+ZcosF→X:Y+ZsinF→Y:Return↙

3.反算子程序(SUB2)

G-90→T:Abs((Y-V)cosT-(X-U)sinT)→W:0→Z:

Lbl0:Prog"SUB1":T+QEW(C+WD)→L:(J-Y)cosL-(I-X)sinL→Z:If Abs

Abs((Z)<1E-6: Then Goto1:Else W+Z→W:Goto0↙

(J-Y)÷÷sinF→Z:Return↙

Lbl1:Z=0:Prog"SUB1":(J-Y)

三、使用说明

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=XS=×××

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

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

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

×××反算时,计算得出的所求点的边距四、算例

某匝道的由五段线元(直线+完整缓和曲线+圆曲线+非完整缓和曲线+直线)组成,各段线元的要素(起点里程S0、起点坐标X0Y0、起点切线方位角F0、线元长度LS 、起点曲率半径R0、止点曲率半径RN 、线元左右偏标志Q )如下:

S0X0Y0F0LS R0RN Q 500.00019942.83728343.5611251631.00269.2561E451E450769.25619787.34028563.3781251631.0037.4921E45221.75-1806.74819766.56628594.5741202554.07112.779221.75221.75-1919.52719736.07228701.893911730.6380.285221.759579.228-1999.81219744.03828781.659804050.00100.0001E451E450

1、正算

(注意:略去计算方式及线元要素输入,请自行根据所求点所在的线元输入线元要素)S=700Z=-5计算得XS=19831.41785YS=28509.72590

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

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

S=780

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

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

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

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

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

S=940

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

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

2、反算

X=19831.418Y=28509.726计算得S=699.9999974Z=-5-5.00018164

.00018164X=19827.336Y=28506.838计算得S=699.9996493Z=0.000145136

X=19823.25398Y=28503.95084计算得S=699.9999985Z=5.000003137

X=19785.25749Y=28575.02270计算得S=780.0000035Z=-5-5.000001663

.000001663X=19781.15561Y=28572.16358计算得S=780.0000025Z=-0.000002979X=19777.05373Y=28569.30446计算得S=780.0000016Z=4.99999578X=19747.536

Y=28654.131计算得S=870.0001137Z=-4.99941049X=19742.686

Y=28652.914计算得S=870.0003175Z=-0.00041814X=19737.837Y=28651.697计算得S=870.0002748Z=4.999808656X=19741.5912Y=28722.0580计算得S=939.9999786Z=-5.123024937X=19736.4769Y=28722.3564计算得S=939.9999862Z=-0.000027710X=19733.4730Y=28722.5317计算得S=940.0000238Z=3.00898694特别说明:π=3.14151926......

在算例中:

1、K0+500.000~K0+769.256为直线部分;

2、K0+769.256~K0+806.748为完整缓和曲线部分;

3、K0+806.748~K0+919.527为圆曲线部分;

4、K0+919.527~K0+999.812为非完整缓和曲线部分;

6、圆曲线(YQX)

∟b ∣0:?:?X X :?:?Y

Y ↙∟b ∣1:Pol(X-O X ,Y-O Y ):A+(Q-Q'):A+(Q-Q')×π×π×πR R ÷180180→→S:"S=":S S:"S=":S◢

◢R -I →Z:"Z=":Z Z:"Z=":Z◢

◢说明:说明:X

X ,Y —测点坐标O X ,O Y —圆心坐标

Q —HY 或YH 点到圆心的方位角

Q ’—测点坐标到圆心的方位角

师傅:李付河改编:杜高阳dugaoyang@https://www.wendangku.net/doc/4d13702092.html,

6

最新最全PKPM钢结构计算

PKPM做钢结构的经验集萃 1、优化设计并非是把别人的设计拿过来,按照原设计思路死扣用钢量(俗称“蚊子腿上剔 精肉”),因为这样通常大幅度降低了原设计的安全度,“荷载优化”是选取适当的荷载,应当兼顾业主对结构小幅改动的可能性,比如吊挂灯具、功能分区重新布局。把恒载取得很小,用钢量没有减小太多,功能限制则限制太死。优化首先考虑变化方案,简化结构传力模式和传力途径,做到大处节省,具体到杆件节点则要放宽。如果原结构各部件安全储备相差严重时,可以选择一个合适的安全储备标准来调整各构件型号,该加大的加大,该减小的减小。结构安全是整体安全,个别杆件强大没啥用。 2、《建筑工程施工质量验收统一标准》(GB50300-2001)5.0.6条:检测单位鉴定达不到要 求时,经原设计单位核算认为满足安全时可以验收。一级建造师《项目管理》中讲:检测单位鉴定达不到要求时,经原设计单位核算认为满足安全时可以验收。对未达要求的行为承担“违约责任”。 3、网架焊接球如果采用压制钢板制作,钢板厚度公差接近±2.5mm,《强规》规定偏差不 大于13%和1.5mm。怎么办呢?制作时可以把钢板加厚1mm就可以避质检找麻烦了。 4、设置20吨以上的吊车的厂房在国内不允许按《门式刚架规程》设计,主要在于国内吊 车梁安装偏差和吊车轨道安装偏差造成卡规,使水平力增加4-5倍,导致厂房剧烈晃动,没法正常使用。总之,任何先进的设计方法都无法超越实际施工水平来实现,要求符合国情(或者“公司加工实力”)。比如对20吨驾操吊车的门架按美国规范控制柱头位移为H/240(国内H/400),晃动得没人愿意驾操,省那一点点钢材和厂房适用性相比就显“设计扣到家”有多么可笑了。 5、什么样的维护系统需要考虑阵风系数?(1)、对脆性材料。如玻璃幕墙,必须采用阵风 系数。(2)、对阵风作用下,对荷载临时提高能够承受的钢材等,不需要考虑阵风系数。 (3)、不该考虑阵风系数的维护系统考虑了阵风系数,安全度比主结构高出一倍,不利于主体安全。 6、挠度有三种:(1)、与安全有关的控制标准。(2)、反映安装质量的控制标准。(3)、外 形美观的控制标准。比如,单层网壳仅仅计算稳定性缺陷考虑1/300,挠度大了影响结构安全。但对双层网壳仅是对施工质量的控制。 7、《网架规程》中:“温度应力计算”仅限于四边支撑网架。 8、生物界的工程原则就是我们追求的工程设计原则:(1)、节省。用最少消耗达到最大效 果。(2)、安全。做可以超载性生物体(建筑物),即使部分损坏也不危及整体生存。(3)、简单快捷。 9、网架、网壳计算风载不大时,永久荷载占总荷载50%以内时,不需要按“1.35*恒载” 考虑。 10、网架活载取值不要小于0.5KN/M2.。 11、如果附加荷载超过25Kg/M2,应当考虑檩条上是否有集中荷载按集中荷载计算。 12、中国的《荷载规范》对风载的规定和美国规范比较:美国规范,向上的风吸力大些, 两端水平风力大,中间风力小。《门式钢架规程》侧移近似计算方法只适合初步估算,正式的侧移计算应用弹性整体计算方法。 13、门式钢架风载取值,对风载《全国民用建筑工程设计技术措施》规定:L/H≤4时 应该用《荷载规程》;L/H>4时应该按门式钢架规程。 14、开敞式:指的是开口面积≥80%的墙面面积。部分封闭式:A、开口集中在一墙面 上。B、该墙面洞口面积大于其他墙面洞口面积之和。C、开口面大于本墙面5%。D、不均匀的大开口,内部风压加大为+0.6、-0.3(不再是±0.2)。

汇编语言实验报告

合肥工业大学计算机与信息学院 实验报告 课程:汇编语言程序设计专业班级: 学号: 姓名:

实验一Debug程序的使用 一.实验目的 1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。 2、掌握8086/8088的寻址方式及多字节数据的处理方法。 二.实验内容 1、利用DEBUG程序中的“E”命令,将两个多字节数“003F1AE7H”和“006BE5C4H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。 2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H 单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。要求: 本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。 三.实验过程和程序 1、启动DOS操作系统 2、运行https://www.wendangku.net/doc/4d13702092.html,程序(若当前盘为C) C:>DEBUG↙ – ;(“–”为DEBUG提示符,仅当屏幕出现该提示符后,才可输入DEBUG命令) 3、用“A”命令编辑和汇编源程序 -A 136C:0100 MOV AX,[0200] 136C:0103 MOV BX,[0202] 136C:0107 ADD AX,[0204] 136C:010B ADC BX,[0206] 136C:010F MOV [0208],AX 136C:0112 MOV [020A],BX 136C:0116 4、用“U”命令反汇编验证源程序 -U CS:0100 136C:0100 A10002 MOV AX,[0200] 136C:0103 8B1E0202 MOV BX,[0202] 136C:0107 03060402 ADD AX,[0204] 136C:010B 131E0602 ADC BX,[0206] 136C:010F A30802 MOV [0208],AX 136C:0112 891E0A02 MOV [020A],BX 136C:0116 0000 ADD [BX+SI],AL 136C:0118 0000 ADD [BX+SI],AL 136C:011A 0000 ADD [BX+SI],AL 136C:011C 3400 XOR AL,00 136C:011E 5B POP BX 136C:011F 1300 ADC AX,[BX+SI] - 5、程序未执行前,用“R”命令观察,相关寄存器的内容。

51单片机常用子程序汇总

目录 1、通过串口连续发送n个字节的数据 /*************************************************************** 模块功能:通过串口连续发送n个字节的数据 参数说明: s:待发送数据的首地址 n:要发送数据的字节数 ***************************************************************/ void SendD(unsigned char *s,unsigned char n) { unsigned char unX; if(n>0) { ES=0; // 关闭串口中断 for(unX=0;unX #include #define Nop() _nop_() //空指令

sbit SDA=P1^3; sbit SCL=P1^2; bit ACK; void Start_I2c() { SDA=1; Nop(); SCL=1; Nop(); Nop(); Nop(); Nop(); Nop(); SDA=0; Nop(); Nop(); Nop(); Nop(); Nop(); SCL=0; //钳住I2C总线,准备发送或接受数据Nop(); Nop(); } (2)结束总线函数 /*************************************************************** 模块功能:发送I2C总线结束条件 ***************************************************************/ void Stop_I2c() { SDA=0; Nop(); SCL=1; Nop(); Nop(); Nop(); Nop(); Nop(); SDA=1; Nop(); Nop(); Nop(); Nop();

数学建模常用算法程序

假设图G 权的邻接矩阵为0A , ????? ? ??? ???=nn n n n n a a a a a a a a a A 2 1 22221 112110 来存放各边长度,其中: 0=ii a n i ,,2,1 =; ∞=ij a j i ,之间没有边,在程序中以各边都不可能达到的充分大的数代替; ij ij w a = ij w 是j i ,之间边的长度,n j i ,,2,1, =。 对于无向图,0A 是对称矩阵,ji ij a a =。 Floyd 算法的基本思想是:递推产生一个矩阵序列n k A A A A ,,,,,10 ,其中),(j i A k 表示从顶点i v 到顶点j v 的路径上所经过的顶点序号不大于k 的最短路径长度。 计算时用迭代公式: )),(),(),,(min(),(111j k A k i A j i A j i A k k k k ---+= k 是迭代次数,n k j i ,,2,1,, =。 最后,当n k =时,n A 即是各顶点之间的最短通路值。 例10 用Floyd 算法求解例1。 矩阵path 用来存放每对顶点之间最短路径上所经过的顶点的序号。Floyd 算法的Matlab 程序如下: clear; clc; M=10000; a(1,:)=[0,50,M,40,25,10]; a(2,:)=[zeros(1,2),15,20,M,25]; a(3,:)=[zeros(1,3),10,20,M]; a(4,:)=[zeros(1,4),10,25]; a(5,:)=[zeros(1,5),55]; a(6,:)=zeros(1,6); b=a+a';path=zeros(length(b)); for k=1:6 for i=1:6 for j=1:6 if b(i,j)>b(i,k)+b(k,j)

简易计算器面板小程序

[java語言與程序設計]简易计算器面板小程序 歸真我发表于:2011/8/1822:49:17标签(TAG):简易计算器面板java小程序 /**C1.java简易计算器面板小程序*/ import java.applet.*;//引入Java系统标准类库中java.applet包 import java.awt.*;//引入Java系统标准类库中java.awt包 import java.awt.event.*;//引入Java系统标准类库中java.awt.event包 public class C1extends Applet{ Label b;//标题标签对象 TextField t1,t2,t3;//三个文本框对象 Button btn1,btn2;//两个按钮对象 CheckboxGroup se;//单选按钮组,它由四个互斥的按钮组成,用来选择计算类型。 Checkbox a,s,m,d;//四个单选按钮,分别代表加、减、乘、除四种运算。 public void init(){ b=new Label("简易计算器面板设计");//创建标题标签对象 t1=new TextField(13);//创建文本框1,用来输入操作数1 t2=new TextField(13);//创建文本框2,用来输入操作数2 t3=new TextField(13);//创建文本框3,用来输出运算结果 btn1=new Button("等于");//创建按钮1“等于”,用来对输入的两操作数进行运算btn2=new Button("重置");//创建按钮2“重置”,用来清空三个文本框,并将计算类型置为初始状态(选中加法)。 se=new CheckboxGroup();//创建单选按钮组 a=new Checkbox("加",true,se);//创建单选按钮:加 s=new Checkbox("减",false,se);//创建单选按钮:减 m=new Checkbox("乘",false,se);//创建单选按钮:乘 d=new Checkbox("除",false,se);//创建单选按钮:除

汇编语言-实验二 循环与子程序程序设计

实验二循环与子程序程序设计 一、实验目的 1) 加深对循环结构的理解。 2)掌握循环程序的设计方法。 3)学习子程序的定义和调用方法。 4)掌握子程序、子程序的嵌套、递归子程序的结构。 5) 掌握子程序设计、编制及调试。 6) 熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。 二、实验内容 1) 编制程序计算S=1+2·3+3·4+4·5+……+N(N+1)+……直到N(N+1)大于200为止,并将结果由屏幕上显示出来。 2)将从3000H内存单元开始的100个字节存储单元全部清0。 3)编制在屏幕上显示九九乘法表的程序。 4)编制在屏幕上显示用*组成的三角形的程序。 5)设有五个字数据存放在以BUF为首地址的内存单元中,要求采用调用多个字数据相加的子程序方法编程,和的低位字放在RESULT单元,和的高位字放在RESULT+2单元,并将结果显示在屏幕上。 6)编写一个递归子程序,计算指数函数X n的值,其中X,n从键盘输入。 三、源程序 EXAM2-1 DA TA SEGMENT BUF DB’S=1+2×3+3×4+4×5+…+N(N+1)+…=’,’$’ RES DW 4 DUP(0),’$’ DA TA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DA TA START:MOV AX,DA TA MOV DS,AX MOV DX, OFFSET BUF MOV AH,09H

INT 21H MOV DX, 1 MOV BL, 2 NEXT:MOV AL,BL INC BL MUL BL ADD DX,AX CMP AX,200 JNA NEXT MOV CX,0004H MOV DI,OFFSET RES ADD DI,03H NEXT1:MOV AX, DX AND AX, 000FH CMP AL,0AH JB NEXT2 ADD AL,07 NEXT2:ADD AL, 30H MOV [DI],AL DEC DI PUSH CX MOV CL,04 SHR DX,CL POP CX LOOP NEXT1 MOV DX,OFFSET RES MOV AH,09H INT 21H MOV AH,4CH INT 21H CODE ENDS END START 执行程序EXAM2-1·EXE,屏幕上显示结果: S=1+2×3+3×4+4×5+...+N(N+1)+ (045) EXAM2-2 ORG 2000H 2000 BF0030 MOV DI, 3000 2003 B164 MOV CL, 64 2005 C60500 MOV BYTE PTR[DI],0 2008 47 INC DI 2009 FEC9 DEC CL 200B 75F8 JNZ 2005 200D F4 HLT

程序设计竞赛常用算法

常用算法设计方法 要使计算机能完成人们预定的工作,首先必须为如何完成预定的工作设计一个算法,然后再根据算法编写程序。计算机程序要对问题的每个对象和处理规则给出正确详尽的描述,其中程序的数据结构和变量用来描述问题的对象,程序结构、函数和语句用来描述问题的算法。算法数据结构是程序的两个重要方面。 算法是问题求解过程的精确描述,一个算法由有限条可完全机械地执行的、有确定结果的指令组成。指令正确地描述了要完成的任务和它们被执行的顺序。计算机按算法指令所描述的顺序执行算法的指令能在有限的步骤内终止,或终止于给出问题的解,或终止于指出问题对此输入数据无解。 通常求解一个问题可能会有多种算法可供选择,选择的主要标准是算法的正确性和可靠性,简单性和易理解性。其次是算法所需要的存储空间少和执行更快等。 算法设计是一件非常困难的工作,常用的算法设计方法主要有迭代法、穷举搜索法、递推法、递归法、贪婪法、回溯法、分治法、动态规划法等。 一、迭代法 迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行:(1)选一个方程的近似根,赋给变量x0; (2)将x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0; (3)当x0与x1的差的绝对值还大于指定的精度要求时,重复步骤(2)的计算。 若方程有根,并且用上述方法计算出来的近似根序列收敛,则按上述方法求得的x0就认为是方程的根。上述算法用C程序的形式表示为: 【算法】迭代法求方程的根 { x0=初始近似根; do { x1=x0; x0=g(x1); /*按特定的方程计算新的近似根*/ } while ( fabs(x0-x1)>Epsilon); prin tf(“方程的近似根是%f\n”,x0); } 具体使用迭代法求根时应注意以下两种可能发生的情况: (1)如果方程无解,算法求出的近似根序列就不会收敛,迭代过程会变成死循环,因此在使用迭代算法前应先考察方程是否有解,并在程序中对迭代的次数给予限制; (2)方程虽然有解,但迭代公式选择不当,或迭代的初始近似根选择不合理,也会导致迭代失败。 【举例】求方程X2-X-1=0的正根,误差<0.05 解:(1)建立迭代公式 由于X=X2-1

简易加减计算器小程序

[java語言與程序設計]简易加减计算器小程序 歸真我发表于:2011/8/1922:51:21标签(TAG): 简易加减计算器小程序 在上一篇《简易计算器面板小程序》中,我已对面板部分的程序作了详细的注释,并对程序的运行过程及结果作了完整的介绍,并且是上机调试过了得到的结果。但是,那只是面板,不能运算。要想让它具有运算的功能,还得在此基础上作一些修改,加进有关按钮动作响应部分的程序。为了便于理解,便于调试,便于学习,掌握其要点,我想应该遵循循序渐进的原则,所以,先从加减运算开始,看看这个功能是怎么实现的。请看下面的小程序。从程序中可以看出,它是利用内部类ButtonAct来处理按钮的动作响应的。从总体上讲是两个按钮“运算”和“重置”,但“运算”又区分为“加”和“减”。所以,用负责实现双分支的if语句来编程。 /**C2.java简易加减计算器小程序*/ import java.applet.*; import java.awt.*; import java.awt.event.*; public class C2extends Applet{ TextField t1,t2,t3; Button btn1,btn2; CheckboxGroup select; Checkbox a,s;//分别代表加、减 Label b; public void init(){ t1=new TextField(13); t2=new TextField(13); t3=new TextField(13); btn1=new Button("等于");

btn2=new Button("重置"); select=new CheckboxGroup(); a=new Checkbox("加",true,select); s=new Checkbox("减",false,select); b=new Label("简易加法/减法计算器"); add(b); add(t1); add(a); add(s); add(t2); add(btn1); add(t3); add(btn2); btn1.addActionListener(new ButtonAct());//注册给ButtonAct对象btn2.addActionListener(new ButtonAct());//注册给ButtonAct对象} class ButtonAct implements ActionListener{//内部类,按钮处理public void actionPerformed(ActionEvent e){ int op1,op2,op3; if(e.getSource()==btn1){//等于按钮 op1=Integer.parseInt(t1.getText()); op2=Integer.parseInt(t2.getText()); if(a.getState())//以下判断计算类型并实现相应的计算 op3=op1+op2; else op3=op1-op2; t3.setText(Integer.toString(op3)); } else{//重置按钮 t1.setText(""); t2.setText(""); t3.setText(""); a.setState(true); } } }//end of ButtonAct }//*~ 运行结果为:

常见的钢结构计算公式

2-5 钢结构计算 2-5-1 钢结构计算用表 为保证承重结构的承载能力和防止在一定条件下出现脆性破坏,应根据结构的重要性、荷载特征、结构形式、应力状态、连接方法、钢材厚度和工作环境等因素综合考虑,选用合适的钢材牌号和材性。 承重结构的钢材宜采用Q235钢、Q345钢、Q390钢和Q420钢,其质量应分别符合现行国家标准《碳素结构钢》GB/T 700和《低合金高强度结构钢》GB/T 1591的规定。当采用其他牌号的钢材时,尚应符合相应有关标准的规定和要求。对Q235钢宜选用镇静钢或半镇静钢。 承重结构的钢材应具有抗拉强度、伸长率、屈服强度和硫、磷含量的合格保证,对焊接结构尚应具有碳含量的合格保证。 焊接承重结构以及重要的非焊接承重结构的钢材还应具有冷弯试验的合格保证。 对于需要验算疲劳的焊接结构的钢材,应具有常温冲击韧性的合格保证。当结构工作温度等于或低于0℃但高于-20℃时,Q235钢和Q345钢应具有0℃C冲击韧性的合格保证;对Q390钢和Q420钢应具有-20℃冲击韧性的合格保证。当结构工作温度等于或低于-20℃时,对Q235钢和Q345钢应具有-20℃冲击韧性的合格保证;对Q390钢和Q420钢应具有-40℃冲击韧性的合格保证。 对于需要验算疲劳的非焊接结构的钢材亦应具有常温冲击韧性的合格保证,当结构工作温度等于或低于-20℃时,对Q235钢和Q345钢应具

有0℃冲击韧性的合格保证;对Q390钢和Q420钢应具有-20℃冲击韧性的合格保证。 当焊接承重结构为防止钢材的层状撕裂而采用Z向钢时,其材质应符合现行国家标准《厚度方向性能钢板》GB/T 5313的规定。 钢材的强度设计值(材料强度的标准值除以抗力分项系数),应根据钢材厚度或直径按表2-77采用。钢铸件的强度设计值应按表2-78采用。连接的强度设计值应按表2-79至表2-81采用。 钢材的强度设计值(N/mm2)表2-77

北京理工大学汇编语言实验报告实验五 子程序设计实验

实验五子程序设计实验(设计性实验) 一、实验要求和目的 1.熟悉汇编语言程序设计结构; 2.熟悉汇编语言子程序设计方法; 3.熟悉利用汇编语言子程序参数传递方法; 4.熟悉汇编语言字符串处理基本指令的使用方法; 5.掌握利用汇编语言实现字符串的输入输出程序设计方法; 6.掌握数制转换程序实现方法。 二、软硬件环境 1、硬件环境:计算机系统windows; 2、软件环境:装有MASM、DEBUG、LINK、等应用程序。 三、实验涉及的主要知识 A)子程序知识要点: 1、掌握子程序的定义语句; 过程名 PROC [near/far] 过程体 RET 过程名 ENDP 2.子程序结构形式 一个完整的子程序一般应包含下列内容: 1. )子程序的说明部分 在设计了程序时,要建立子程序的文档说明,使用户能清楚此子程序的功能和调用方法. 说明时,应含如下内容: .子程序名:命名时要名中见意. .子程序的功能:说明子程序完成的任务; .子程序入口参数:说明子程序运行所需参数及存放位置; .子程序出口参数:说明子程序运行结果的参数及存放位置; .子程序所占用的寄存器和工作单元; .子程序调用示例; 2、)掌握子程序的调用与返回 在汇编语言中,子程序的调用用CALL,返回用RET 指令来完成。 .段内调用与返回:调用子程序指令与子程序同在一个段内。因此只修改IP; .段间调用与返回:调用子程序与子程序分别在不同的段,因此在返回时,需同时修改CS:IP。 3.)子程序的现场保护与恢复 保护现场:在子程序设计时,CPU 内部寄存器内容的保护和恢复。 一般利用堆栈实现现场保护和恢复的格式: 过程名PROC [NEAR/FAR]

VB程序设计的常用算法

VB程序设计的常用算法 算法(Algorithm):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。 一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。 例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 本题使用数组来处理,用数组a(1 to 100)存放产生的确100个随机整数,数组x(1 to 10)来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数。即个位是1的个数存放在x(1)中,个位是2的个数存放在x(2)中,……个位是0的个数存放在x(10)。 将程序编写在一个GetTJput过程中,代码如下: Public Sub GetTJput() Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer Dim i As Integer, p As Integer '产生100个[0,99]范围内的随机整数,每行10个打印出来 For i = 1 To 100 a(i) = Int(Rnd * 100) If a(i) < 10 Then Form1.Print Space(2); a(i); Else Form1.Print Space(1); a(i); End If If i Mod 10 = 0 Then Form1.Print Next i '统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数,并将统计结果保存在数组x(1),x(2),...,x(10)中,将统计结果打印出来 For i = 1 To 100 p = a(i) Mod 10 ' 求个位上的数字 If p = 0 Then p = 10 x(p) = x(p) + 1 Next i Form1.Print "统计结果" For i = 1 To 10 p = i If i = 10 Then p = 0 Form1.Print "个位数为" + Str(p) + "共" + Str(x(i)) + "个" Next i End Sub 二、求两个整数的最大公约数、最小公倍数 分析:求最大公约数的算法思想:(最小公倍数=两个整数之积/最大公约数) (1) 对于已知两数m,n,使得m>n; (2) m除以n得余数r; (3) 若r=0,则n为求得的最大公约数,算法结束;否则执行(4); (4) m←n,n←r,再重复执行(2)。 例如:求m=14 ,n=6的最大公约数. m n r

汇编语言实验报告(子程序)

西安财经学院信息学院 姓名 学号 10051704 班级计本1004班 指导教师张娟 《汇编语言程序设计》实验报告 实验名子程序结构程序设计 实验室实验楼403 实验日期 2013/06/09 1、实验目的及要求 1. 学习子程序的编写,主子程序的调用 2. 不同模块间程序的调用和调试 二、实验环境 硬件环境:一台微型计算机; 软件环境:windows 7 链接程序:LINK.EXE 调试环境:DOSBOX虚拟平台。 3、实验内容 数据段中的6个字符,“ABCDEF”,调用子程序将其逐个显示出来。子程序的功能是显示一个字符。 四、实验过程 1. 通过编译程序、链接程序分别生成OBJ和EXE文件后,直接运 行查看结果如下: 2. 反汇编,查看程序的指令,如下所示:

3. 用 -d 查看数据段内存放的数据: 4. 单步执行

查看堆栈段的内容:

继续单步执行:

5、源程序清单 程序源代码如下: DATA SEGMENT MAG DB ‘ABCDEF’ DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA START: MOV AX, DATA MOV DS, AX MOV SI, 0 MOV CX, 6 LL: MOV DL, MAG[SI] CALL MADD INC SI LOOP LL MOV AH, 4CH INT 21H MADD PROC MOV AH, 02H INT 21H RET MADD ENDP CODE ENDS END START 6、实验体会 本次实验完成比较顺利。首先,程序是在网上找的,但是我用纸笔写下来仔细地看程序的每一行代码,都弄清楚以后,才建立的文件一步一步执行下来的。其实实验中还是遇到了一些小问题,但都能够顺利解决,所以本次实验不仅巩固了理论知识、培养了动手能力,还增加了做实验的自信心。对以后的学习都有很大的帮助。

自己编的c#小程序—计算器

实验内容 1.仿照windows自带的计算机用C#语言做一个能简单加减乘除的计算器 using System; using System.Collections.Generic; using https://www.wendangku.net/doc/4d13702092.html,ponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { private bool ClearDisplay = true; private string Op; private double Op1; private double Op2; private double result; public Form1() { InitializeComponent(); } private void textBox1_TextChanged(object sender, EventArgs e) { } private void Form1_Load() { } private void ce_Click(object sender, EventArgs e) { tb.Text = ""; Op = ""; Op1 = 0; Op2 = 0; result = 0; } private void num0_Click(object sender, EventArgs e) { tb.Text = tb.Text+ "0"; Op1 = System.Convert.ToDouble(tb.Text);

汇编语言程序设计实验报告三(子程序设计实验)

汇编语言程序设计实验报告三(子程序设计实验) 一、实验目的 1、掌握主程序与子程序之间的调用关系及其调用方法。 2、掌握子程序调用过程中近程调用与远程调用的区别。 3、熟练掌握码型变换的程序。 二、实验内容 1、从键盘输入二位非压缩BCD数,存入AX寄存器中,编程实现将其转换为二进制 数,并在屏幕上显示。要求码型转换程序用远程子程序编写,字符显示用近程子程序编写。数据可循环输入,遇‘00’结束。 三、实验准备 1、预习子程序设计的基本方法,根据实验内容要求编写出实验用程序。 2、熟悉键盘输入和字符显示的程序段的编制。 四、实验步骤 1、编辑、汇编源程序,生成可执行文件。 2、执行程序,检查输入、输出结果,看是否正确。如不正确,用DEBUG检查,修改 源程序,再汇编、运行,直到程序正确为止。 3、用DEBUG的T命令或P命令跟踪程序的执行,观察在远程和近程调用过程中,堆 栈的变化情况。 五、实验报告要求 1、分析近程调用和远程调用的主要区别。用DEBUG命令观察执行过程有何不同。 2、分析实验结果及所遇到的问题的解决方法。 主程序流程图 转换子程序TRAN流程图

七、程序清单 STA SEGMENT STACK ’STACK’ DB 100 DUP(0) STA ENDS GSAG SEGMENT PARA ‘CODE’ ASSUME CS:CSAG MAIN PROC FAR STRA T: PUSH DS SUB AX,AX PUSH AX REV: MOV AH,1 INT 21H MOV BL,AL INT 21H MOV AH,AL MOV AL,BL CMP AX,3030H JE ENDTRAN CALL NEAR PTR TRAN CALL FAR PTR CON MOV AL,0DH CALL FAR PTR DISP MOV AL,0AH CALL FAR PTR DISP MOV AL,0AH CALL FAR PTR DISP JMP REV ENDTRAN: RET MAIN ENDP TRAN PROC NEAR AND AX,0F0FH MOV BL,AL MOV BL,AL MOV CL,3 SHL AL,CL MOV CL,1 SHL BL,CL ADD AL,BL ADD AL,AH RET TRAN ENDP CSAG ENDS CSBG SEGMENT PARA’CODE’ ASSUME CS:CSBG

C语言的六种常用算法

六种常用算法 一、有条不紊——递推法破解难题 问:“我对数据结构有了一定了解,但还是不太懂程序。从经典公式“程序=算法+数据结构”得知,是因为不了解算法。能不能介绍几种简单的算法,当然从最容易懂的那种开始了?” 答:“算法就是能够证明正确的解题步骤,算法有许多种,最简单的无非下面的六种:递推法、贪心法、列举法、递归法、分治法和模拟法。刚听名字挺吓人的,其实有好多程序我们平常都见过。这些算法当中,最最简单的莫过于递推算法了。下面举例说明。” 1、什么是递推法 递推法这种解题方法其实在我们编程的过程中用的很多,只不过没有将其上升到理论的高度罢了。所谓递推法,就是找出和时间先后相联系或和数的大小相联系的步骤,上一步和下一步和数字的增大或减小有一定的联系。我们要么从前向后(或从小到大)推导,也可从后向前(或从大到小)推导。由此得出两种推导方法:顺推法和倒推法。请看下面的示例。 示例:猴子分食桃子:五只猴子采得一堆桃子,猴子彼此约定隔天早起后再分食。不过,就在半夜里,一只猴子偷偷起来,把桃子均分成五堆后,发现还多一个,它吃掉这桃子,并拿走了其中一堆。第二只猴子醒来,又把桃子均分成五堆后,还是多了一个,它也吃掉这个桃子,并拿走了其中一堆。第三只,第四只,第五只猴子都依次如此分食桃子。那么桃子数最少应该有几个呢? 编程简析:怎样编程呢?先要找一下第N只猴子和其面前桃子数的关系。如果从第1只开始往第5只找,不好找,但如果思路一变,从第N到第1去,可得出下面的推导式: 第N只猴第N只猴前桃子数目 5 s5=x 4 s4=s5*5/4+1 3 s3=s4*5/4+1 2 s2=s3*5/4+1 1 s1=s2*5/4+1 s1即为所求。上面的规律中只要将s1-s5的下标去掉: s=x s=s*5/4+1 s=s*5/4+1 s=s*5/4+1 s=s*5/4+1 所以可以用循环语句加以解决。 综观程序的整体结构,最外是一个循环,因为循环次数不定,可以使用While循环,其结束条件则是找到第一个符合条件的数。为了做出上面while循环的结束条件,还需进一步分析上述规律的特点,要符合题目中的要求,s1-s4四个数必须全部为整数,这个可作为条件。具体实现请参看源程序。 int peach() { //最少最后应该是5 的倍数加1但同时又是4 的倍数, 从16 起加 int k = 0,s = 0, x = 16,i = 0; while( k< 4) { k = 0;

第五次汇编语言实验报告 子程序设计

汇编语言实验报告 Assembly Language Programming Lab Reports ______________________________________________________________________________ 班级:姓名:学号:实验日期: 学院:专业: 实验顺序:原创:___ 实验名称:子程序设计 实验分数:_______ 考评日期:________ 指导教师: ______________________________________________________________________________ 一.实验目的 1、掌握过程调用伪指令: PROC,ENDP,NEAR和FAR。 2、掌握 CALL,RET,RET n。理解子程序调用时现场保护和恢复现场的意义。 3、掌握子程序传递参数的三种方式,寄存器,内存单元,堆栈。 4、培养在复杂的程序设计时,采用模块化结构划分功能,分解程序的意识。 5、对子函数的嵌套调用和递归调用有一定的理解。 ______________________________________________________________________________二.实验环境 操作系统:windows 8 编译程序:masm 5.0 ______________________________________________________________________________三.实验原理 1.子程序递归,堆栈传参 2.寄存器、存储器传参 ______________________________________________________________________________ 四.实验步骤及结果分析 1.子程序递归调用(求阶乘) 用堆栈进行传递参数 高级语言函数调用过程 Fac(n) = fac(n-1)*n n>0 Fac(n)= 1 n=0 高级语言递归调用,形参中的内容在这层递归调用结束后才会被释放 实参5 实参 4 实参 3 实参2 实参 1 形参n=5 形参n =4 形参n =3 形参n =2 形参n =1 Fac(4)*5 Fac(3)*4 Fac(2)*3 Fac(1)*2 Fac(0)*1 Fac(n-1)*n Fac(n-1)*n Fac(n-1)*n Fac(n-1)*n Fac(n-1)*n

重庆普通专升本《计算机程序设计》中常用算法复习

重庆普通专升本《计算机程序设计》中常用算法复习 一、常用算法有8个方面: 1、递推算法(级数、数列求和、二分法、梯形法、穷举法等) 2、排序算法(选择法排序、冒泡法) 3、查找算法(顺序查找、折半查找、统计、求和、计数) 4、有序数列的插入、删除操作 5、求解算法(最大数、最小数、素数、最大公约数、最小公倍数) 6、矩阵的处理(生成矩阵、交换和基本运算) 7、递归算法(求阶乘、最大公约数) 8、字符串处理(插入、删除、连接和比较) 二、常用算法的应用举例:(有21个程序) 1、计算S=1+2+…+100的值。(求和、统计) 2、找出100~999之间的所有“水仙花数”(穷举法、统计) 3、从键盘输入10个数,然后找出其中的最大值和最小值。(找最大数、最小数) 4、任意输入n个数,按由小到大的顺序排列并显示输出。(排序算法--选择法排序) 5、(对字符串排序处理)有5个英文单词,分别为:Word,Excel,Powerpoint,Type,Angle,要求设计出如下程序: (1)在键盘上输入数N(本例输入5),把英文单词放入名为X大小为N 的数组中 (2)显示出X数组中的英文单词 (3)对数组中的英文单词从小到大排序 (4)显示出排序后X数组中英文单词 6、求5的阶乘值(5!=?) 7、计算t=1!+2!+……+10! (即求阶乘之和)。 计算t=1!+2!+……+10! 即求阶乘之和(双循环)。 8、多项式S=1+2+22+23+……+232,请设计一个程序,求S的值。 9、除了1和它本身之外不能被任何一个整数所整除的自然数叫质数,除去2之

外,其它质数都是奇数,又称为素数。请设计一个程序,在屏幕上输出3——15 0之间的所有素数。 10、设计1个程序,要求是:(查找算法、统计、求和、找素数或质数) (1)在键盘上输入1个不小于3的自然数N(例输入10),求出其不到第N 个自然数中奇数之和,并输出结果 (2)输出1到第N自然数中所有质数的个数 11、穷举法,整钱找零.prg 程序如下: *(1)穷举法整钱找零.prg"、 *整钱找零:100=x1*10+x2*5+x3*1 *x1,x2,x3>=1,x1+x2+x3=20 for x1=1 to 10 for x2=1 to 20 x3=20-x1-x2 if 100=x1*10+x2*5+x3*1 and x3>0 then ?x1,x2,x3 endif next x2 next x1 12、求级数.prg 程序如下: *求级数1.prg" *s=1+1/2-1/3+1/4+.... s=1 d=1 clear input "输入N:"to n for i=2 to n s=s+d*1/i

汇编经典小程序

实验一:判断一个数X的正,负数,还是零。(假设是正数,输出+,是负数,输出-,是零,输出This is a zore !) DATA SEGMENT X DB 10 CR EQU 0DH LF EQU 0AH W DB 'This is a zore!',CR,LF,'$' ZHENG DB '+',CR,LF,'$' FU DB '-',CR,LF,'$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,X AND AL,AL JZ L1 SHL AL,1 JC L3 JMP L2 L1: MOV DX,OFFSET W MOV AH,9 INT 21H JMP L4 L2: MOV DX,OFFSET ZHENG MOV AH,9 INT 21H JMP L4 L3: MOV DX,OFFSET FU MOV AH,9 INT 21H JMP L4 L4: MOV AH,4CH INT 21H CODE ENDS END START 实验二:求十个数中的最小数,并以十进制输出。(若要求最大的,只要把JC 改为JNC 即可)(仅局限于0---16间的数比较,因为ADD AL,30H只是针对一位的十六进制转换十进制的算法) DATA SEGMENT XDAT DB 0AH,1FH,02H,03H,04H,05H,06H,07H,08H,09H MIN DB ? CR EQU 0DH

W DB ' is min',CR,LF,'$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV CX,9 MOV SI,OFFSET XDAT MOV AL,[SI] L2: CMP AL,[SI+1] JC L1 MOV AL,[SI+1] L1: INC SI LOOP L2 ADD AL,30H MOV DL,AL MOV AH,2 INT 21H MOV DX,OFFSET W MOV AH,9 INT 21H CODE ENDS END START 实验三:设有3个单字节无符号数存放在BUF开始的缓冲区中,编写一个能将它们从大到小从新排列的程序。 DATA SEGMENT BUF DB 87,234,123 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUF MOV AL,[SI] ;把3个数取到寄存器中 MOV BL,[SI+1] MOV CL,[SI+2] CMP AL,BL ;排序,将最大数送AL寄存器 JAE NEXT1 XCHG AL,BL NEXT1:CMP AL,CL JAE NEXT2 XCHG AL,CL NEXT2:CMP BL,CL ;将最小输送CL寄存器

相关文档
相关文档 最新文档