第二次实验报告

合集下载

Ev2实验报告

Ev2实验报告

含水率对 Ev2 值的影响试验研究①目的:通过测量不同含水率的Ev2 值,分析沙土在不同含水率时对Ev2 值的影响。

②原理:变形模量 Ev2 试验是通过圆形承载板和加载装置对地面进行第一次加载和卸载后,再进行第二次加载,用测得的承载板下应力σ和与之相对应的承载板中心沉降量 S ,来计算变形模量 Ev2、 Ev1 及Ev2/Ev1 值的试验方法。

变形模量 Ev2 是反映荷载作用下土体反抗变形能力的刚度参数。

变形模量 Ev2 测试仪器应包括承载板、范蠡装置、加载装置、荷载量测装置及沉降量测装置。

JBM-2 型变形模量 Ev2 测试仪测试仪箱承载板为圆形钢板,承载板直径为300mm±0.2mm,厚度为 25mm ±0.2mm ,材质为 Q345 钢。

承载板上应带有水准泡。

承载板加工表面粗糙度应不大于 6.3um。

反力装置的承载能力应大于最大试验荷载 10kN 以上。

加载装置的液压千斤顶应通过高压油软管与手动液压泵连接。

千斤顶顶端应设置球铰,并配有可调节丝杆和加长杆件,以便与各种不同高度的反力装置相适应。

高压油软管长度应不小于 2m ,两端应装有自动开闭阀门的快速接头,以防止液压油漏出。

手动液压泵上应装有可调节减压阀,可准确地对荷载板进行分级加、卸载。

为使力准确传递,千斤顶两边应固定,并确保不倾斜。

千斤顶活塞的行程应不小于 150mm。

在试验过程中,应保证千斤顶高度不超过 600mm。

荷载量测表量程应达到最大试验荷载的1.25 倍,最大误差不大于 1 %。

荷载量测表显示值应能保证承载板荷载有效位至少达到 0.001MPa。

① 沉降量测装置应由测桥和测表组成。

②测桥的测量臂可采用杠杆式(见图 2-1 )或者垂直抽拉式(见图 2-2 )。

测量臂应有足够的刚度。

图 2-1 杠杆式测量臂1—触点 2—承载板 3—千斤顶 4—加长杆件 5—反力装置6—沉降量测表 7—支撑架 8—杠杆支点 9—测量臂 10—支撑座图 2-2 垂直抽拉式测量臂1—触点 2—承载板 3—千斤顶 4—加长杆件 5—反力装置6—沉降量测表 7—支撑架 8--垂直支架 9—支撑座③ 承载板中心至测桥支撑座的距离应大于 1.25m。

第二次实验报告

第二次实验报告

《VLSI》第二次实验报告
系别:班级:
学号:姓名:
日期:指导教师:
一、实验内容:
1.对反相器电路进行DRC验证
2.对反相器电路进行LVS验证。

3.对反相器电路进行寄生参数提取
4.对反相器电路进行后仿真
二、实验完成步骤及结果:
1、对反相器电路进行DRC验证
1)初次仿真结果截图:
2)错误分类及改正方法:
3)正确通过后的结果截图:
2、对反相器电路进行LVS验证
1)初次仿真结果截图:
2)错误分类及改正方法:
3)正确通过后的结果截图:
注意:如果一次通过(无错误),只需完成3)即可。

3、后仿真
1)修改后的网表文件
三、调试和运行程序过程中产生的问题及采取的措施:
四、心得:。

南京邮电大学-操作系统实验报告

南京邮电大学-操作系统实验报告

课内实验报告课程名:操作系统任课教师:沈超专业:信息管理与信息系统学号:姓名:二○一六至二○一七年度第一学期南京邮电大学经济与管理学院Process[numberschedul].order=tempcounter;}程序结果截图:二、银行家算法(网上借鉴)银行家算法,当进程提出资源申请时,系统首先检查该进程对资源的申请量是否超过其最大需求量及系统现有的资源能否满足进程需要。

若超过,则报错,若不能满足,则让该进程等待;否则进一步检查把资源分给该进程后系统能否出于安全状态,若安全,则分配,否则置该进程为等待资源状态。

算法实现过程:设进程i 提出请求REQUEST [j] ,则银行家算法按如下规则进行判断。

(1) 如果REQUEST [i] [j]<= NEED[i][j] ,则转(2) ;否则,出错。

(2) 如果REQUEST [i] [j]<= A V AILABLE[i][j] ,则转(3) ;否则,出错。

(3) 系统试探分配资源,修改相关数据:A V AILABLE[j]-=REQUEST[i][j];ALLOCATION[i][j]+=REQUEST[i][j];NEED[i][j]-=REQUEST[i][j];(4) 系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。

Check()关键代码:{int k, f, no=0;int work[M],a[M];char finish[M];anquan=1;for(i=0;i<n; i++) finish[i]='F';for(j=0;j<m; j++) work[j]=available[j]; k=n;do{ for (i=0;i<n; i++){if (finish[i]=='F'){ f=1;for (j=0;j<m; j++)if (need[i][j]>work[j]) printf("处于安全状态.");printf("安全序列号:");for (i=0;i<n;i++) printf ("%d ",a[i]); printf("\n");printf("进程");printf(" ");printf(" Max ");rintf(" ");rintf("allocation");printf(" ");printf("need");printf(" ");f=0;if (f==1)//找到还没完成的且需求数小于可提供进程继续运行的{ finish[i]='T';a[no++]=i;//记录安全序列号for (j=0;j<m; j++)work[j]=work[j]+allocation[i][j];//释放该进程已分配的资源available[j] =work[j];}}}k--; }while(k>0);f=1;for (i=0;i<n; i++)//判断有没有进程没完成{ if (finish[i]=='F'){f=0;break; }} if (f==0) {printf("不安全状态!\n");anquan=0;} else {printf("available");printf("\n");for (i=0;i<n; i++){ printf("%2d",i);printf(" ");for(j=0;j<m; j++)printf("%2d",max[i][j]);printf(" ");for(j=0;j<m; j++)printf("%2d",allocation[i][j]);printf(" ");for(j=0;j<m; j++)printf("%2d",need[i][j]);printf(" ");for(j=0;j<m; j++){if(i>0)break;printf("%2d",available[j]);}printf("\n");}}}程序结果截图:三、实验总结:这次上机模拟了进程调度过程和解决了死锁问题,让我对短作业优先调度算法和银行家算法有了比在课堂上更深刻的认识。

DNA的酶切、连接、转化和重组子的筛选与鉴定

DNA的酶切、连接、转化和重组子的筛选与鉴定

第二次分子生物学实验报告DNA的酶切、连接、转化和重组子的筛选与鉴定一、实验目的1、学习和掌握限制性内切酶的分类、特性与作用原理,掌握载体和外源目的DNA酶切的操作技术。

2、学习利用T4 DNA 连接酶把酶切后的载体片段和外源目的DNA 片段连接起来,构建体外重组DNA 分子的技术,了解并掌握几种常用的连接方法。

3、掌握利用CaCl2 制备感受态细胞的方法;学习和掌握热击法转化E. coli 的原理与方法。

4、学习并掌握使用红白菌落法筛选获得重组子以及α互补筛选法的原理及方法。

5、学习和掌握使用试剂盒抽提质粒的方法;6、复习琼脂糖凝胶电泳的原理和方法;7、通过对重组子进行重组质粒DNA 的抽提与酶切鉴定,进一步确定重组质粒中含有外源目的DNA 片段,并验证重组子是期望的重组子。

二、实验原理1、限制性内切酶限制性核酸内切酶是一类能够识别双链DNA 分子中的某种特定核苷酸序列,并由此切割DNA 双链结构的酶,主要是从原核生物中分离纯化出来的。

在限制性核酸内切限制酶的作用下,侵入细菌的“外源”DNA 分子便会被切割成不同大小的片段,而细菌自己固有的DNA 由于修饰酶(通常是一种甲基化酶)的保护作用,则可免受限制酶的降解。

目前已经鉴定出3 种不同类型的限制性核酸内切酶,即Ⅰ型酶、II 型酶和III 型酶。

Ⅰ型酶切割位点是随机的,至少距识别位点1000bp。

Ⅲ型限制酶的切割位点距识别序列3'端为24—26bp。

Ⅱ型限制酶的切割位点一般在识别序列上或与之靠近,而且具有序列特异性,故在基因克隆中有特别广泛的用途。

Ⅱ型核酸内切限制酶具有3个基本的特性:①在DNA 分子双链的特异性识别序列部位切割DNA 分子,产生链的断裂;②2个单链断裂部位在DNA 分子上的分布通常不是彼此直接相对的;③断裂结果形成的DNA 片段往往具有互补的单链延伸末端。

限制性核酸内切酶对DNA 底物的酶切作用是否完全,直接关系到连接反应、重组体分子的筛选和鉴定等实验结果。

东南大学电力电子技术第二次实验报告

东南大学电力电子技术第二次实验报告

东南大学《电力电子技术基础》实验报告第二次实验实验名称:单相全控桥式整流电路院(系):自动化专业:自动化姓名:学号:实验室:动力楼119 实验时间:2016 年11月19日评定成绩:审阅教师:目录1电压互感器(PT)与电流互感器(CT) (3)1.1电压互感器 (3)1.2电流互感器 (5)1.3 电压互感器和电流互感器在作用原理上的区别 (7)2认识相关模块 (7)2.1 互感器 (7)2.2 电度表 (8)3 单相全控桥式整流电路 (9)3.1 实验目的 (9)3.2 实验原理 (9)3.3 MATLAB仿真 (11)3.4 实验步骤 (12)3.5 实验数据与波形记录 (12)3.6 实验分析 (15)4 TCA785功能验证 (16)4.1 实验目的 (16)4.2 实验原理 (16)4.3 实验内容 (18)4.4 波形记录 (18)4.5 集成触发器应用 (20)5 思考分析 (21)附录:1、ULN2003数据手册2、MC1413数据手册3、数字触发器1电压互感器(PT)与电流互感器(CT)1.1 电压互感器1.1.1基本概念电压互感器又称仪用变压器,是一种电压变换装置。

常用于变配电仪表测量和继电保护等回路,按原理可分为电磁感应式和电容分压式两类。

电磁感应式一般用于110KV以上的电力系统,330~765KV超高压电力系统应用较多。

电压互感器按用途又分为测量用和保护用两类,对前者的主要技术要求是保证必要的准确度,对后者可能有某些特殊要求。

1.1.2工作原理电压互感器的工作原理与普通电力变压器相同,结构原理和接线也相似。

特点是容量很小且比较稳定,正常运行时接近于空载状态,图1.1是电压互感器使用时的接线图。

工作时,一次绕组匝数很多,并联接到主线路,一次侧电压决定于一次电力网的电压U1,不受二次侧负荷影响。

二次侧绕组匝数很小,并联接入电压表或其他测量仪表的电压线圈。

电压互感器的一次电压U1与其二次电压U2之间有下列关系式中 N1、N2——电压互感器一次和二次绕组的匝数;——电压互感器的变压比。

两次仪器高法水准测量实验报告

两次仪器高法水准测量实验报告

两次仪器高法水准测量实验报告对于仪器高法水准测量实验,我进行了两次实验,并撰写了以下报告。

一、实验目的本次实验的目的是掌握水准仪的使用方法,了解仪器高法水准测量的原理,并通过实验计算出不同目标点之间的高差。

二、实验原理1. 仪器高法水准测量原理仪器高法水准测量是利用水准仪来确定不同目标点之间的高度差,根据高度的测量需要,可将测站分为平距越小的几组,每组称为测段。

测量从起始测站开始,沿着测段逐步确定各目标点的高程。

2. 水准仪的使用方法在进行仪器高法水准测量前,需要先通过水准仪来确定起始测站的基准高度,然后再进行不同目标点之间的高度测量。

使用水准仪时,需要进行水平、垂直调节,以保证数据的准确性。

三、实验仪器1. 水准仪2. 四抬杆3. 测量带4. 针式水平仪四、实验步骤1. 调整水准仪的水平和垂直,使其处于工作状态。

2. 根据实际需要,确定不同目标点的位置和编号。

3. 把四抬杆固定在目标点上,并使用水准仪对杆进行观测,记录读数。

4. 计算不同目标点之间的高差。

五、实验结果第一次实验:起始测站高度:100.50米目标点1高度:99.42米目标点2高度:98.75米目标点3高度:98.21米目标点4高度:97.96米计算结果:目标点1高程:100.50-0.08=100.42米目标点2高程:100.50-1.75=98.75米目标点3高程:100.50-2.29=98.21米目标点4高程:100.50-2.54=97.96米第二次实验:起始测站高度:99.75米目标点1高度:98.83米目标点2高度:98.02米目标点3高度:97.60米目标点4高度:97.32米计算结果:目标点1高程:99.75-0.92=98.83米目标点2高程:99.75-1.73=98.02米目标点3高程:99.75-2.15=97.60米目标点4高程:99.75-2.43=97.32米六、实验结论通过本次仪器高法水准测量实验的两次实验结果可看出,不同目标点的高度差是根据起始测站的高度与目标点的高度之差来计算的。

JAVA实验报告Y.Daniel Liang第二次实验

JAVA实验报告Y.Daniel Liang第二次实验

2014-2015学年第一学期实验报告课程名称:Java SE 平台技术实验名称:JA VA编程(基础练习)姓名:学号:成绩:指导教师:日期:目录一、实验目的 (3)二、实验内容 (3)2.1 构建一个继承类。

(3)2.2 抽象类和接口的使用 (3)2.3 图像类编程和事件驱动程序。

(3)三、实验环境 (3)四、实验结果 (3)4.1构建继承类 (3)4.2抽象类和接口的使用 (3)4.3 事件驱动程序 (3)五、附录 (4)5.2 设计方案 (4)5.1构建继承类 (4)5.2抽象类和接口的使用 (4)5.3 事件驱动程序 (4)5.2 设计方案 (4)5.1构建继承类 (4)5.2抽象类和接口的使用 (4)5.3 事件驱动程序 (4)5.3 算法 (4)5.3.1 三角形继承类 (4)5.3.2 抽象类与接口 (5)5.3.3 画出小车 (5)5.4. 设计图 (6)5.4.1 三角形类UML设计图 (6)5.4.2.1 Colorable接口UML设计图 (7)5.4.2.2 CompareTo与Clone接口UML设计图 (8)5.4.3 小车UML设计图 (9)5.5 仿真结果 (9)5.5.1构建继承类 (9)5.5.2抽象类和接口的使用 (9)5.5.3 事件驱动程序 (10)5.6 调试心得 (10)5.6.1 错误分析 (10)5.6.2 心得与收获 (10)一、实验目的通过使用JA V A语言进行基本程序的开发,掌握JA V A通用IDE,练习类的封装使用、JA V A基本类库的使用、利用UML进行简单建模。

二、实验内容2.1 构建一个继承类。

2.2 抽象类和接口的使用2.3 图像类编程和事件驱动程序。

三、实验环境Eclipse、Win 8.1四、实验结果4.1构建继承类输出了三角形的三边长,面积,周长。

4.2抽象类和接口的使用4.2.1执行Colorable接口,输出了一条how to color的信息4.2.2执行Comparable 和Cloneable接口,输出了创建的五边形和克隆五边形的周长和面机的信息。

江苏大学计算机图形学第二次实验报告曲线拟合

江苏大学计算机图形学第二次实验报告曲线拟合

江苏大学-计算机图形学第二次实验报告-曲线拟合————————————————————————————————作者: ————————————————————————————————日期:ﻩ计算机科学与通信工程学院实验报告课程计算机图形学实验题目实验二:曲线拟合学生姓名学号专业班级指导教师日期ﻬ成绩评定表评价内容具体内容权重得分论证分析方案论证与综合分析的正确、合理性20%算法设计算法描述的正确性与可读性20%编码实现源代码正确性与可读性30%程序书写规范标识符定义规范,程序书写风格规范20%报告质量报告清晰,提交准时10%总分指导教师签名1. 实验内容1. 绘制三次Bezier曲线(1)给定四个已知点P1—P4,以此作为控制顶点绘制一段三次Bezier曲线。

(2)给定四个已知点P1—P4,以此作为曲线上的点绘制一段三次Bezier曲线。

2.绘制三次B样条曲线给定六个已知点P1—P6,以此作为控制顶点绘制一条三次B样条曲线。

2.实验环境Windows xpVs 20083. 问题分析Bezier曲线通过一组多边折线的各顶点唯一的定义出来。

在多边折线的各顶点中,只有第一点和最后一点在曲线上,其余的顶点则用来定义曲线的导数,阶次和形状。

三次Bezieer曲线经过首、末两个控制点,且与特征多边形的首、末两条边相切。

因此在给定四个控制点的情况下,可以根据线性贝塞尔曲线描述的中介点 Q0、Q1、Q2,和由二次曲线描述的点 R0、R1 所建构。

也可以在给定四个线上点的情况下根据公式计算出曲线。

总之,只要获得了四个控制点的坐标,便可以通过编程来绘制出曲线。

对于给出了四个曲线上点的曲线,由于控制点的坐标位于曲线上,而且在相交处两曲线的切平面重合,曲率相等。

可以据此来绘制图形。

B 样条曲线是Bezier 曲线的拓广,它是用B 样条基函数代替了Bezier 曲线表达式中的Bernst ain 基函数。

在空间给定n+1个点的位置向量Pi (i=0,1,2,……n, n>=k),则称参数曲线,0()()ni i k i Q t t N P ==∑ (0≤t≤1)为k 阶(或k-1次)的B 样条曲线。

第二次实验报告心得

第二次实验报告心得

第二次实验报告心得前言本次实验是第二次实验,我们小组研究的主题是XXX。

通过这次实验,我们掌握了XXX的基本原理和实验操作方法。

在实验过程中,我们遇到了挑战和问题,但也取得了进步和收获。

实验过程与成果我们小组在实验前制定了详细的实验计划并分工合作。

首先,我们对XXX进行了深入的了解和学习,并通过查阅大量的文献和资料来提高对该主题的理解和认识。

在熟悉了实验内容和操作流程后,我们进行了实验的准备工作,包括搭建实验装置、调试仪器设备等。

在实验过程中,我们认真操作,严格遵守实验操作规范,确保了实验的安全性和准确性。

我们按照实验计划逐步进行实验并记录下实验数据和现象。

同时,我们也积极讨论和交流,共同解决实验中遇到的问题和困难。

通过实验,我们获得了大量的实验数据和结果。

我们对实验数据进行了仔细的整理和分析,并进行了合理的处理和计算。

最终,我们得到了一系列有关XXX的重要结论和发现。

实验收获与成长本次实验让我们获得了许多宝贵的经验和知识,也让我们在实践中得到了成长。

首先,通过实验过程,我们掌握了XXX的基本原理和实验方法。

我们深入研究了相关的理论知识,并将其运用到实际操作中。

我们通过实验实践,进一步加深了对XXX的理解,加强了对实验方法的掌握。

其次,通过团队合作,我们学会了有效地协作和沟通。

在实验过程中,我们互相帮助、共同解决问题,并且共同分工合作,提高了实验效率和质量。

我们在团队中形成良好的合作氛围,培养了团队意识和合作能力。

最后,通过实验报告的撰写,我们学会了对实验数据进行整理和分析,并将实验结果清晰准确地表达出来。

这锻炼了我们的科学思维和表达能力,提高了我们的写作水平。

反思与改进在实验中,我们也面临了一些挑战和问题。

通过实验的反思和总结,我们认识到了不足之处,并提出了一些改进的建议。

首先,我们在实验前准备方面需要更加细致和仔细。

在本次实验中,我们发现有些仪器设备的调试工作并没有充分准备,导致实验过程中出现了一些意外情况。

2022年北工大数据结构第二次上机中缀转后缀实验报告

2022年北工大数据结构第二次上机中缀转后缀实验报告

北京工业大学- 第学期信息学部计算机学院3月31日报告题目:输入中缀体现式,输出后缀体现式,并对体现式求值A.分析中缀体现式旳运算顺序受运算符优先级和括号旳影响。

因此,将中缀体现式转换成等价旳后缀体现式旳核心在于如何恰当旳去掉中缀体现式中旳括号,然后在必要时按照先乘除后加减旳优先规则调换运算符旳先后顺序。

在去括号旳过程中用栈来储存有关旳元素。

基本思路:从左至右顺序扫描中缀体现式,用栈来寄存体现式中旳操作数,开括号,以及在这个开括号背面旳其她临时不能拟定计算顺序旳内容。

(1)当输入旳是操作数时,直接输出到后缀体现式(2)当遇到开括号时,将其入栈(3)当输入遇到闭括号时,先判断栈与否为空,若为空,则表达括号不匹配,应作为错误异常解决,清栈退出。

若非空,则把栈中元素依次弹出,直到遇到第一种开括号为止,将弹出旳元素输出到后缀体现式序列中。

由于后缀体现式不需要括号,因此弹出旳括号不放到输出序列中,若没有遇到开括号,阐明括号不匹配,做异常解决,清栈退出。

(4)当输入为运算符时(四则运算+ - * / 之一)时:a.循环,当(栈非空&&栈顶不是开括号&&栈顶运算符旳优先级不低于输入旳运算符旳优先级)时,反复操作将栈顶元素弹出,放到后缀体现式中。

b.将输入旳运算符压入栈中。

(5)最后,当中缀体现式旳符号所有扫描完毕时,若栈内仍有元素,则将其所有依次弹出,放在后缀体现式序列旳尾部。

若在弹出旳元素中遇到开括号,则阐明括号不匹配,做异常解决,清栈退出。

B.实现#include<stdio.h>#include<string.h>#include<stdlib.h>#include<stack>using namespace std;#define N 1000char infix[N]; //中缀体现式(未分离,都在一种字符串里)char expression[N][10]; //保存预解决过旳体现式,也就是每个元素都分离过旳体现式char suffix[N][10]; //保存后缀体现式旳操作数int count;//体现式中元素旳个数(一种完整到数字(也许不止一位数)或者符号)int suffixLength;//后缀体现式旳长度int level(char a){switch(a){case '#':return 0;case '+':case '-':return 1;case '*':case '/':return 2;case '^':return 3;default:break;}return -1;}int isDigital(char x){if( (x>='0'&&x<='9') || (x>='A'&&x<='Z') || (x>='a'&&x<='z') || (x=='.') )return 1;return 0;}int isNumber(char *str){int i;for(i=0;str[i];i++){if(isDigital(str[i])==0)return 0;}return 1;}/*************************************预解决中缀体现式,把持续旳字符分离成不同旳元素,用字符串数组(expression[][])保存,以便背面旳计算,由于这里考虑了运算数也许不全是个位数例如:(12+3)在解决成后缀体现式时,是123+,容易产生歧义(1+23 ? 12+3)*************************************/void pretreatment(char *str){int i,j,numberFlag;char temp[3];char number[10];count=0;numberFlag=0;for(j=0,i=0;str[i];i++){if(isDigital(str[i])==0){if(numberFlag==1){number[j]=0;strcpy(expression[count++],number); j=0;numberFlag=0;}if(str[i]!=' '){temp[0]=str[i];temp[1]=0;strcpy(expression[count++],temp); }}else {numberFlag=1;number[j++]=str[i];}}puts("分离后旳体现式为");for(i=0;i<count;i++){printf("%s ",expression[i]);}puts("");puts("");}/*****************************************中缀体现式转后缀体现式遍历字符串,对于str[i]str[i]是运算数(或者是字母替代旳运算变量)输出;str[i]是符号,有两种状况(1),是右括号,栈顶元素输出,直到与str[i]匹配旳左括号出栈(左括号不用输出打印)(2),是运算符,判断str[i]与栈顶元素旳优先级,str[i]优先级不高于栈顶符号,则栈顶元素输出,直到栈空或者栈顶符号优先级低于str[i]*****************************************/void infix_to_suffix(char str[N][10]){memset(suffix,0,sizeof(suffix));suffixLength=0;stack <char*> st;int i=0;char Mark[2]="#";st.push(Mark);do{if(isNumber(str[i])==1)//运算数直接保存到后缀体现式中strcpy(suffix[suffixLength++],str[i]);else if(str[i][0]=='(') //是左括号,直接入栈st.push(str[i]);else if(str[i][0]==')'){ //是右括号,栈顶出栈,直到与其匹配旳左括号出栈while( strcmp(st.top(),"(")!=0 ){char temp[10];strcpy(temp,st.top());strcpy(suffix[suffixLength++],temp);st.pop();}st.pop();}else if( strcmp(st.top(),"(")==0 )//是运算符,且栈顶是左括号,则该运算符直接入栈st.push(str[i]);else { //是运算符,且栈顶元素优先级不不不小于运算符,则栈顶元素始终//出栈,直到栈空或者遇到一种优先级低于该运算符旳元素while( !st.empty() ){char temp[10];strcpy(temp,st.top());if( level(str[i][0]) > level(temp[0]) )break;strcpy(suffix[suffixLength++],temp);st.pop();}st.push(str[i]);}i++;}while(str[i][0]!=0);while( strcmp(st.top(),"#")!=0 ){ //将栈取空结束char temp[10];strcpy(temp,st.top());strcpy(suffix[suffixLength++],temp);st.pop();}puts("后缀体现式为:");for(i=0;i<suffixLength;i++){printf("%s",suffix[i]);}puts("");puts("");}/**************************************计算后缀体现式旳值**************************************/char kt[N][10];int stackTop;void getResult(char str[N][10]){stackTop=0;/*这里要注意,内存旳分派方案导致 i 旳位置就在temp[9]旁边,然后strcpy()函数直接拷贝内存旳话,在temp越界状况下会覆盖 i 旳值*/int i;char temp[10];for(i=0;i<suffixLength;i++){if(isNumber(str[i])==1){strcpy(kt[stackTop++],str[i]);}else {char a[10],b[10];double na,nb,nc;strcpy(a,kt[stackTop-1]);na = atof(a);stackTop--;strcpy(b,kt[stackTop-1]);nb = atof(b);stackTop--;if(str[i][0]=='+')nc=nb+na;else if(str[i][0]=='-')nc=nb-na;else if(str[i][0]=='*')nc=nb*na;else if(str[i][0]=='/')nc=nb/na;sprintf(temp,"%lf",nc);strcpy(kt[stackTop++],temp);}}puts("\nThe result is : %f\n");printf("%s\n",kt[stackTop-1]);}int main(){printf("Please input calculate Expression :\n"); char temp[N];while(gets(infix)){strcpy(temp,infix);pretreatment( strcat(temp," ") );infix_to_suffix(expression);getResult(suffix);}return 0;}C.总结实验需要细心细心再细心。

东南大学模拟电路实验报告(二)

东南大学模拟电路实验报告(二)
RL=1kΩImax≤12.7mA
c)当R1=1 kΩ、RL为1 kΩ,输入电压Vi为0.5V、1V和3V时,计算负载电阻RL的取值范围。
Vi=0.5VRl≤27 KΩ
Vi=1VRl≤13 KΩ
Vi=3VRl≤3.7 KΩ
4、设运算放大器为双电源供电,最大输出电压为±VOM,试根据精密全波整流电路的原理,推导图10-2的传输特性曲线,写出推导过程并画出传输特性曲线。
答:当输入Vi>0时,二极管D1导通,D2截止,故V0l=Vn=Vi,运放A2为差分输入放大器,由叠加原理知V0=-2R/2R*Vi=-vi+2*vi=vi。当输入Vi<0时,二极管D2导通,D1截止,此时,运放A1为同相比例放大器,V0l=vi(1+R/R)=2Vi,同样由叠加原理可得运放A2的输出为V0=V0l(-2R/R)+Vi(1+2R/R)=-Vi,故最后可将输出电压表示为
三、预习思考题
1、根据29页实验内容1的指标要求设计电路并确定元件参数。
a)设计原理图
b)设计过程
选取R1=1 kΩ,C=1uF,R3=100kΩ,R2=1kΩ,R4=10kΩ。
2、在积分器实验中,若信号源提供不出平均值为零的方波,能否通过耦合电容隔直流?若能的话,电容量怎样取?
答:可以,选取较大的电容,电容通交流阻直流,可阻碍其直流成分
11mV
7.05V
1V
1.48V
-1.42V
100Hz
20mV
1.42V
10mV
15.2mV
-16.0mV
100Hz
0.6mV
16.8mV
1.精密半波整流输入、输出波形图——有效值为5V
2.精密半波整流输入、输出波形图——有效值为1V

MCU第二次实验报告

MCU第二次实验报告

实验名称:I/O接口实验与LED显示实验目录一.实验目的和要求 (3)二.实验原理 (3)三.实验方案与实验步骤 (5)四.实验设备与器材 (7)五.实验记录 (7)六.实验总结 (7)七.源代码 (7)一.实验目的与要求(一)实验目的1、I/O接口实验了解单片机各个口的输出,以及延时程序的计算;2、L ED显示实验,了解数码管显示机理,学会片外编码。

(二)实验要求1、I/O接口实验利用实验板I/O口(例如P0口)控制8个LED循环显示,循环点亮时间间隔约为1秒(采用软件延时实现)。

2、LED显示实验要求在8个LED数码管显示8个指定的数(例如学号后8位)。

本实验不需要接线。

二.实验原理1、I/O接口实验图2-1 上排LED指示灯(与FPGA相连)原理图图2-2 下排LED指示灯(通过CPLD译码与CPU相连)原理图主板左下方有16个LED指示灯,其中上面8个LED指示灯FLED0~FLED7输入直接与FPGA 插座引脚相连,可由FPGA模块输出引脚直接驱动,电路如图2-1所示,输入高电平时相应指示灯被点亮(这里实验箱开机复位后默认是点亮的)。

下面一排的8个LED指示灯LED0~LED7输入与CPU总线相连,作为系统扩展接口,其地址选通(0F600H)由CPLD地址译码控制,电路如图2-2所示,输入低电平时相应指示灯被点亮。

本实验采用的是上面一排与FPGA 相连的LED,需要8根导线将I/O口与相应的LED连接。

2、LED显示实验如图所示:实验装置上设有8只共阳极七段数码管及驱动电路,8只数码管共数据线,通过片选可以分别显示。

段码表为:表2-1 数码管段码表编程提示:数码管模块具有两个地址:片选地址(位控地址)0F400H和数据(段码)地址0F300H,要在某个数码管上显示1个数,需要先向片选地址上送一个数选中其中一个数码管,再向数据地址送要显示的数据的段码值,这就是位控和段控。

数码管的I/O地址都为片外地址。

浙江大学 电磁场与电磁波实验(第二次)

浙江大学 电磁场与电磁波实验(第二次)

本科实验报告课程名称:电磁场与微波实验姓名:wzh学院:信息与电子工程学院专业:信息工程学号:xxxxxxxx指导教师:王子立选课时间:星期二9-10节2017年 6月 17日CopyrightAs one member of Information Science and Electronic Engineering Institute of Zhejiang University, I sincerely hope this will enable you to acquire more time to do whatever you like instead of struggling on useless homework. All the content you can use as you like. I wish you will have a meaningful journey on your college life.——W z h实验报告课程名称:电磁场与微波实验指导老师:王子立成绩:__________________ 实验名称: CST仿真、喇叭天线辐射特性测量实验类型:仿真和测量同组学生姓名:矩形波导馈电角锥喇叭天线CST仿真一、实验目的和要求1. 了解矩形波导馈电角锥喇叭天线理论分析与增益理论值基本原理。

2.熟悉 CST 软件的基本使用方法。

3.利用 CST 软件进行矩形波导馈电角锥喇叭天线设计和仿真。

二、实验内容和原理1. 喇叭天线概述喇叭天线是一种应用广泛的微波天线,其优点是结构简单、频带宽、功率容量大、调整与使用方便。

合理的选择喇叭尺寸,可以取得良好的辐射特性:相当尖锐的主瓣,较小副瓣和较高的增益。

因此喇叭天线在军事和民用上应用都非常广泛,是一种常见的测试用天线。

喇叭天线的基本形式是把矩形波导和圆波导的开口面逐渐扩展而形成的,由于是波导开口面的逐渐扩大,改善了波导与自由空间的匹配,使得波导中的反射系数小,即波导中传输的绝大部分能量由喇叭辐射出去,反射的能量很小。

西北工业大学_计算机系统基础_实验报告_第2次

西北工业大学_计算机系统基础_实验报告_第2次

计算机系统基础实验课第二次实验报告对二进制炸弹求解过程的详细描述首先使用objdump命令对bomb程序进行反汇编,并将汇编代码输出到asm.txt中。

阶段一、字符串比较打开asm.txt文件,搜索到phase_1函数,可以看到以下代码。

08048b33 <phase_1>:8048b33: 83 ec 14 sub $0x14,%esp8048b36: 68 7c a0 04 08 push $0x804a07c8048b3b: ff 74 24 1c pushl 0x1c(%esp)8048b3f: e8 3e 05 00 00 call 8049082 <strings_not_equal>8048b44: 83 c4 10 add $0x10,%esp8048b47: 85 c0 test %eax,%eax8048b49: 74 05 je 8048b50 <phase_1+0x1d>8048b4b: e8 29 06 00 00 call 8049179 <explode_bomb>8048b50: 83 c4 0c add $0xc,%esp8048b53: c3 ret可以看出,用户输入字串指针保存在0x1c(%esp),然后调用<strings_not_equal>,待<strings_not_equal>返回后,测试返回值,若equal则进入下一phase,否则<explode_bomb>,从<strings_not_equal>可知该函数用于比较两函数的值,因此需要两个字串作为输入,上面代码中, pushl 0x1c(%esp)用于传递用户字串指针,则push $0x804a07c自然是传递比较字串的指针了。

打开gdb,x/s 0x80497c0, 可以直接查看到该指针指向的子符串:所以第一个炸弹的拆弹指令为:I turned the moon into something I call a Death Star.阶段二、循环在asm.txt文件中可以找到phase_2函数代码如下:08048b54 <phase_2>:8048b54: 56 push %esi8048b55: 53 push %ebx8048b56: 83 ec 2c sub $0x2c,%esp8048b59: 65 a1 14 00 00 00 mov %gs:0x14,%eax8048b5f: 89 44 24 24 mov %eax,0x24(%esp)8048b63: 31 c0 xor %eax,%eax8048b65: 8d 44 24 0c lea 0xc(%esp),%eax8048b69: 50 push %eax8048b6a: ff 74 24 3c pushl 0x3c(%esp)8048b6e: e8 2b 06 00 00 call 804919e <read_six_numbers>8048b73: 83 c4 10 add $0x10,%esp8048b76: 83 7c 24 04 01 cmpl $0x1,0x4(%esp)8048b7b: 74 05 je 8048b82 <phase_2+0x2e>8048b7d: e8 f7 05 00 00 call 8049179 <explode_bomb>8048b82: 8d 5c 24 04 lea 0x4(%esp),%ebx8048b86: 8d 74 24 18 lea 0x18(%esp),%esi8048b8a: 8b 03 mov (%ebx),%eax8048b8c: 01 c0 add %eax,%eax8048b8e: 39 43 04 cmp %eax,0x4(%ebx)8048b91: 74 05 je 8048b98 <phase_2+0x44>8048b93: e8 e1 05 00 00 call 8049179 <explode_bomb>8048b98: 83 c3 04 add $0x4,%ebx8048b9b: 39 f3 cmp %esi,%ebx8048b9d: 75 eb jne 8048b8a <phase_2+0x36>8048b9f: 8b 44 24 1c mov 0x1c(%esp),%eax8048ba3: 65 33 05 14 00 00 00 xor %gs:0x14,%eax8048baa: 74 05 je 8048bb1 <phase_2+0x5d>8048bac: e8 df fb ff ff call 8048790 <__stack_chk_fail@plt>8048bb1: 83 c4 24 add $0x24,%esp8048bb4: 5b pop %ebx8048bb5: 5e pop %esi8048bb6: c3 ret根据call 804919e <read_six_numbers>可以推测题目要求是输入六个数字。

matlab数学实验报告

matlab数学实验报告

MATLAB数学实验报告指导老师:班级:小组成员:时间:201_/_/_Matlab第二次实验报告小组成员:1题目:实验四;MATLAB选择结构与应用实验目的:掌握if选择结构与程序流程控制;重点掌握break;return;pause语句的应用..问题:问题1:验证“哥德巴赫猜想”;即:任何一个正偶数n>=6均可表示为两个质数的和..要求编制一个函数程序;输入一个正偶数;返回两个质数的和..问题分析:由用户输入一个大于6的偶数;由input语句实现..由if判断语句判断是否输入的数据符合条件..再引用质数判断函数来找出两个质数;再向屏幕输出两个质数即可..编程:function z1;z2=geden;n=input'please input n'if n<6disp'data error';returnendif modn;2==0for i=2:n/2k=0;for j=2:sqrtiif modi;j==0k=k+1;endendfor j=2:sqrtn-iif modn-i;j==0k=k+1;endendif k==0fprintf'two numbers are'fprintf'%.0f;%.0f';i;n-ibreakendendend结果分析:如上图;用户输入了大于6的偶数返回两个质数5和31;通过不断试验;即可验证哥德巴赫猜想..纪录:if判断语句与for循环语句联合嵌套使用可使程序结构更加明晰;更快的解决问题..2题目:实验四;MATLAB选择结构与应用实验目的:用matlab联系生活实际;解决一些生活中常见的实际问题..问题:问题四:在一边长为1的四个顶点上各站有一个人;他们同时开始以等速顺时针沿跑道追逐下一人;在追击过程中;每个人时刻对准目标;试模拟追击路线;并讨论.. (1)四个人能否追到一起(2)若能追到一起;每个人跑过多少路程(3)追到一起所需要的时间设速率为1问题分析:由正方形的几何对称性和四个人运动的对称性可知;只需研究2个人的运动即可解决此问题..编程:hold onaxis0 1 0 1;a=0;0;b=0;1;k=0;dt=0.001;v=1;while k<10000d=norma-b;k=k+1;plota1;a2;'r.';'markersize';15;plotb1;b2;'b.';'markersize';15;fprintf'k=%.0f b%.3f;%.3f a%.3f;%.3f d=%.3f\n';k;b1;b2;a1;a2;da=a+b1-a1/d*dt;b2-a2/d*dt;b=b+b2-a2/d*dt;-b1-a1/d*dt;if d<=0.001breakendendfprintf'每个人所走的路程为:%.3f';k*v*dtfprintf'追到一起所需要的时间为%.3f';k*dt结果分析:上图为2人的模拟运动路线;有对称性可解决所提问题..-上图为运算过程和运算结果..四个人可以追到一起;走过的路程为1.003;时间也为1.003.纪录:此题利用正方形和运动的对称性可以简便运算..3题目:实验八;河流流量估计与数据插值目的:由一些测量数据经过计算处理;解决一些生活实际问题..问题:实验八上机练习题第三题:瑞士地图如图所示;为了算出他的国土面积;做以下测量;由西向东为x轴;由南向北为y轴;从西边界点到东边界点划分为若干区域;测出每个分点的南北边界点y1和y2;得到以下数据mm..已知比例尺1:2222;计算瑞士国土面积;精确值为41288平方公里..测量数据如下:x=7.0 10.5 13.0 17.5 34 40.5 44.5 48 56 61 68.5 76.5 80.5 91 96 101 104 106 111.5 118 123.5 136.5 142 146 150 157 158 ;y1=44 45 47 50 50 38 30 30 34 36 34 41 45 46 43 37 33 28 32 65 55 54 52 50 66 66 68;y2=44 59 70 72 93 100 110 110 110 117 118 116 118 118 121 124 121 121 121 122 116 83 81 82 86 85 68;问题分析:先由题目给定的数据作出瑞士地图的草图;再根据梯形法;使用trapz语句;来估算瑞士国土的面积..编程:x=7.0 10.5 13.0 17.5 34 40.5 44.5 48 56 61 68.5 76.5 80.5 91 96 101 104 106 111.5 118 123.5 136.5 142 146 150 157 158;y1=44 45 47 50 50 38 30 30 34 36 34 41 45 46 43 37 33 28 32 65 55 54 52 50 66 66 68;y2=44 59 70 72 93 100 110 110 110 117 118 116 118 118 121 124 121 121 121 122 116 83 81 82 86 85 68;plotx;y1;'r.';'markersize';15;plotx;y2;'r.';'markersize';15;axis0 160 0 135grid;hold ont=7:158;u1=splinex;y1;t;u2=splinex;y2;t;plott;u1plott;u2s1=trapzt;u1;s2=trapzt;u2;s=s2-s1*2222*22222/10000000;fprintf'S=%.0f';s结果分析:上图为由所给数据绘制出的瑞士地图..上图为运算结果;计算出瑞士的国土面积为42472平方公里;与准确值41288较为接近..纪录:使用梯形分割的方法;trapz语句可以方便计算不规则图形面积;但存在一定误差..4题目:实验七:圆周率的计算与数值积分目的:将数值积分最基本的原理应用于matlab之中;解决一些与积分有关的问题..问题:实验七上机练习题第一题:排洪量某河床的横断面如图7.3所示;为了计算最大排洪量;需要计算其断面积;试根据所给数据m用梯形法计算其断面积..问题分析:河床断面可近似分割成若干曲边梯形;近似处理把它们当做梯形来计算面积可使问题得到简化..编程:clc;clear;x=0 4 10 12 15 22 28 34 40;y=0 1 3 6 8 9 5 3 0;y1=10-y;plotx;y1;'k.';'markersize';15;axis0 40 0 10;grid;hold ont=0:40;u=splinex;y1;t;plott;u;s=40*10-trapzt;u;fprintf's=%.2f\n';s结果分析:上图为河床的断面图..上图为计算结果面积约为180.70平方米..纪录:使用梯形法计算不规则图形面积十分简便易行..5题目:实验七:圆周率的计算与数值积分目的:使用matlab计算解决一些有关积分的问题..问题:实验七上机练习题第三题:从地面发射一枚火箭;在最初100秒内记录其加速度如下;试求火箭在100秒时的速度..Ts=0 10 20 30 40 50 60 70 80 90 100;Am/s*s=30.00 31.63 33.44 35.47 37.75 40.33 43.29 46.69 50.67 54.01 57.23;问题分析:加速度为速度的微分;已知微分求积分;类似于面积问题;可使用梯形法来计算..编程:clc;clear;x=0 10 20 30 40 50 60 70 80 90 100;y=30.00 31.63 33.44 35.47 37.75 40.33 43.29 46.69 50.6754.01 57.23;plotx;y;'k.';'markersize';15;axis0 100 20 60;grid;hold ons=0:10:100;z=splinex;y;s;plots;y;v=trapzx;y;fprintf'v=%.2f\n';v结果分析:上图为加速度变化图..上图为计算结果;求得火箭在100秒时速度约为4168.95m/s..纪录:梯形法可以推广解决许多已知微分求积分的其他问题..6题目:实验七:圆周率的计算与数值积分目的:计算曲线弧长闭曲线周长可使用微元法;ds=sqrtdx^2+dy^2;在转化微积分问题;累加即可得到结果..问题:实验七上机练习题第三题:计算椭圆想x^2/4+y^2=1的周长;使结果具有五位有效数字..问题分析:编程:s=0;dx=0.001;for x=0:0.001:1.999dy=1.-x+0.001.^2/4-1.-x.^2/4;ds=sqrtdx.^2+dy.^2;s=s+ds;ends=4*s;fprintf'the length is'fprintf'%.4f';s结果分析:上图为计算结果;给定椭圆的周长约为9.1823五位有效数字纪录:计算不规则曲线弧长;可使用微元法;划分为若干小的看做直角三角形;利用勾股定理解决..7题目:实验九人口预测与数据拟合目的:掌握一些曲线拟合的方法;了解曲线拟合常用函数..问题:用电压U=10v的电池给电容器充电;t时刻的电压Vt=U-U-V0exp-t/τ;其中V0是电容器的初始电压;τ是充电常数;由所给数据确定V0和τ..t=0.5 1 2 3 4 5 7 9;V=3.64 3.52 2.74 1.78 1.34 1.01 0.57 0.37;问题分析:题中已给出函数关系式;为指数函数曲线拟合;将所给函数式整理可得标准的exp形函数曲线;从而便于解决..编程:t=0.5 1 2 3 4 5 7 9;V=3.64 3.52 2.74 1.78 1.34 1.01 0.57 0.37;plott;V;'k.';'markersize';20;axis0 10 0 4;grid;hold onpause0.5n=8;a=sumt1:n;b=sumt1:n.*t1:n;c=sumlogV1:n;d=sumt1:n.*logV1:n;A=n a;a b;B=c;d;p=invA*Bx=0:10;y=expp1+p2*x;plotx;y;'r-';'linewidth';2结果分析:上图为电压与时间关系图..上图为计算结果;即U-V0=1.4766;所以V0=8.5234;-1/τ=-0.2835;所以τ=3.5273纪录:曲线拟合的一个重难点是选择合适的曲线函数;才能提高拟合度..8题目:实验七圆周率的计算与数值积分目的:拓展圆周率的各种计算方法;掌握其他数值的近似计算方法..问题:实验七练习2:计算ln2的近似值精确到10的-5次方(1)利用级数展开的方法来计算(2)利用梯形法计算(3)利用抛物线法问题分析:级数展开;梯形法;抛物线法是常见的近似运算方法..编程:1级数展开的方法clc;clear;n=0;r=1;p=0;k=-1;while r>=0.1e-5n=n+1;k=k*-1;p1=p+k/n;r=absp1-p;fprintf'n=%.0f;p=%.10f\n';n;p1;p=p1;end2梯形法clc;clear;f=inline'1./x';x=1:0.1:2;y=fx;p=trapzx;y;fprintf'p=%.6f\n';p3抛物线法clc;clear;f=inline'1./x';a=1;b=2;n=1;z=quadf;a;b;fprintf'z=%.10f\n';z结果分析:(1)级数展开的方法(2)梯形法3抛物线法纪录:级数展开法;梯形法;抛物线法;计算近似值时应合理利用..梯形法和抛物线法不易提高精确度;级数展开法可以提高精确度..9题目:实验八河流流量估计与数据插值目的:掌握求插值多项式的方法;并利用此计算近似值..问题:已知y=fx的函数表如下x=0.40 0.55 0.65 0.80 0.90 1.05;y=0.41075 0.57815 0.69675 0.88811 1.02652 1.25382;求四次拉格朗日插值多项式;并由此求f0.596问题分析:利用所给函数表可计算拉格朗日插值多项式..编程:function p=lagrangex;yL=lengthx;a=onesL;for j=2:La:;j=a:;j-1.*x';endx=inva*y';for i=1:Lpi=xL-i+1;endx=0.40 0.55 0.65 0.80 0.90 1.05;y=0.41075 0.57815 0.69675 0.88811 1.02652 1.25382; plotx;y;'k.';'markersize';15axis0 2 0 2grid;hold on;p=lagrangex;y;t=0:0.1:1.5;u=polyvalp;t;plott;u;'r-'a=polyvalp;0.596结果分析:上图为所求结果;估算值和插值多项式..纪录:插值多项式是一项十分实用的方法..10题目:求正整数n的阶乘:p=1*2*3*…*n=n;并求出n=20时的结果目的:练习使用循环变量解决数学问题问题:对程序:Clear;clc;n=20;p=1;for i=1:np=p*i;fprintf’i=%.0f;p=%.0f\n’;i;pend进行修改使它:利用input命令对n惊醒赋值问题分析:题中给出程序中“n=20”修改;使用input命令;讲题中的输出命令放出循环之外..编程:clear;clc;n=input'n=';p=1;for i=1:np=p*i;endfprintf'i=%.0f;p=%.0f\n';i;p结果:n=20i=20;p=2432902008176640000>>结果分析:使用input命令可以实现人机对话;使用户自由赋值;输出语句在程序中的位置对输出的结果有很大的影响;在循环内部可以在计算过城中不断输出结果;在循环之外则可以控制只输出最后结果..11题目:对于数列{√2};n=1;2;…;求当其前n项和不超过1000时的n的值及合的大小..目的:运用条件循环解决文帝个项数的循环程序求解;问题:对程序:clear;clc;n=0;s=0;while s<=1000n=n+1;s=s+sqrtn;fprintf’n=%.0f;s=%.4f\n’;n;send问题分析:题中所给程序中的限制变量为上次循环之后的s;导致s超过上限后仍有一次的循环;若把循环变量改为这次的s;则可以避免这种情况的发生..编程:clear;clc;n=0;s=0;while s+sqrtn<=1000n=n+1;s=s+sqrtnfprintf'n=%.0f;s=%.4f\n';n;send结果:……s =970.8891n=128;s=970.8891s =982.2469n=129;s=982.2469s =993.6487n=130;s=993.6487>>结果分析:从结果中可以看出;最后一步为我们需要的答案;从这道题我们可以得出循环变量对一道编程的重要性..。

第二次实验报告

第二次实验报告

表面粗糙度的测量一、实验目的(1)了解表面粗糙度的测量原理、常用方法以及需要测定的参量(2)学习掌握TIME3202粗糙仪的使用方法(3)加深对粗糙度Ra、Rz、Ry的理解二、实验设备TIME3202粗糙测试仪、表面粗糙度样板三、实验内容(1)、用表面粗糙度样板对12个6种加工方法的工件进行比较。

确定Ra、加工方法,记录试件号、Ra、加工方法、试件盒号。

(2)、用TIME3202粗糙仪测量待测试件的表面相关的参数(3)使用TIME3202粗糙度计检测工件表面的粗糙度值,传输进入计算机软件,绘制成为精确地曲线。

四、实验结果(1)比较法:将被测表面直接与表面粗糙度样板(图一)直接进行比较,前提是两者的加工方法和材料应该尽可能相同,否则将产生较大的误差。

可以用眼或者放大镜比较,也可用手摸,用指甲划动的感觉来判断被测表面的粗糙度,但是用于比较粗糙度的样板不能用手直接触摸,防止生锈——这种方法用于车间或者Ra值比较,这个比较的准确性很大程度上取决于检验人员的经验。

图一如图二所示为测量的结果图二(2)TIME3202粗糙仪测量——测量原理:测量表面粗糙度是,将传感器放在工件被测表面上,由仪器内部的驱动机构带动传感器沿被测表面做等速滑行,传感器通过内置的锐利触针感受被测表面的粗糙度,此时工件被测表面的粗糙度电感线圈的电感量发生变化,从而在相敏整流器的输出端产生与被测表面粗糙度成比例的模拟信号,该信号经过放大及电平转换之后进入数据采集系统,DSP芯片将采集的数据进行数字滤波和参数计算,测量结果在液晶显示器上读出,可以存储,也可以在打印机上输出,还可以与PC机进行通讯。

测量结果如图三图三工件材料:碳化硅;加工方法:电火花可测量多种机加工零件的表面粗糙度,根据选定的测量条件计算相应的参数,在液晶显示器上清晰地显示出全部测量参数和轮廓图形。

下面介绍一下该粗糙度仪的各部分名称:TS100传感器结构图控制面板图操作步骤:五、注意事项(1)实验时要戴上干净的白手套(2)试件不要随意乱放,要从固定的盒中取出(3)操作粗糙度测量仪时控制好下降的速度(4)不要用手触摸测量头六、其他表面粗糙度测量方法(1)AFM的工作原理如图所示。

西北工业大学-数字电子技术基础-实验报告-实验2

西北工业大学-数字电子技术基础-实验报告-实验2

西北⼯业⼤学-数字电⼦技术基础-实验报告-实验2数字电⼦技术基础第⼆次实验报告⼀、题⽬代码以及波形分析1. 设计⼀款可综合的2选1多路选择器①编写模块源码module multiplexer(x1,x2,s,f);input x1,x2,s;output f;assign f=(~s&x1)|(s&x2);endmodule②测试模块`timescale 1ns/1psmodule tb_multiplexer;reg x1_test;reg x2_test;reg s_test;wire f_test;initials_test=0;always #80 s_test=~s_test;initialbeginx1_test=0;x2_test=0;#20x1_test=1;x2_test=0;#20x1_test=0;x2_test=1;#20x1_test=1;x2_test=1;#20x1_test=0;x2_test=0;#20x1_test=1;x2_test=0;#20x1_test=0;x2_test=1;#20x1_test=1;x2_test=1;endmultiplexer UUT_multiplexer(.x1(x1_test),.x2(x2_test),.s(s_test),.f(f_test));endmodule③仿真后的波形截图④对波形的分析本例⽬的是令s为控制信号,实现⼆选⼀多路选择器。

分析波形图可以知道,s为0时,f 输出x1信号;s为1时,f输出x2信号。

所以实现了⽬标功能。

2. 设计⼀款可综合的2-4译码器①编写模块源码module dec2to4(W,En,Y);input [1:0]W;input En;output reg [0:3]Y;always@(W,En)case({En,W})3'b100:Y=4'b1000;3'b101:Y=4'b0100;3'b110:Y=4'b0010;3'b111:Y=4'b0001;default:Y=4'b0000;endcaseendmodule②测试模块`timescale 1ns/1psmodule tb_dec2to4;reg [1:0]W_test;reg En_test;wire [0:3]Y_test;initialEn_test=0;always #80 En_test=~En_test;initialbeginW_test=2'b00;#20W_test=2'b01;#20W_test=2'b11;#20W_test=2'b10;#20W_test=2'b00;#20W_test=2'b01;#20W_test=2'b11;#20W_test=2'b10;#20W_test=2'b00;enddec2to4 UUT_dec2to4(.W(W_test),.En(En_test),.Y(Y_test));endmodule③仿真后的波形截图④对波形的分析本例⽬的是实现可综合的2-4译码器,其中数组W是输⼊信号,共有两个值,输⼊⼀个两位⼆进制数据,⽬的是通过译码器将它转换成独热码,数组Y是输出信号,输出四个⼆进制数据,构成独热码。

人工智能实验报告-产生式系统推理-动物识别

人工智能实验报告-产生式系统推理-动物识别

人工智能第二次实验报告产生式系统推理班级:姓名:学号:一、实验目的1. 理解并掌握产生式系统的基本原理;2. 掌握产生式系统的组成部分,以及正向推理和逆向推理过程。

二、实验要求1. 结合课本内容, 以动物识别系统为例,实现小型产生式系统;2. 要求: 正向推理中能根据输入的初始事实,正确地识别所能识别的动物;逆向推理中能根据所给的动物给出动物的特征。

三、实验算法1. 如何表示事实和特征的知识;在本程序中,我将动物的特征写入data.txt,将规则记入rules.txt,将动物种类记为goal.txt。

通过函数void readFiles(){readGoal();readCod();readRule();}读入所有数据分别存放于goal[],rule[],cod[]自定义数组中。

2. 指出综合数据库和规则库分别使用哪些函数实现的?综合数据库(包括特征和目标)typedef struct{int xuh;//存放编号char valu[50];//存放具体内容}Node;Node goal[20];Node cod[50];规则库typedef struct{int rslt;int codNum;//记载前提的个数int cod[10];//记载前提的序号int used;//记载是否已匹配成功}Nrule;Nrule rule[50];void readRule(){FILE *fp;int i;int tempxuh,tempcodn;char ch;if((fp=fopen("rules.txt","r"))==NULL){printf("cannot open data\n");exit(0);}i=0;rule[i].codNum=0;while((ch=fgetc(fp))!=EOF){if(i==14)i=i;tempcodn=0;while(ch!='\n'&&ch!=EOF) //每一条规则{tempxuh=0;while(ch<='9'&&ch>='0'){tempxuh=tempxuh*10+ch-'0';ch=fgetc(fp);}rule[i].cod[tempcodn++]=tempxuh;tempxuh=0;if(ch=='-')//下一个是结论{ch=fgetc(fp);ch=fgetc(fp);while(ch<='9'&&ch>='0'){tempxuh=tempxuh*10+ch-'0';ch=fgetc(fp);}rule[i].rslt=tempxuh;}//ifelse if(ch=='*'){ch=fgetc(fp);}rule[i].codNum++;}i++;}rulenum=i;fclose(fp);}3. 规则库的匹配算法是什么?如何选用可用规则集中的规则?分别使用哪些函数实现的?程序中的正向与逆向搜索分别是在void main()中调用forwardFinger()和backFinger()来实现的。

Windows实验报告第二次实验

Windows实验报告第二次实验

Windows实验报告计算机科学与技术学院计112 1113022032 康照玲一、实验一1、题目:在一个窗口中央加载一个任意位图,位图尺寸为窗口面积的四分之一,当单击鼠标左键或键盘上的向上箭头时,位图向上移动,当移动到窗口的上边界时,在模式对话框中显示“不能再向上移动了”字样;当单击鼠标右键或键盘上的向下箭头时,位图向下移动,当到达窗口的下边界时,在模式对话框中显示“不能再向下移动了”字样;当单击键盘上的向左箭头时,位图向左移动,当移动到窗口的左边界时,在模式对话框中显示“不能再向左移动了”字样;当单击键盘上的向右箭头时,位图向右移动,当移动到窗口的右边界时,在模式对话框中显示“不能再向右移动了”字样。

并要求图片在移动到窗口的任意边界时不消失。

2、关键代码分析首先设置窗口大小,加载位图,获得位图左上角的坐标,在按下上下左右键的时候对相关坐标进行加减,同时建立相关的模式对话框,在对位图进行移动到相关边界时出现相关对话框。

相关代码:PAINTSTRUCT ps; //定义包含绘图信息的结构变量switch(iMessage){case WM_KEYDOWN:switch(wParam){case VK_UP: //按上箭头时,位置-10iY=iY-10;break;case VK_DOWN: //按下箭头时,位置+10iY=iY+10;break;case VK_LEFT: //按左箭头时,位置-10iX=iX-10;break;case VK_RIGHT: //按右箭头时,位置+10iX=iX+10;break;}InvalidateRect(hWnd,NULL,1);//刷新用户区break;case WM_CREATE: //初始化窗口消息hDC=GetDC(hWnd); //得到设备环境指针hdcmem=CreateCompatibleDC(hDC); //得到内存指针ReleaseDC(hWnd,hDC); //删除设备环境指针case WM_PAINT: //处理绘图消息hDC=BeginPaint(hWnd,&ps); //得到设备环境指针if(iX>0&&iX<iWindowWidth/2) //当位图完整的在窗口中时{SelectObject(hdcmem,hBm); //选入内存句柄BitBlt(hDC,iX,iY,bm.bmWidth,bm.bmHeight,hdcmem,0,0,SRCCOPY);//输出位图}else if(iX<=0) //当位图的左边界超出了窗口时{DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG3),hWnd,(DLGPROC)ModalDlgProc);}else //当位图的右边界超出了窗口时{DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG4),hWnd,(DLGPROC)ModalDlgPr oc);}if(iY>0&&iY<iWindowHeight/2) //当位图完整的在窗口中时{SelectObject(hdcmem,hBm); //选入内存句柄BitBlt(hDC,iX,iY,bm.bmWidth,bm.bmHeight,hdcmem,0,0,SRCCOPY);break; //输出位图}else if(iY<=0) //当位图的上边界超出了窗口时{DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG1),hWnd,(DLGPROC)ModalDlgPr oc);}else //当位图的下边界超出了窗口时{DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG2),hWnd,(DLGPROC)ModalDlgProc);}EndPaint(hWnd,&ps); //输出环境指针break;case WM_DESTROY: //关闭窗口消息DeleteObject(hBm); //删除内存句柄PostQuitMessage(0);return 0;default:return(DefWindowProc(hWnd,iMessage,wParam,lParam));}return 0;3、模式对话框的设置,相关代码如下:IDD_DIALOG1 DIALOG DISCARDABLE 0, 0, 187, 96STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENUCAPTION "对话"FONT 10, "System"BEGINPUSHBUTTON "确定",IDCANCEL,130,82,50,14LTEXT "不能再向上移动了"IDC_STA TIC,50,35,170,10ENDIDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 96STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENUCAPTION "对话"FONT 10, "System"BEGINPUSHBUTTON "确定",IDCANCEL,130,82,50,14LTEXT "不能再向下移动了"IDC_STA TIC,50,35,170,10ENDIDD_DIALOG3 DIALOG DISCARDABLE 0, 0, 187, 96STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENUCAPTION "对话"FONT 10, "System"BEGINPUSHBUTTON "确定",IDCANCEL,130,82,50,14LTEXT "不能再向左移动了"IDC_STA TIC,50,35,170,10ENDIDD_DIALOG4 DIALOG DISCARDABLE 0, 0, 187, 96STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENUCAPTION "对话"FONT 10, "System"BEGINPUSHBUTTON "确定",IDCANCEL,130,82,50,14LTEXT "不能再向右移动了"IDC_STA TIC,50,35,170,10END二、实验二1、题目:建立两套菜单,第一套菜单:单击menu2,窗口加载第二套菜单:给每套菜单的每个菜单项放置热键和加速键,单击menu1后,加载第一套菜单。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

长春理工大学
汇编语言
实验报告
实验题目:用DEBUG程序调试程序功能段实验时间:2016 年 4 月 6 日
实验地点:东三教912
班级:1405111
学号:140511114
姓名:王国伟
一.实验目的
1.继续学习使用DEBUG程序的各种命令。

2.利用DEBUG学习了解计算机取指令、执行指令的工作过程。

3.掌握8086/8088基本指令的使用方法和功能。

二.实验准备
1.DEBUG命令
1)G 命令
格式:G[=起始地址] [断点地址]
功能:从起始地址开始执行到断点地址,如不设断点地址,则程序一直执行到终止指令才停止
2)P命令
功能:执行汇编程序,单步跟踪
与T命令不同的是:P 命令不会跟踪进入子程序或软中断。

其使用方式与
T相同
3)N命令
功能:指定文件名。

为读/写文件做准备
4)W命令
功能:向磁盘写内容
5)L命令
功能:从磁盘将文件或扇区内容读入内存
注意:使用该命令前,必须用N命令设定文件名
三.实验任务
1.按照下列给定步骤完成求累加和程序:
程序:
MOV BX,1000
MOV CX,10
MOV AL,0
LOP: ADD AL,[BX]
INC BX
J: LOOP LOP
INT3
步骤:
1)用A命令将程序键入到100H开始的内存中,在键入时记下标号LOP和J的实际地址,在键入LOOP指令时LOP用实际地址值代替。

LOP:0B50:0108 J:0B50:010B
2)用命令N AA将此程序命名为文件AA(文件名可任取)。

3)用R命令将BX:CX改为程序长度值(即最后一条指令后面的地址减去开始地址) ,用R命令把BX设为:0000H,CX 设为文件长度。

4)用命令W 100将此程序存到AA命名的磁盘文件中。

5)用命令Q退出DEBUG。

6)用命令DEBUG AA再次调入DEBUG和文件AA,可用U命令检查调入程序。

若调入DEBUG时忘了加AA文件名,可用N命令和L命令将文件调入。

7)用E命令在内存地址1000H处键入16个数字
8)用命令G=100 J(J用实际地址代替),使程序运行并停在断点J上,检查
AX,BX的值是否符合你的预计值。

9)用T命令运行一步,观察程序方向(IP值)和CX值是否与你的估计一样, 若不一样,检查程序是否有错。

10)重复G J与T,再检查AX是否正确。

(J为断点地址)
11)用G命令使程序运行到结束,检查AX值是否正确
2.用命令A汇编下列指令,判断指令正误并说明原因。

i.LEA DI,[AX]
错误,因为lea指令传送的必须为变量名,标号或地址表达式
ii.MOV DS,2010
错误,不能将立即数放入数据段中
iii.PUSH AL
错误,push一次压入16位数据,al只有八位
iv.OUT 900,AL
错误,因为当端口地址大于FFH的时候应该将端口地址送到dx中,al只能
操作八位数
v.MOV [BX],0
错误,因为没有标明是字节传送还是字传送
3.利用T,P,G命令,执行下列指令段,注意它们的不同之处
MOV DI,300
MOV SI,400
MOV CX,3
CLD
REP MOVSB
INT 3
如果用G命令直接中断,并且显示寄存器标志和下一条要执行的命令。

T是执行一个指令,通常采用跟踪一条指令,但用户也可以用指令条数设定一次跟踪多条指令,每执行一条指令之后,显示所有寄存器的内容和标志状态以及下一条指令在内存中的保存情况。

P其实也是执行一条指令,但区别是在执行INT的时候会把这个INT整个的执行完毕,而不是跳转到这个中断程序去跟踪执行使用P命令执行程序,该程序不间断运行,直到循环、重复字符串指令、软件中断或者完成了指定地址的子例程
为止,或者直到执行了指定数量的机器指令为止。

若被执行的指令不是循环、重复的字符串指令、软件中断或子程序,则P 命令与T(跟踪)命令的作用相同。

4.程序:
MOV DI,1000
MOV CX,8
MOV SI,2000
CLC
LOP: MOV AL,[SI]
ADC [DI],AL
INC SI
INC DI
LOOP LOP
INT 20
步骤:
1)用A命令键入此程序
2)用E命令在1000H开始处键入一个8字节被加数,在2000H开始处键入一个
8字节加数,均为低字节在前面。

3)用G命令运行此程序,并用D命令检查其结果(存放在哪里?),是否正确?
4)将INT 20H指令改为INT 3,有何区别?若这条指令不加,行不行?试
试。

INT 20H程序终止INT3为断点
5)请说明这个程序完成的功能是什么?
将0b50:1000与0b50:2000对应的地址内的数相加并存入[di]
四.实验小结
在写入程序时,应当先读懂程序,大致上了解一下该程序段所执行的功能或者流程,以便后面进行查看时判断程序的正误.读程序的过程中就需要熟练的运用寻址方式来读懂程序,最先开始就因为寻址方式而读不懂程序.
学会了G命令的使用,同时了解了T.G.P命令它们之间的不同.
了解到了INT的部分指令的功能,如INT20H INT3等等.。

相关文档
最新文档