实验五 参考程序
matlab实验五循环结构程序设计实验报告
实验五:循环结构程序设计实验报告一、实验目的1. 了解循环结构的基本概念和原理;2. 掌握使用Matlab进行循环结构程序设计的方法;3. 提高编程能力和问题解决能力。
二、实验内容1. 学习while循环和for循环的基本语法和用法;2. 设计并编写一些基于循环结构的Matlab程序;3. 分析程序运行结果并进行总结。
三、实验原理循环结构是程序设计中的重要组成部分,它可以让一段代码重复执行多次,从而简化程序的编写。
在Matlab中,循环结构主要有while 循环和for循环两种形式。
while循环在执行循环体前判断条件是否为真,只有条件为真时才会执行循环体;for循环则是指定循环的次数,每次迭代时执行一次循环体。
四、实验步骤与结果1. 编写一个使用while循环的程序,实现1~100的累加。
程序代码如下:```matlabsum = 0;i = 1;while i <= 100sum = sum + i;i = i + 1;enddisp(sum);```运行程序后,得到的结果为5050。
2. 编写一个使用for循环的程序,实现1~10的阶乘。
程序代码如下:```matlabresult = 1;for i = 1:10result = result * i;enddisp(result);```运行程序后,得到的结果为xxx。
五、实验总结通过本次实验,我深刻理解了循环结构的基本概念和原理,掌握了使用Matlab进行循环结构程序设计的方法。
在编写循环程序的过程中,我发现循环结构可以大大简化程序的编写,并且能够高效地处理重复性任务。
我也进一步提高了自己的编程能力和问题解决能力。
本次实验使我对Matlab中的循环结构有了更加深入的了解,我相信这对我的编程能力和日后的学习工作都将大有裨益。
六、实验感想和改进意见通过本次实验,我深刻认识到循环结构在程序设计中的重要性和灵活性。
循环结构能够帮助我们简化程序的编写,提高代码的重用性和可读性,因此在实际的程序设计中,合理地运用循环结构能够大大提高程序的效率和逻辑清晰度。
试验五AD、DA转换实验
试验五. A/D、D/A转换实验一、实验目的1. 学习理解模/数信号转换和数/模转换的基本原理。
2. 掌握模/数转换芯片ADC0804和数/模转换芯片DAC0832的使用方法。
二、实验设备TD-PITE实验装置(带面包板)一套,实验用转换芯片两片,±12V稳压电源一台、运放两片、温度传感器、电位器(5.1KΩ)一个、电阻若干,面包板用导线若干,排线若干,万用表一个。
三、实验内容(1)设计A/D转换电路,采集可调电阻的输出电压。
连+5V电源,调节后的输出电压作为ADC0804的模拟输入量,然后进行A/D转换,转换结果由发光二极管上显示。
请填写实验数据表格:(2)将LM35 精密摄氏度温度传感器连+5V电源,输出电压直接作为ADC0804 的模拟输入量,然后进行A/D转换,转换结果经过计算得到摄氏度值放在内存变量上。
(多数温度传感器是针对绝对温度的,且线形较差。
LM35的输出电压与摄氏温度值成正比例关系,每10 mV 为 1 摄氏度。
)(3)设计D/A 转换,要求产生锯齿波、三角波、脉冲波,并用示波器观察电压波形。
四、实验原理1. 模数转换器ADC0804 简介ADC0804是用CMOS集成工艺制成的逐次比较型模数转换芯片。
分辨率为8位,转换时间为100μs,输入参考电压范围为0~5V。
芯片内有输出数据锁存器,与计算机连接时,转换电路的输出可以直接连接在CPU数据总线上。
图5.1 ADC0804引脚图启动信号:当CS#有效时,WR#可作为A/D转换的启动信号。
WR#高电平变为低电平时,转换器被清除;当WR#回到高时,转换正式启动。
转换结束:INTR#跳转为低电平表示本次转换已经完成,可作为微处理器的中断或查询信号。
RD#用来读A/D转换的结果。
有效时输出数据锁存器三态门DB0~DB7各端上出现8位并行二进制数码。
转换时钟:见下图,震荡频率为f CLK ≈ 1 / 1.1RC。
其典型应用参数为:R = 10KΩ,C = 150pF,f CLK≈ 640KHz,8位逐次比较需8×8 = 64个时钟周期,转换速度为100μs。
实验五交通灯控制
操作规则实现电路
功能:根据交通红绿灯控制器的功能要求,确定不同工作状态下计时器的计数值。可用8位计数器来实现定时计数。
正常运行时,计数器按照规定的定时要求加1计数;若要人工放行某方向,只要使计时器运行到该放行状态的最后一刻时,计时器保持此时的计数值,使红绿灯信号生成器暂停状态的转移即可。
*
再按下键2,表示欲人工放行B方向,则相应LED有显示;同时两个方向的红绿灯按正常运行规律自动切换,当运行到放行B方向时,则保持放行该方向。
再按下键3,表示清除人工方向的控制,则交通灯开始自动转换红黄绿灯的状态。
3
2
1
4
*
1
2
3
4
5
6
预习时请画出其状态转移图。
*
设计方案的选择
01
图文混合设计方法:先将电路划分为几个子模块,每个子模块由Verilog HDL语言描述实现,然后生成逻辑符号,顶层文件采用图形文件来实现。
02
纯文本描述方法:每个子模块和顶层电路的连接关系都采用Verilog HDL语言描述实现,对子模块的调用采用模块元件例化的方法。
起始状态的选择
采用log2N个触发器来表示这N个状态 采用N个触发器来表示这N个状态——称为一位热码状态机编码(One-Hot State Machine Encoding)。
状态编码
采用Verilog HDL语言实现基于状态机的设计,就是在时钟信号的触发下,完成两项任务: 用case或if-else语句描述出状态的转移; 描述状态机的输出信号。
在线校验
下载后,仔细观察:红绿灯应按设定的时间规律自动切换,D1~D8八个LED分别对应的是:A方向的红黄绿,B方向的红黄绿,A方向的放行状态,B方向的放行状态。
实验5-减压蒸馏
五、实验流程
1、按上图安装仪器; 2、检查气密性; 3、加料、抽真空、加热蒸馏; 4、结束蒸馏
பைடு நூலகம்
【实验步骤】
1、安装实验装置,检查气密性。 2、加料:量取25mL蒸馏水加至克氏烧瓶。 3、打开螺旋夹(缓冲液),启动循环水真空泵。 4、分别调节负压至0.03、0.02、0.01MPa,计算系统内压 力:P系=P气-P负
用水泵 1063~3333Pa(8~25mmHg) 用油泵:13Pa(0.1mmHg)
减压泵
实验室通常用水泵或油泵进行减压。
水泵:系用玻璃或金属制成,其效能与其构造、水 压及水温有关。水泵所能达到的最低压力为当时室 温下的水蒸气压。例如在水温为 6-8 ℃时,水蒸气压 为 0.93-1.07kPa ;在夏天,若水温为 30 ℃,则水蒸 气压为 4.2kPa 左右。
许多有机化合物的沸点当压力降低到1.3~2.0(10~1 5mmHg)时,可以比其常压下的沸点降低80~100℃,因此, 减压蒸馏对于分离或提纯沸点较高或性质比较不稳定的液态有 机化合物具有特别重要的意义。
它特别适用于那些在常压蒸馏时未达沸点即已受热分解、 氧化或聚合的物质。
三、仪器药品
仪器:蒸馏部分由蒸馏瓶(100ml)、克氏蒸馏头、 毛细
0.01 533.28
92
0
629.28
95
六、注意事项
1)、被蒸馏液体中若含有低沸点物质时,通常先进行普通 蒸馏,再进行水泵减压蒸馏,而油泵减压蒸馏应在水泵减压 蒸馏后进行。 2)、在系统充分抽空后通冷凝水,再加热(一般用油浴) 蒸馏,一旦减压蒸馏开始,就应密切注意蒸馏情况,调整体 系内压,记录压力和相应的沸点值,根据要求,收集不同馏 分。
实验五 数组实验
实验五数组的使用一实验目的要求1 掌握数组的概念和使用方法。
2 掌握数组初始化的方法。
3学会字符数组和字符串的应用。
4 学会用数组名作函数的参数。
二有关概念1 只有静态数组和外部数组才能初始化。
2 引用数组时,对下标是否越界不作检查。
如定义int a[5];在引用时出现a[5],不给出错信息,而是引a[4]下面一个单元的值。
3 字符串放在字符数组中,一个字符串以‘/o’结束,有一些字符串函数如strcpy,strcmp,strlen等可以方便一进行字符串运算。
4 如有如下定义:char *str=“I love china”;表示 str是一个字符型指针变量,它的值是一个字符数据的地址。
不要认为str是字符串变量,在其中存放一个字串“I love china”。
5 用数组名作函数实参时,传到形参的是数组的首地址。
三实验内容和步骤1 定义三个数组int a[5];int b[2][2];char c[10];(1)分别在函数体外和函数体内对它们进行初始化,然后输出它们的值。
(2)在程序中再加一语句,输出a[5],b[2][2] ,分析结果。
(3)对C数组改为用赋值语句给各元素赋初值:c[0] ~ c[9]各元素分别为:…I‟, …‟, …a‟, …m‟, …‟, …b‟, …o‟, …y‟。
然后用printf(“%s”,c)输出字符串,分析结果。
参考程序如下:(1)main(){ int i,x,y;static int a[5]={1,2,3,4,5};static int b[3][2]={{3,4},{6,7},{9,5}}static char c[10]={ …i‟, …l‟, …p‟, …q‟, …k‟, …s‟, …d‟, …e‟, …a‟};for(i=0;i<5;i++)printf( “%5d”,a[i]);for(x=0;x<3;x++)for(y=0;y<2;y++)printf(“%5d”,b[x][y]);for(i=0;i<10;i++)printf(“%3c”,c[i]);}(2)结果无此值,在上面程序中要输出a数组第5个元素,和b数组的第3行第2例元素,应加此程序行:Printf(“%d”,a[4]);Printf(“%d”,b[2][1]);2 有一数组,内放10个整数,要求找出最小的数和它的下标。
C语言程序设计实验五 参考答案
答案:
#include<stdio.h>
void main()
{
int i,j,num=0;
for(i=3;i<=1000;i++)
{
for(j=2;j<=1000;j++)
if(i%2==0)
break;
5-4从键盘输入一个整数n,计算2n+1与++n之和。要求计算两数之和用函数实现。
答案:
#include<stdio.h>
void main()
{
int a;
int sum(int n);
printf("input n:\n");
scanf("%d",&a);
sum(a);
}
int sum(int n)
if(i%2!=0)
{
printf("%5d",i);
num++;
if(num%10==0)
printf("\n");
}
}
printf("\n");
}
*************************************************************************************************************实验三*******************************************
c语言程序设计实验五参考答案实验解答实验五参考答案编程语言c语言吧c语言答案
实验五 LL(1)分析步骤和讲解
实验五LL(1) 分析法一、实验目的:一、实验目的:根据某一文法编制调试LL (1)分析程序,以便对任意输入的符号串进行)分析程序,以便对任意输入的符号串进行析。
本次实验的目主要是加深对预测分析。
本次实验的目主要是加深对预测分LL (1)分析法的理解。
)分析法的理解。
(所需学时:4学时)二、实验二、实验原理1、LL (1)分析法的功能)分析法的功能LL (1)分析法的功能是利用)分析法的功能是利用)分析法的功能是利用LL (1)控制程序根据显示栈顶内容、向前)控制程序根据显示栈顶内容、向前)控制程序根据显示栈顶内容、向前)控制程序根据显示栈顶内容、向前看符号以及LL (1)分析表,对输入符号串自上而下的过程。
)分析表,对输入符号串自上而下的过程。
2、LL (1)分析法的前提)分析法的前提改造文法:消除二义性、左递归提取因子,判断是否为改造文法:消除二义性、左递归提取因子,判断是否为改造文法:消除二义性、左递归提取因子,判断是否为改造文法:消除二义性、左递归提取因子,判断是否为改造文法:消除二义性、左递归提取因子,判断是否为LL (1)文法,3、LL (1)分析法实验设计思想及算)分析法实验设计思想及算X∈VN‘#’‘ S’ 进栈,当前输入符送进栈,当前输入符送进栈,当前输入符送进栈,当前输入符送a栈顶符号放入栈顶符号放入X若产生式为若产生式为X X1X2…X n按逆序即Xn…X 2X1入栈出错X=’ X=’ X=’ #’X∈VTX=aX=aM[X,a] M[X,a]M[X,a] M[X,a]是产生式吗是产生式吗出错X=a读入下一个符号读入下一个符号结束是是是是否否否否否是三、实验要求对文法G(E) 如下,用LL(1)分析法对任意输入的符号串进行分析:E→E+T│TT→T*F│FF→(E)│i消除文法左递归,改写为:E →TE'E' →+TE' | εT →FT'T' →*FT' | εF →( E ) | i(1)计算每个语法单位的first 和follow 集合;(2)构造预测分析表;(3)写出分析程序。
实验五食品中大肠菌群的测定
广东科贸职业学院
34
比较区别 GB/T4789.38 -- 2019大肠杆菌的计数
广东科贸职业学院
35
03版 流程
广东科贸职业学院
36
广东科贸职业学院
37
一、 步骤
取样及稀释方法与菌落总数检验方法 相同,做成1:10的均匀稀释液为检样。
广东科贸职业学院
38
同一稀释度在做菌落总数测定的同时接 种乳糖胆盐发酵管,并且用大肠埃希氏 菌、产气肠杆菌混合菌种作对照 。
广东科贸职业学院
39
1、乳糖发酵试验 根据食品卫生要求或对检样污染程
度的估计,选择三个稀释度,每个稀释 度接种三管乳糖胆盐发酵管。
广东科贸职业学院
40
接种量在1ml以上者,用双料乳糖胆盐
发酵管,1ml及1ml以下者,用单料乳糖胆盐
发酵管,同时用大肠埃希氏菌和产气肠杆菌
混合菌种混合接种于1支作单料乳糖胆盐发酵
广东科贸职业学院
56
巴氏杀菌乳(GB5408.1-2019)
细菌菌落总数: ≤30000cfu/ml
大肠菌群:
≤90MPN/100ml
肠道致病菌: 不得检出
广东科贸职业学院
57
生活饮用水卫生标准(GB5749-2019)
菌落总数cfu/ml: ≤100 总大肠菌群cfu/100ml或MPN/100ml :不得检出 耐热大肠菌群cfu/100ml或MPN/100ml :不得检出 大肠埃希氏菌cfu/100ml或MPN/100ml :不得检出
它反映了食品是否被粪便污染,同时间接地指出食 品是否有肠道致病菌污染的可能性。
食品中大肠菌群数系以每1g(或mL)检样内大肠 菌群最可能数MPN(the most probable number简称MPN)表示
最新东南大学-微机原理-微机系统与接口-实验五-六-实验报告-自动化学院
东南大学《微机实验及课程设计》实验报告实验五8253 计数器/定时器实验六8255 并行输入输出姓名:学号:08011专业:自动化实验室:计算机硬件技术实验时间:2012年04月27日报告时间:2013年05月15日评定成绩:审阅教师:一. 实验目的实验五:1)掌握计数器/定时器8253 的基本工作原理和编程应用方法;2)了解掌握8253 的计数器/定时器典型应用方法实验六:1)掌握8255方式0的工作原理及使用方法,利用直接输入输出进行控制显示;2)掌握8段数码管的动态刷新显示控制;3)分析掌握8255工作方式1时的使用及编程,进一步掌握中断处理程序的编写。
二. 实验内容实验五:必做:5-1 将计数器0设置为方式0,计数初值为N(小于等于0FH),用手动的方式逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化。
(参考程序p63)5-2 将计数器0、1分别设置在方式3,计数初值设为1000,用逻辑笔观察OUT0电平的变化。
(参考程序p64)实验六:(1)8255方式 0:简单输入输出实验电路如图一,8255C口输入接逻辑电平开关K0~K7,编程A口输出接 LED显示电路L0~L7;用指令从 C口输入数据,再从A口输出。
图一 8255简单输入输出(2)编程将A口 L0-L7控制成流水灯,流水间隔时间由软件产生;流水方向由K0键在线控制,随时可切换;流水间隔时间也可由K4~K7键编码控制,如 0000对应停止,0001对应 1秒,1111对应 15秒,大键盘输入 ESC键退出。
(3)8段数码管静态显示:按图二连接好电路,将 8255的 A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端 S1接+5V(选中),S0、dp接地(关闭)。
编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。
图二单管静态显示(4) 8段数码管动态显示:按图三连接好电路,七段数码管段码连接不变,位码驱动输入端S1、S0 接8255 C口的PC1、PC0。
单片机原理与应用实验指导书(含参考程序)
单片机实验实验说明:实验一和二做一次实验三和四做一次实验五和六分别做一次实验一 P1口实验一一、实验目的:1.学习P1口的使用方法。
2.学习延时子程序的编写和使用。
二、实验设备:EL-MUT-II型实验箱,8051CPU板三、实验内容:1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2.P1口做输入口,接八个按纽开关,以实验箱上74LS273做输出口,编写程序读取开关状态,在发光二极管上显示出来。
四、实验原理:P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。
作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。
8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。
可以用第二个实验做一下实验。
先按要求编好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1做输入口,会有什么结果。
再来看一下延时程序的实现。
现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。
在系统时间允许的情况下可以采用后一种方法。
本实验系统晶振为6.144MHZ,则一个机器周期为12÷6.144us即1÷0.512us。
现要写一个延时0.1s的程序,可大致写出如下:MOV R7,#X (1)DEL1:MOV R6,#200 (2)DEL2:DJNZ R6,DEL2 (3)DJNZ R7,DEL1 (4)上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要1÷0.256us,现求出X值:1÷0.256+X(1÷0.256+200×1÷0.256+1÷0.256)=0.1×10⁶指令(1)指令(2)指令(3)指令(4)所需时间所需时间所需时间所需时间X=(0.1××10⁶-1÷0.256)/(1÷0.256+200×1÷0.256+1÷0.256)=127D=7FH经计算得X=127。
[单片机矩阵键盘实验实验报告范文]矩阵键盘实验心得
[单片机矩阵键盘实验实验报告范文]矩阵键盘实验心得实验五矩阵键盘实验一、实验内容1、编写程序,做到在键盘上每按一个数字键(0-F)用发光二极管将该代码显示出来。
按其它键退出。
2、加法设计计算器,实验板上有12个按键,编写程序,实现一位整数加法运算功能。
可定义“A”键为“+”键,“B”键为“=”键。
二、实验目的学习独立式按键的查询识别方法。
2、非编码矩阵键盘的行反转法识别方法。
三、实验说明1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先向端口写入“1”。
2、用查询方式检测按键时,要加入延时(通常采用软件延时10~20mS)以消除抖动。
3、识别键的闭合,通常采用行扫描法和行反转法。
行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。
行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。
然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。
这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。
由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。
行反转法识别按键的过程是:首先,将4个行线作为输出,将其全部置0,4个列线作为输入,将其全部置1,也就是向P1口写入0某F0;假如此时没有人按键,从P1口读出的值应仍为0某F0;假如此时1、4、7、0四个键中有一个键被按下,则P1.6被拉低,从P1口读出的值为0某B0;为了确定是这四个键中哪一个被按下,可将刚才从P1口读出的数的低四位置1后再写入P1口,即将0某BF写入P1口,使P1.6为低,其余均为高,若此时被按下的键是“4”,则P1.1被拉低,从P1口读出的值为0某BE;这样,当只有一个键被按下时,每一个键只有唯一的反转码,事先为12个键的反转码建一个表,通过查表就可知道是哪个键被按下了。
EDA技术及应用-实验5-4位加法计数器
实验五4位加法计数器
一、实验目的
1.掌握时钟信号、进程和BUFFER端口的运用;
2.了解计数器的设计、仿真和硬件测试,进一步熟悉VHDL语句、语法及应用等。
二、实验内容
运用Quartus II 集成环境下的VHDL文本设计方法设计4位加法计数器,进行波形仿真和分析、引脚分配并下载到实验设备上进行功能测试。
三、实验步骤及参考程序
参考程序如下:
entity CNT4 is
port( clk:in bit;
q:buffer integer range 15 downto 0);
end;
architecture bhv of CNT4 is
begin
process(clk)
begin
if clk'event and clk='1' then
q<=q+1;
end if;
end process;
end bhv;
四、实验扩展及思考
1.分析程序中各语句的功能和特点;
2.比较各种端口类型以及如何应用;
3.试设计一个含异步清0和同步时钟使能的4位加法计数器。
上机实验五 循环结构程序设计一(带参考答案)
上机实验五循环结构程序设计(一)一.目的要求1.掌握while、do-while、for语句的语法规则、执行流程。
2.比较3种循环语句的异同。
3.按题目要求,完成代码。
二.实验内容思考问题:3种循环的异同点?能否相互转换?for循环控制单元的表达式与while循环中表达式是如何对应的?第1题、分别用while、do-while、for语句编程,求数列前20项之和:2/1,3/2,5/3,8/5,13/8······算法提示:1)定义实变量sum、term、a、b、c,整变量i2)初始化:sum=0,分子a=2,分母b=13)初始化:i(计数器)=14)计算第i项term =a/b5)累加sum=sum+term6)计算c=a+b,更新b= a,更新a=c7)计数器加1,i++8)重复4、5、6、7,直到i>209)输出2位精度的结果编写程序:方法一,用while语句:#include<stdio.h>void main(){float s=0, a=2,b=1,c;int i=1;while(i<=20){s=s+a/b;c=a+b;b=a;a=c;i++;}printf(“s=%.2f”,s);}方法二,用do-while语句:#include<stdio.h>void main(){float s=0,a=2,b=1,c;int i=1;do {s=s+a/b;c=a+b;b=a;a=c;i++;} while(i<=20);printf(“s=%.2f”,s);}方法三,用for语句:#include<stdio.h>void main(){float s=0,a=2,b=1,c;int i;for(i=1;i<=20;i++){s=s+a/b;c=a+b;b=a;a=c;}printf(“s=%.2f”,s);}第2题、计算多项式的值:s=1!+2!+3!+4!+ (20)算法提示:该多项式迭代公式为:term=term*i,sum=sum+term注意:哪些变量需要初始化?变量应采用什么类型?编写程序:#include<stdio.h>void main(){int i;double s=0,fact=1;for(i=1;i<=20;i++){fact*=i;s=s+fact;}printf(“s=%f”,s);}把每一次迭代结果输出,程序应做怎样的修改?第3题、输入x和n,计算并输出下式的值:s=x/1+x/3+……+x/n参考答案:#include <stdio.h>int main(){int n,i;float x,s=0;printf("请输入x,n,以,分隔");scanf("%f,%d",&x,&n);for(i=1;i<=n;i+=2){s+=(x/i);}printf("\ns=%f",s);}第4题、输入一批正整数,求出其中的偶数之和。
实验五SRIM程序使用指南
实验五SRIM程序使⽤指南实验五 SRIM计算重离⼦在材料中的剂量分布⼀、实习⽬的和要求(⼀)实习⽬的:1、熟悉SRIM程序的基本使⽤⽅法,以及在辐射剂量和防护计算中的应⽤。
2、通过此程序仿真模拟重带电粒⼦⼊核的过程,获得离⼦在材料中的剂量分布。
3、通过进⼀步⾃学,利⽤SRIM程序解决实际⼯作中的碰到的⼀些实际问题。
(⼆)实习要求:1、掌握SRIM软件的基本组成、操作⽅法;2、利⽤SRIM对离⼦在不同物质中的射程进⾏计算分析;3、对质⼦在不同固体靶中的径迹及剂量分布进⾏简单的计算,并对计算结果进⾏分析并绘图,得出结论。
⼆、SRIM程序简介1、SRIM软件介绍SRIM是模拟计算离⼦在靶材中能量损失和分布的程序组。
它采⽤Monte Carlo⽅法,利⽤计算机模拟跟踪⼀⼤批⼊射粒⼦的运动。
粒⼦的位置、能量损失以及次级粒⼦的各种参数都在整个跟踪过程中存储下来,最后得到各种所需物理量的期望值和相应的统计误差。
该软件可以选择特定的⼊射离⼦及靶材种类,并可设置合适的加速电压。
可以算不同粒⼦,以不同的能量,从不同的位置,以不同的⾓度⼊射到靶中的情况。
SRIM中包含⼀个TRIM运算软件。
TRIM(Transport of Ions in Matter)是⼀个⾮常复杂的程序。
它不仅可以描述离⼦在物质中的射程,还可以详细计算注⼊离⼦在慢化过程中对靶产⽣损伤等其他信息。
它可以使⽤动画让你看到离⼦注⼊到靶中的全过程,并给你展⽰级联反冲粒⼦和靶原⼦混合在⼀起的情形。
为了精确估计每个离⼦和靶原⼦间相遇时的物理情形,程序只能⼀次对⼀个粒⼦进⾏计算。
这样的话,计算可能消耗可观的时间——计算每个离⼦花费的时间从⼀秒到⼏分钟不等。
⽽精确度由模拟采⽤的离⼦数来决定。
典型的情况是,应⽤1000个离⼦进⾏计算将得到好于10%的精确度。
软件特点:⼀、灵活的⼏何处理能⼒蒙特卡罗⽅法较其它数值⽅法的最⼤优点之⼀,是处理复杂的⼏何问题⽅便、灵活,并且不因⼏何维数的增多⽽增加更多的计算时间,因此,在SRIM软件中尽可能提⾼和完善⼏何处理能⼒,以适应各种复杂⼏何条件下的计算。
实验五_人体阻抗实验
实验五 人体阻抗实验一、实验目的:1. 了解人体阻抗的测量方法。
2. 通过心脏收缩和舒张时其心房、心室的体积变化,可观察到回路中人体阻抗的相应变化,进而了解阻抗测量的实际应用。
二、原理简介:阻抗为测量路径上,对交流电通过时,所产生阻力性和电抗性合成的总抗量。
这其中包含三种成分:电阻、电感、电抗。
所有导电物质。
包括活体组织皆具有阻抗,且其阻抗会随着季节或阻抗内体液的变化而变化。
一般对电阻的定义是电流经过的物质上,所产生对直流电位和交流电位的抵抗量。
所有物质在高于绝对零度的温度下,皆具有电抗的特性。
LR Aρ= 依上式,此电阻值会与电流通过物体的及面积A 成反比,而与电流的路径长度L 成正比,其中ρ是电阻系数。
下图为体阻抗测量的原理框图:图5-1 体阻抗测量原理框图由韦恩电桥振荡器产生的50KHz 交流信号,经由一定电流电路,将信号以表面电极送入体内。
再将向量信号萃取出为单极性信号,其放大倍率为5。
再者,隔离电路将信号和电源做隔离,其方法可采用光学式或变压器式。
经由精密全波整流电路所构成的解调器,将50KHz 的载波信号和身体阻抗的低频信号予以分离,又经一频宽为0.1~10Hz 的带通滤波器,即可提取出因心脏输出而改变的体阻抗信号,再将此微弱信号放大500倍,便可于示波器上显示体阻抗的变化信号。
前置放大器:图5-2 前置放大器前置放大器由OP1仪表放大器所组成,其放大增益设计如下式所示,可以调整Z10补偿电位,来消除输出端的漂移电压,使其归零。
949.41k Av Z Ω=+ 带阻滤波器、隔离电路、带通滤波器略,可以查阅心电实验中所述的相关内容。
韦恩电桥震荡电路:图5-3 韦恩电桥震荡电路由OP6A、Z21、Z22、Z23、Z24、Z25和Z26组成的振荡器,可产生正弦交流波信号,振荡器采用正反馈设计,震荡频率由Z22、Z23、Z24和Z26决定,如下式:o f =而振荡条件由Z21决定,必须满足公式:21252Z Z ≥ 定电流电路:图5-4 定电流电路在OP6B 电路中,因具有负反馈的设计,因此输入端有虚短的现象,所以输出电流只与输入电压有关,即28iL V I Z =,而与负载的大小无关,所以OP6B 、Z27和Z28可视为一定电流电路的组合。
C语言实验报告实验五参考答案
C语言实验报告实验五参考答案实验五一维数值数组(参考答案)1、设计程序sy5-1.c,计算n门课程的平均分。
例如:若有5门课程的成绩是:90.5.72.80.61.5.55,则平均分是:71.80.算法分析:先求n门课的成绩总和,(累加求和),再用累和除以课程数。
参考答案:includevoid main()double score[30]。
sum=0,aver;int n,i;printf("Inputn:");scanf("%d",&n);printf("请依次输入%d门课程的成绩",n);for(i=0;i<n;i++)scanf("%lf",&score[i]);sum=sum+score[i];aver=sum/n;printf( "\nAverage scoreis: %5.2f\n"。
aver);运行结果:2、设计步伐sy5-2.c,对输入的10个整数按倒序寄存后输出成效。
算法阐发:利用“半数交流”算法,最前面的元素和末了面的元素交流,逐步向中央挨近。
可利用两个下标变量i和XXX。
参考答案:includeint main()int a[10]={1,2,3,4,5,6,7,8,9,10};int i,j,t;for( i=0,j=9.i<j。
i++,j--)//逐一向中,交换。
直到已没有元素没交换t=a[i]。
a[i]=a[j]。
a[j]=t;}// a[i]-数组前端的数,a[j]-数组后端的数printf("交流后数组元素是:");for(i=0;i<10;i++)printf("%5d",a[i]);//%5d,5透露表现宽度printf("\n");//输出完所有的数后换行return 0;运行结果:3、设计程序sy5-3.c,输入10个整数,找出其中的最大数及其所在的下标。
(完整版)实验五16QAM调制与解调实验
实验五16QAM调制与解调实验【实验目的】使学生了解16QAM的调制与解调原理;能够通过MATLAB对其进行调制和解调;比较解调前后功率谱密度的差别。
【实验器材】装有MATLAB软件的计算机一台【实验原理】1. 16QAM 是用两路独立的正交4ASK 信号叠加而成,4ASK 是用多电平信号去键控载波而得到的信号。
它是2ASK 体制的推广,和2ASK 相比,这种体制的优点在于信息传输速率高。
2. 正交幅度调制是利用多进制振幅键控(MASK)和正交载波调制相结合产生的。
16 进制的正交振幅调制是一种振幅相位联合键控信号。
16QAM 的产生有2 种方法:(1)正交调幅法,它是有2 路正交的四电平振幅键控信号叠加而成;(2)复合相移法:它是用2 路独立的四相位移相键控信号叠加而成。
3. 16QAM 信号采取正交相干解调的方法解调,解调器首先对收到的16QAM 信号进行正交相干解调,一路与cosωc t 相乘,一路与sinωc t 相乘。
然后经过低通滤波器,低通滤波器LPF 滤除乘法器产生的高频分量,获得有用信号,低通滤波器LPF 输出经抽样判决可恢复出电平信号。
【实验内容与步骤】1. MATLAB软件的设置:对路径的设置,设置成路径指向comm2文件夹;2. 在命令行输入start指令,然后输入num值,如3,之后按照内容3输入参考代码。
3. 新建一个扩展名为M的文件,输入以下程序:M=16;k=log2(M);x=randint(30000,1);%产生二进制随机数y=modulate(modem.qammod('M',16,'InputType','Bit'),x);%调制EbNo=-5:1:10;%信噪比s_b2d=bi2de(reshape(x,k,length(x)/k).','left-msb');%二进制变为十进制for n=1:length(EbNo)snr(n)=EbNo(n)+10*log10(k);%Ratio of symbol energy to noise power spectral densityynoisy=awgn(y,snr(n),'measured');%加入高斯白噪声z=demodulate(modem.qamdemod('M',16,'OutputType','Bit'),ynoisy);%解调r_b2d=bi2de(reshape(z,k,length(z)/k).','left-msb');%二进制变为十进制[sym(n),sym_rate(n)]=symerr(s_b2d,r_b2d);%计算仿真误码率,不是误比特率。
串并转换
实验五串并转换实验一、实验目的1、掌握串并行转换的原理及采用74LS164扩展端口的方法。
2、掌握数码管显示的原理及方法。
3、学习用任意两根I/O口线进行数据传输的方法。
二、实验要求利用实验箱的显示电路,在数码管上循环显示0-9这10个数,每个数显示1秒。
完成后修改程序,仅在一个数码管上显示0-F这16个数(其它三个数码管不显示)。
三、实验原理实验设备中数码管为共阴接法,接线确定了各段从左至右的排列顺序为:abcdefgh。
如果要显示数字1,应该是b c段发光,所以b c段对应的位写1,其它不发光的位写0。
因此1的显示码为60H。
其它显示码可按此规律得出。
实验原理图见图二,串并转换芯片74LS164的A、B端为串行数据输入端,将其接到数据线P1.0上,CLK为时钟端接到时钟线P1.1上,Q0~Q7为并行输出端接数码管。
在P1.1产生的时钟脉冲的作用下,数据的显示码从74LS164输入端一位一位的输入,经164转换后,串行数据变为8位并行数据经其输出端Q0~Q7加到数码管上,数码管就能显示相应的数字。
下面是数据60H的传输及显示过程:1、将A中数据的最低位送到串口的数据线P1.0上。
2、在时钟线P1.1上产生一个脉冲。
3、在这个脉冲的作用下,P1.0上的数据被打入164的Q0输出端,原来Q0上的数据移到Q1,Q1的数移到Q2…,完成一位数的传输。
4、第1步到第3步重复8次,这样一个字节的数据就输出完毕,同时74LS164将接收到的串行数据转换成并行数据在数码管上显示出来。
四、实验框图实验框图见图一。
五、实验连线及步骤1、DIN接P1.0,CLK接P1.1,打开实验箱电源,打开串并转换数码管显示模块上的开关。
2、启动KEIL软件界面,根据框图编程。
在初始化框中有两个内容,它们分别是:* 送表指针初值---寄存器MOV R1,#0* 送表首地址---DPTR 图一串并转换程序框图 MOV DPTR,#TAB显示子程序如下,其中R4中的初值为8。
实验5实验指导书
实验五串级控制算法的研究一、实验目的1.熟悉串级控制系统的原理,结构特点;2.熟悉并掌握串级控制系统两个控制器参数的整定方法。
二、实验设备1.THBCC-1型信号与系统•控制理论及计算机控制技术实验平台2.THBXD数据采集卡一块三、实验内容1.设计一个具有二阶被控对象的串级控制系统,并完成数-模混合仿真。
2.学习用逐步逼近法整定串级控制系统所包含的内,外两环中PI控制器的参数。
四、实验原理串级控制系统的主要特点是在结构上有两个闭环。
位于里面的闭环称为副环或副回路,它的给定值是主调节器的输出,即副回路的输出量跟随主调节器的输出而变化。
副回路的主要作用是:一、能及时消除产生在副回路中的各种扰动对主控参量的影响;二、增大了副对象的带宽,从而加快了系统的响应。
五、实验步骤1、实验接线1.1根据图5-1与5-2,连接一个二阶被控对象闭环控制系统的模拟电路;1.2用导线将图5-2的“u1”输出点与数据采集卡的输入端“AD1”相连,“u2”输出点与数据采集卡的输入端“AD2”相连,该电路的输入端则与数据采集卡的输出端“DA1”相连;2、脚本程序运行2.1启动计算机,在桌面双击图标“THBCC-1”,运行实验软件;2.2顺序点击虚拟示波器界面上的“开始按钮(脚本编程器);2.3在脚本编辑器窗口的文件菜单下点击“打开”按钮,并在“计算机控制算法VBS\计算机控制技术基础算法”文件夹下选中“串级控制”脚本程序并打开,阅读、理解该程序,然后点击脚本编辑器窗口的调试菜单下“步长设置”,2.4点击脚本编辑器窗口的调试菜单下“启动”;用虚拟示波器观察图5-2中u1 、u2输出端各自的响应曲线。
然后用逐步逼近法(参考本实验附录3的参数整定)整定串级控制系统的主调节器和副调节器相应的P、I、D参数。
2.5 将串级控制的脚本程序语句重复操作步骤2.4,并比较加副控制器前后被控参数的控制效果;六、实验报告要求1.绘出实验中二阶被控对象的模拟电路图;2.根据串级控制器的算法编写脚本程序;3.绘制实验中被控对象的输出波形。
实验五_人体阻抗实验
实验五 人体阻抗实验一、实验目的:1. 了解人体阻抗的测量方法。
2. 通过心脏收缩和舒张时其心房、心室的体积变化,可观察到回路中人体阻抗的相应变化,进而了解阻抗测量的实际应用。
二、原理简介:阻抗为测量路径上,对交流电通过时,所产生阻力性和电抗性合成的总抗量。
这其中包含三种成分:电阻、电感、电抗。
所有导电物质。
包括活体组织皆具有阻抗,且其阻抗会随着季节或阻抗内体液的变化而变化。
一般对电阻的定义是电流经过的物质上,所产生对直流电位和交流电位的抵抗量。
所有物质在高于绝对零度的温度下,皆具有电抗的特性。
LR Aρ= 依上式,此电阻值会与电流通过物体的及面积A 成反比,而与电流的路径长度L 成正比,其中ρ是电阻系数。
下图为体阻抗测量的原理框图:图5-1 体阻抗测量原理框图由韦恩电桥振荡器产生的50KHz 交流信号,经由一定电流电路,将信号以表面电极送入体内。
再将向量信号萃取出为单极性信号,其放大倍率为5。
再者,隔离电路将信号和电源做隔离,其方法可采用光学式或变压器式。
经由精密全波整流电路所构成的解调器,将50KHz 的载波信号和身体阻抗的低频信号予以分离,又经一频宽为0.1~10Hz 的带通滤波器,即可提取出因心脏输出而改变的体阻抗信号,再将此微弱信号放大500倍,便可于示波器上显示体阻抗的变化信号。
前置放大器:图5-2 前置放大器前置放大器由OP1仪表放大器所组成,其放大增益设计如下式所示,可以调整Z10补偿电位,来消除输出端的漂移电压,使其归零。
949.41k Av Z Ω=+ 带阻滤波器、隔离电路、带通滤波器略,可以查阅心电实验中所述的相关内容。
韦恩电桥震荡电路:图5-3 韦恩电桥震荡电路由OP6A、Z21、Z22、Z23、Z24、Z25和Z26组成的振荡器,可产生正弦交流波信号,振荡器采用正反馈设计,震荡频率由Z22、Z23、Z24和Z26决定,如下式:o f =而振荡条件由Z21决定,必须满足公式:21252Z Z ≥ 定电流电路:图5-4 定电流电路在OP6B 电路中,因具有负反馈的设计,因此输入端有虚短的现象,所以输出电流只与输入电压有关,即28iL V I Z =,而与负载的大小无关,所以OP6B 、Z27和Z28可视为一定电流电路的组合。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五类的综合应用(续)、异常处理
上机时间:11月4号,星期一。
1、2班11月4号下午2:30-4:05地点:科技楼423
3、4班11月4号上午8:10-9:50地点:科技楼423
实验目的:
(1)掌握类的继承,实现构造函数的继承。
(2)多态,通过相同的方法名实现不同的功能
(3) 掌握java的例外处理机制和方法。
实验内容:
1、编写求解几何图形(如三角形,矩型,圆,梯形)的周长、面积的应用程序,要求用到继承、多态、抽象类、接口、内部类等面向对象程序设计技术的来编程。
abstractclass Shape1 {//抽象类
double Pi=3.14;
publicabstractdouble zhouchang();
}
interface Shape2{//接口
publicdouble mianji();
}
class yuan extends Shape1 implements Shape2{//继承+实现接口
publicdouble rad;
public yuan(){}
public yuan(double r){
rad=r;
}
publicdouble mianji() {
return Pi*rad*rad;
}
publicdouble zhouchang() {
return 2*Pi*rad;
}
}
class Rec extends Shape1{//继承与内部类
double a,b;
public Rec(){
}
public Rec(double x,double y){
a=x;
b=y;
}
publicdouble zhouchang() {
return 2*(a+b);
}
publicdouble mianji(){
Innerclassincla=new Innerclass(a,b);
return incla.inarea();
}
class Innerclass{//内部类
double l,w;
public Innerclass(){
}
public Innerclass(double x,double y ){
l=x;
w=y;
}
publicdouble inarea(){
return l*w;
}
}
}
publicclass E51 {
publicstaticvoid main(String[] args) {
// TODO Auto-generated method stub
Shape1 circle=new yuan(1);//多态
System.out.println("用多态调用的园周长是:"+circle.zhouchang());
yuan circle1=new yuan(1);
System.out.println("园周长是:"+circle1.zhouchang()+"园面积是:
"+circle1.mianji());
Shape1 rectangle=new Rec(4,5);//多态
System.out.println("用多态调用的长方形的周长是:"+rectangle.zhouchang()); Rec rectangle1=new Rec(5,8);
System.out.println("长方形周长是:"+rectangle1.zhouchang()+"长方形面积是:"+rectangle1.mianji());
}
}
2.参考书P154的程序6-3来编写一个求N!(1*2*3…*N,规定0!=1)的Java程序,N为用户从键盘输入,但当输入的N<0或N>32就输出计算结果溢出异常,其它值则输出N!。
import java.util.*;
class MyException extends Exception{
privateint detail;
MyException(int a){
detail=a;
}
public String outInformation(){
return" 你输入N的值为["+detail+"],计算结果溢出";
}
}
publicclass E52 {
staticvoid compute (int a) throws MyException{
long fac=1;
if(a>20 ||a<0) thrownew MyException(a);
for(int i=1;i<=a;i++)
fac=fac*i;
System.out.println(a+"!的值为:"+fac);
}
publicstaticvoid main(String args[]){
int n;
Scanner scan=new Scanner(System.in);
System.out.println("请输入N的值(N<21)");
n= scan.nextInt();
try{
compute(n);
}catch (MyException e){
System.out.println("Execption caught"+e.outInformation());
}
}
}。