实验5

合集下载

数据结构实验五(二叉树的建立及遍历)题目和源程序

数据结构实验五(二叉树的建立及遍历)题目和源程序

实验5:二叉树的建立及遍历(第十三周星期三7、8节)一、实验目的1.学会实现二叉树结点结构和对二叉树的基本操作。

2.掌握对二叉树每种操作的具体实现,学会利用递归方法编写对二叉树这种递归数据结构进行处理的算法。

二、实验要求1.认真阅读和掌握和本实验相关的教材内容。

2.编写完整程序完成下面的实验内容并上机运行。

3.整理并上交实验报告。

三、实验内容1.编写程序任意输入二叉树的结点个数和结点值,构造一棵二叉树,采用三种递归遍历算法(前序、中序、后序)对这棵二叉树进行遍历并计算出二叉树的高度。

2 .编写程序生成下面所示的二叉树,并采用中序遍历的非递归算法对此二叉树进行遍历。

四、思考与提高1.如何计算二叉链表存储的二叉树中度数为1的结点数?2.已知有—棵以二叉链表存储的二叉树,root指向根结点,p指向二叉树中任一结点,如何求从根结点到p所指结点之间的路径?/*----------------------------------------* 05-1_递归遍历二叉树.cpp -- 递归遍历二叉树的相关操作* 对递归遍历二叉树的每个基本操作都用单独的函数来实现* 水上飘2009年写----------------------------------------*/// ds05.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>typedef char ElemType;using namespace std;typedef struct BiTNode {ElemType data;//左右孩子指针BiTNode *lchild, *rchild;}BiTNode, *BiTree;//动态输入字符按先序创建二叉树void CreateBiTree(BiTree &T) {char ch;ch = cin.get();if(ch == ' ') {T = NULL;}else {if(ch == '\n') {cout << "输入未结束前不要输入回车,""要结束分支请输入空格!" << endl;}else {//生成根结点T = (BiTNode * )malloc(sizeof(BiTNode));if(!T)cout << "内存分配失败!" << endl;T->data = ch;//构造左子树CreateBiTree(T->lchild);//构造右子树CreateBiTree(T->rchild);}}}//输出e的值ElemType PrintElement(ElemType e) { cout << e << " ";return e;}//先序遍历void PreOrderTraverse(BiTree T) { if (T != NULL) {//打印结点的值PrintElement(T->data);//遍历左孩子PreOrderTraverse(T->lchild);//遍历右孩子PreOrderTraverse(T->rchild);}}//中序遍历void InOrderTraverse(BiTree T) {if (T != NULL) {//遍历左孩子InOrderTraverse(T->lchild);//打印结点的值PrintElement(T->data);//遍历右孩子InOrderTraverse(T->rchild);}}//后序遍历void PostOrderTraverse(BiTree T) { if (T != NULL) {//遍历左孩子PostOrderTraverse(T->lchild);//遍历右孩子PostOrderTraverse(T->rchild);//打印结点的值PrintElement(T->data);}}//按任一种遍历次序输出二叉树中的所有结点void TraverseBiTree(BiTree T, int mark) {if(mark == 1) {//先序遍历PreOrderTraverse(T);cout << endl;}else if(mark == 2) {//中序遍历InOrderTraverse(T);cout << endl;}else if(mark == 3) {//后序遍历PostOrderTraverse(T);cout << endl;}else cout << "选择遍历结束!" << endl;}//输入值并执行选择遍历函数void ChoiceMark(BiTree T) {int mark = 1;cout << "请输入,先序遍历为1,中序为2,后序为3,跳过此操作为0:";cin >> mark;if(mark > 0 && mark < 4) {TraverseBiTree(T, mark);ChoiceMark(T);}else cout << "此操作已跳过!" << endl;}//求二叉树的深度int BiTreeDepth(BiTNode *T) {if (T == NULL) {//对于空树,返回0并结束递归return 0;}else {//计算左子树的深度int dep1 = BiTreeDepth(T->lchild);//计算右子树的深度int dep2 = BiTreeDepth(T->rchild);//返回树的深度if(dep1 > dep2)return dep1 + 1;elsereturn dep2 + 1;}}int _tmain(int argc, _TCHAR* argv[]){BiTNode *bt;bt = NULL; //将树根指针置空cout << "输入规则:" << endl<< "要生成新结点,输入一个字符,""不要生成新结点的左孩子,输入一个空格,""左右孩子都不要,输入两个空格,""要结束,输入多个空格(越多越好),再回车!"<< endl << "按先序输入:";CreateBiTree(bt);cout << "树的深度为:" << BiTreeDepth(bt) << endl;ChoiceMark(bt);return 0;}/*----------------------------------------* 05-2_构造二叉树.cpp -- 构造二叉树的相关操作* 对构造二叉树的每个基本操作都用单独的函数来实现* 水上飘2009年写----------------------------------------*/// ds05-2.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>#define STACK_INIT_SIZE 100 //栈的存储空间初始分配量#define STACKINCREMENT 10 //存储空间分配增量typedef char ElemType; //元素类型using namespace std;typedef struct BiTNode {ElemType data; //结点值BiTNode *lchild, *rchild; //左右孩子指针}BiTNode, *BiTree;typedef struct {BiTree *base; //在栈构造之前和销毁之后,base的值为空BiTree *top; //栈顶指针int stacksize; //当前已分配的存储空间,以元素为单位}SqStack;//构造一个空栈void InitStack(SqStack &s) {s.base = (BiTree *)malloc(STACK_INIT_SIZE * sizeof(BiTree));if(!s.base)cout << "存储分配失败!" << endl;s.top = s.base;s.stacksize = STACK_INIT_SIZE;}//插入元素e为新的栈顶元素void Push(SqStack &s, BiTree e) {//栈满,追加存储空间if ((s.top - s.base) >= s.stacksize) {s.base = (BiTree *)malloc((STACK_INIT_SIZE+STACKINCREMENT) * sizeof(BiTree));if(!s.base)cout << "存储分配失败!" << endl;s.top = s.base + s.stacksize;s.stacksize += STACK_INIT_SIZE;}*s.top++ = e;}//若栈不空,则删除s的栈顶元素,并返回其值BiTree Pop(SqStack &s) {if(s.top == s.base)cout << "栈为空,无法删除栈顶元素!" << endl;s.top--;return *s.top;}//按先序输入字符创建二叉树void CreateBiTree(BiTree &T) {char ch;//接受输入的字符ch = cin.get();if(ch == ' ') {//分支结束T = NULL;} //if' 'endelse if(ch == '\n') {cout << "输入未结束前不要输入回车,""要结束分支请输入空格!(接着输入)" << endl;} //if'\n'endelse {//生成根结点T = (BiTNode * )malloc(sizeof(BiTree));if(!T)cout << "内存分配失败!" << endl;T->data = ch;//构造左子树CreateBiTree(T->lchild);//构造右子树CreateBiTree(T->rchild);} //Create end}//输出e的值,并返回ElemType PrintElement(ElemType e) {cout << e << " ";return e;}//中序遍历二叉树的非递归函数void InOrderTraverse(BiTree p, SqStack &S) {cout << "中序遍历结果:";while(S.top != S.base || p != NULL) {if(p != NULL) {Push(S,p);p = p->lchild;} //if NULL endelse {BiTree bi = Pop(S);if(!PrintElement(bi->data))cout << "输出其值未成功!" << endl;p = bi->rchild;} //else end} //while endcout << endl;}int _tmain(int argc, _TCHAR* argv[]){BiTNode *bt;SqStack S;InitStack(S);bt = NULL; //将树根指针置空cout << "老师要求的二叉树序列(‘空’表示空格):""12空空346空空空5空空,再回车!"<< endl << "请按先序输入一个二叉树序列(可另输入,但要为先序),""无左右孩子则分别输入空格。

高中物理实验(5)探究作用力与反作用力的关系 (共9张PPT)

高中物理实验(5)探究作用力与反作用力的关系 (共9张PPT)
实验(5):探究作用力与反作用力的关系
一、实验原理图
二、基本实验要求 1.实验目的 (1)通过实验探究作用力与反作用力之间的关系。 (2)体验用力传感器研究作用力与反作用力关系的方法。
2.实验原理 (1)用弹簧测力计探究作用力与反作用力的关系。
甲 如图甲所示,任取A、B两把弹簧测力计,使两挂钩钩住,B固定,A用手拉着, 弹簧测力计A受到B的拉力为FBA,弹簧测力计B受到A的拉力为FAB,读出此时 两弹簧测力计的示数FA和FB,比较FA和FB的大小和方向。 乙 如图乙所示,将两个弹簧测力计挂钩钩住,B连接一块木块,A用手拉着,探 究在水平方向运动时,FA和FB的大小和方向。
(2)用力传感器探究作用力与反作用力的关系。
如图,用两只力传感器钩住对拉,从计算机屏幕上所显示的力和时间关系 图线中读出不同时刻两只力传感器间的相互作用力FA和FB,比较FA和FB的大 小和方向。 3.实验器材 弹簧测力计3个、包装用泡沫塑料若干、小刀1把、木块1块、力传感器2 只、数据采集器1台及计算机1台等。
考点1
考点2
(2)在弹簧测力计的指针下面放上一点泡沫塑料的作用是 。 A.为了增大指针受到的阻力 B.可以帮助我们记录下指针示数的最大值 关闭 C.防止指针与弹簧测力计外壳间的摩擦 (1)D. 弹簧测力计 A对B的拉力与B对A的拉力大小关系与运动状态无关,作用力与反 防止测的力超过弹簧测力计的测量范围
4.实验步骤 (1)用弹簧测力计探究作用力与反作用力的关系。 ①探究静止状态时物体间的作用力与反作用力。 ②增加弹簧测力计的“记忆功能”,即在弹簧测力计的指针下面放上一点泡 沫塑料,探究沿水平方向运动时物体 间作用力与反作用力。 (2)用力传感器探究作用力与反作用力的关系 ①探究静止状态时物体间的作用力与反作用力。 ②探究沿水平方向运动时物体间的作用力与反作用力。 ③探究沿竖直方向运动时物体间的作用力与反作用力。

大学计算机实验五报告

大学计算机实验五报告

实验五课程名称:大学计算机实验项目名称:Excel的应用2. 对一列数据进行通过excel求和函数进行求和,对另一列数据求最大值。

1)输入两列数据,单击需要算出和的单元格,进入功能区的“公式”,点击“插入函数”,在弹出的对话框中选择“Sum”函数,点击确定后在随后的对话框中选择求和的数的范围,再次点击确认即可。

2)单击需要算出和的单元格,进入功能区的“公式”,点击“插入函数”,在弹出的对话框中选择“Max”函数,点击确定后在随后的对话框中选择求最大值的数的范围,再次点击确认即可。

3. 验证数据有效性,验证是否有来自“北京”“上海”之外的地区(P127)1)选中“地区”那列所有数据,在功能区找到“数据”,在“数据工具”找到“数据验证”,点进去,在弹出的对话框中,在“设置”选项卡里找到“允许”的下拉列表,选择“序列”,在“来源”输入“北京,上海”,其中逗号用半角模式下的英语模式的逗号。

点击确定即可。

如果再次输入“北京,上海”之外的数据就会提示错误,且可以制作下拉菜单。

4. 自动筛选出销售数量大于100000的行(P128~P129)1)点击清单中任意一个单元格,在功能区找到“数据”,在其中找到“筛选”,单击后,找到“销售与数量”旁边的下拉按钮,点进去出来一个菜单,点击“全选”,再在“数字筛选”的下一级菜单中选择“大于”,在点击后弹出的对话框中输入“100000”,点击确定即可,设置完成后可以发现,全部的销售数量都低于100000,故全部都消失。

5.实现案例5-161)输入基础数值如下2)单击E2单元格开始编辑,输入公式“=PMT(B2/12,C2*12,D2)”,按下回车键即可自动计算月供金额。

再选中该单元格,单击右键,在弹出的菜单中找到“设置单元格式”,单击进入,选择第二个格式即可。

3)在B5单元格输入公式“=E2”4)选择数据区域B5:I10,单击“数据”选项卡上的“数据工具”组中的模拟分析的下拉按钮,选择“模拟运算表”,在弹出的对话框中在“输入引用行的单元格”旁输入“D2”,在“输入引用列的单元格”旁输入“C2”点击确定即可。

实验五抽样定理及信号恢复

实验五抽样定理及信号恢复
2. 调节信号源,使其输出f=1KHz,A=1V的三角波;连接 信号源输出端与P41,并把抽样信号Fs(t)的输出端P42 与低通滤波器输入端相连,示波器CH1接原始被抽样 信号输入点P41,CH2接恢复信号输出点TP45,比照观 察信号恢复情况:
3. 设1KHz的三角波信号的有效带宽为3KHz,Fs(t)信号分 别通过截止频率为fc1和fc2低通滤波器,观察其原信号 的恢复情况,并完成以下观察和记录任务:
1台
四. 实验内容和步骤
1. 抽样信号波形的观测 2. 验证抽样定理与信号恢复
1.抽样信号波形的观测
1. 调节信号源,使之输出f=1KHz,幅度A=3V的三角波; 2. 连接信号源输出端与抽样定理模块上点P41; 3. 拨码开关K401拨至左边; 4. 用示波器观察TP42处抽样信号的波形,调整电位器 5. W41改变抽样频率,使抽样频率分别为3K、6K和12K, 6. 观察并记录这3种情况下抽样信号的波形。
2. 验证抽样定理与信号恢复
信号恢复实验方框图如图5-7:
F(பைடு நூலகம்)
抽样器
FS(t)
S(t)
低通 滤波器
F’(t)
图5-7 信号恢复实验方框图
1. 分别设计两个有源低通滤波器,电路形式如图5-6所示。 〔利用U43、R43、R44、C42与C41、C43来实现〕分别 设fc1=2KHz,fc2=4KHz,R1=R2=5.1KΩ,试计算C1 和C2值〔计算公式见5-1,5-2〕。
a. 当抽样频率分别为3KHz、6KHz、和12KHz,截止频 率为2KHz时Fs(t)和F'(t)的波形;
b. 当抽样频率分别为3KHz、6KHz、和12KHz,截止频 率为4KHz时Fs(t)和F'(t)的波形;

实验报告5 循环结构

实验报告5 循环结构

实验报告5 循环结构1. 实验目的本次实验主要通过编写程序练习循环结构的使用,包括for循环和while循环,并掌握循环结构在解决问题中的应用。

2. 实验内容2.1 for循环2.1.1 基本语法for循环一般的基本语法如下:pythonfor 变量in 可迭代对象:循环体其中,变量为循环控制变量,可迭代对象为需要遍历的对象,循环体为要执行的操作。

2.1.2 实验步骤本次实验选择使用for循环来实现如下功能:1. 计算1到100之间所有正整数的和。

2. 输出一个400行的矩形,每行有20个星号。

python计算1到100之间所有正整数的和sum = 0for i in range(1, 101):sum += iprint("1到100之间所有正整数的和为:", sum)输出一个400行的矩形,每行有20个星号for i in range(1, 401):print("*", end="")if i % 20 == 0:print()2.2 while循环2.2.1 基本语法while循环的基本语法如下:pythonwhile 循环条件:循环体其中,循环条件为判断条件,当循环条件为True时,执行循环体中的操作。

2.2.2 实验步骤本次实验选择使用while循环来实现如下功能:1. 计算1到100之间所有偶数的和。

2. 输出1到100之间所有的质数。

python计算1到100之间所有偶数的和sum = 0i = 1while i <= 100:if i % 2 == 0:sum += ii += 1print("1到100之间所有偶数的和为:", sum)输出1到100之间所有的质数num = 2while num <= 100:prime = Truefor i in range(2, int(num 0.5) + 1):if num % i == 0:prime = Falsebreakif prime:print(num, end=" ")num += 13. 实验结果运行以上代码,可以得到以下结果:1到100之间所有正整数的和为: 5050...1到100之间所有偶数的和为: 25502 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 4. 实验总结通过本次实验,我学会了使用循环结构来解决问题。

实验活动5 不同价态含硫物质的转化(人教版2019化学必修第二册)

实验活动5 不同价态含硫物质的转化(人教版2019化学必修第二册)

2.硫及其化合物的“价—类”二维图体现了化学变化之美。下列有关说 法正确的是( B )
A.硫在氧气中燃烧直接生成Y B.Z与Cu反应,体现了Z的酸性和强氧化性 C.硫化氢与X反应的氧化产物和还原产物的物质的量之比为1:2 D.N可由其相应单质直接化合生成
3.我国科学家被遴选为“全球青年化学家元素周期表硫元素代言人”。
【实验步骤】 1.硫化钠转化为单质硫 (1)实验操作
(2)实验现象 甲:有_淡__黄__色__沉__淀__生成;乙:紫红色_褪__色__,产生_淡__黄__色__沉__淀__。 (3)实验结论 S2-能被H2SO3溶液及酸性KMnO4溶液_氧__化__生成_单__质__S_。
2.浓硫酸转化为二氧化硫 (1)实验装置及操作
4.已知X为一种常见酸的浓溶液,能使蔗糖粉末变黑。A与X反应的转 化关系如图所示,其中反应条件及部分产物均已略去,则下列有关说法 正确的是( D )
A.X使蔗糖变黑的现象主要体现了X的强氧化性 B.若A为铁,则足量A与X在室温下即可完全反应 C.若A为碳单质,则将C通入少量的澄清石灰水中,最后有白色沉淀 产生
转化前的含硫物质 Na2S H2SO3 H2SO4 S
转化后的含硫物质 S S
SO2 FeS
价态变化 -2→0 +4→0 +6→+4团塞住试管口的作用是什么?
【答案】吸收实验过程中可能产生的有毒气体硫化氢和二氧化硫。 3.铁粉与硫粉在空气中混合燃烧时,可能发生哪些反应?
(3)将SO2通入以下溶液,均会发生颜色变化,其中体现SO2还原 性的是__A___(填序号)。 A.使溴水褪色 B.使品红溶液褪 色有机硫 C.使滴有酚酞的氢氧化钠溶液褪色 D.使氢硫 酸溶液中出现淡黄色浑浊
(4)硫元素的部分转化如图所示。过程①可利用克劳斯法实现,该 法先将部分H2S通过燃烧转化为SO2,再将SO2与剩余的H2S混合。为实 现硫的最大回收,燃烧的H2S和剩余的H2S物质的量之比应为_1_:__2_。过 程②宜在土壤的_富__氧__区实现(填“富氧”或“缺氧”)。

C语言实验五最简单的C语言程序设计

C语言实验五最简单的C语言程序设计

C语⾔实验五最简单的C语⾔程序设计实验5:最简单的C语⾔程序设计⼀、实验⽬的:(1)掌握C语⾔中使⽤最多的⼀种语句——赋值语句的使⽤⽅法。

(2)掌握各种类型数据的输⼊输出的⽅法,能正确使⽤各种格式转换符。

(3)进⼀步掌握编写程序和调试程序的⽅法。

⼆、实验内容和步骤:1、通过下⾯的程序掌握各种格式转换符的正确使⽤⽅法。

(1)输⼊以下程序:/* Note:Your choice is C IDE */# includeint main( ){int a,b;float d,e;char c1,c2;double f,g;long m,n;unsigned int p,q;a=61,b=62;c1='a';c2='b';d=3.56;e=-6.87;f=3157.890121;g=0.123456789;m=50000;n=-60000;p=32768;q=40000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e);printf("f=%15.6f,g=%15.12f\nm=%1d\np=%u,q=%u\n",f,g,m,n,p,q);显⽰结果:(2)运⾏此程序并分析结果。

(3)在此基础上,将程序第10~14⾏改为c1=a,c2=b;f=3157.890121;g=0.123456789;d=f;e=g;运⾏程序,分析结果。

/* Note:Your choice is C IDE */#include"stdio.h"int main(){int a,b;float d,e;char c1,c2;double f,g;long m,n;unsigned int p,q;a=61;b=62;c1=a;c2=b;f=3157.890121;g=0.123456789;d=f;e=g;p=a=m=50000;q=b=n=-60000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e);printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\n",f,g,m,n,p,q);}显⽰结果:(4)⽤sizeof运算符分别检测程序中各类型的数据占多少字节。

《实验活动5不同价态含硫物质的转化》教案、导学案

《实验活动5不同价态含硫物质的转化》教案、导学案

《实验活动5不同价态含硫物质的转化》教案、导学案
一、实验目的:
1、掌握不同价态含硫物质的分析方法;
2、理解不同价态含硫物质的转化和过程;
3、获得针对不同价态含硫物质的调控技术。

二、实验原理:
含硫物质在环境和生物过程中的价态转化具有显著的环境意义。

一般情况下,含硫物质可以以硫酸根、亚硫酸根、亚硫醇等有机形式存在,以及无机形式的硫元素存在。

它们在环境中可以相互转化,也可以由其他无机和有机元素转化而来。

它们可以在植物体内累积、迁移和转化,也可以在土壤、水质中转化并影响物种的生态过程。

三、实验材料和方法:
1、实验可以采用典型的无机、有机含硫物质和硫环物质模拟实验,包括SO
2、H2S、CH3SH、SO42-、HS-等,运用多种仪器设备和技术分析不同价态含硫物质的转化情况;
2、采用一定量的硫元素(或有机物质),放入离心管中,并加足量氯化钠溶液以及除去杂质物质(通常为碳酸根);
3、在不同温度和水溶液条件下,将管子进行加热、离心、分离等操作,得出不同价态含硫物质的分离结果;
4、在各种操作条件下,运用ICP-MS、ICP-OES等仪器,分析不同价态含硫物质的转化情况;
5、根据分析结果,结合实验所使用的操作条件,获得环境中不同价态含硫物质的转化情况及相关调控技术。

四、实验结果:
实验结果可以表明:在硫元素介质下,含硫物质的价态可以从硫酸根和亚硫酸根转变成硫元素形式;在氯化钠介质下,硫元素以及硫酸根和亚硫酸根可以转变成亚硫醇等有机形式存在;
同时,实验可以得出控制不同价态含硫物质在环境中的转化的相关技术,可以有效的调控环境中含硫物质的浓度,从而减少对环境的危害。

最新实验五实验报告

最新实验五实验报告

最新实验五实验报告实验目的:本次实验旨在验证和理解最新的科学理论,通过具体的实验操作来探究现象背后的原理,并记录实验过程中的观察和数据,以便进行后续的分析和讨论。

实验材料:1. 专业实验仪器一套2. 化学试剂若干,包括但不限于实验五所需的特定化学品3. 计量工具,如天平、量筒4. 记录工具,如笔记本、相机或录像设备5. 安全防护装备,如实验服、护目镜、手套实验步骤:1. 准备工作:穿戴好安全防护装备,检查实验仪器是否正常工作,准备所有需要的化学试剂和计量工具。

2. 实验操作:按照实验指导书的步骤,精确计量所需的化学试剂,并按照顺序进行混合或反应。

3. 观察记录:在实验过程中,详细记录下每一步的操作细节,以及观察到的现象和数据变化。

4. 数据分析:对收集到的数据进行初步分析,尝试解释实验现象,并与理论预测进行对比。

5. 结果讨论:基于实验结果,讨论可能的误差来源,以及实验结果对理论的支持或挑战。

6. 实验总结:撰写实验报告,总结实验过程、结果和讨论,提出可能的改进措施和后续研究方向。

实验结果:(此处应填写实验过程中得到的具体数据和观察结果,以及对这些结果的初步分析。

)结论:(此处应总结实验的主要发现,以及这些发现对理解相关科学原理的意义。

)建议:(此处应提出根据实验结果得出的建议,包括如何改进实验设计,以及未来研究的方向。

)注意事项:- 确保所有实验操作符合实验室安全规范。

- 实验数据应准确无误,避免因操作失误导致的误差。

- 实验后应彻底清理实验区域,妥善处理所有化学废物。

(注:以上内容为根据标题“最新实验五实验报告”生成的一般性实验报告框架,具体内容需根据实际实验细节进行填充和调整。

)。

计算机网络实验 (5)精选全文完整版

计算机网络实验 (5)精选全文完整版

可编辑修改精选全文完整版计算机网络实验1. 编程实验(使用NetRiver实验系统)(1)滑动窗口协议实验(见实验指导书的实验1,只做回退N帧实验)(2)IPv4协议收发实验(见实验指导书的实验2)(3)IPv4协议转发实验(见实验指导书的实验3)每位同学只做其中的一个实验,学号mod 3 = 0、1、2的同学分别做实验1、2、3。

程序应通过测试服务器的测试;程序及实验报告应提交到管理服务器供检查。

实验报告包括以下几部分内容:实验目的,协议的工作原理或处理要求,程序流程图。

提交的代码应有必要的注释。

2. 交互式实验(使用NetRiver实验系统)(1)IPv4协议交互实验(见实验指导书的实验11)(2)TCP协议交互实验(见实验指导书的实验14)该实验所有同学都要做。

服务器会自动记录实验结果,不需提交实验报告。

3. 观察实验(使用协议分析工具Wireshark)该实验所有同学都要做。

3.1观察IEEE 802.3帧结构进行实验的主机运行Windows XP操作系统。

通过Wireshark将实验主机的网卡设置为通常模式(非混杂模式),捕捉以下场景中的数据帧:先在命令行下用arp –d命令删除实验主机上的所有ARP表项,接着立即用web浏览器访问Internet上的站点。

1)依次查看捕获的各数据帧,看看目的地为实验主机的数据帧中长度最小的是多大;查看这种帧的各个域,看看前导码是否包含在记录的数据中;记录的数据是从哪个字段开始,至哪个字段结束;这是否验证了IEEE 802.3标准中规定的最小帧长为64字节?2)查看捕获的帧中长度最长的帧。

可以多访问一些网页以捕获更多的帧,看看这些帧的长度最大是多少?为什么?3)查看捕获的数据帧中由实验主机发出的ARP请求帧,查看封装该ARP 请求帧的以太帧的目的地址是多少,源地址是多少;再用ipconfig –all命令查看实验主机的MAC地址,看看是否和源地址一致。

实验五 线性系统的根轨迹

实验五  线性系统的根轨迹

信号分析与控制Signal Analysis and Control实验报告MATLAB仿真实验5线性系统的根轨迹导师:团队成员:电脑序号12&172020.12.11一、实验目的1. 熟悉MATLAB用于控制系统中的一些基本编程语句和格式。

2. 利用MATLAB语句绘制系统的根轨迹。

3. 掌握用根轨迹分析系统性能的图解方法。

4. 掌握系统参数变化对特征根位置的影响。

二、基础知识及MATLAB函数根轨迹是指系统的某一参数从零变到无穷大时,特征方程的根在s平面上的变化轨迹。

这个参数一般选为开环系统的增益K。

课本中介绍的手工绘制根轨迹的方法,只能绘制根轨迹草图。

而用MATLAB可以方便地绘制精确的根轨迹图,并可观测参数变化对特征根位置的影响。

假设系统的对象模型可以表示为11210111()()m mm mn nn nb s b s b s bG s KG s Ks a s b s a-+--++++==++++系统的闭环特征方程可以写成1()0KG s+=对每一个K的取值,我们可以得到一组系统的闭环极点。

如果我们改变K的数值,则可以得到一系列这样的极点集合。

若将这些K的取值下得出的极点位置按照各个分支连接起来,则可以得到一些描述系统闭环位置的曲线,这些曲线又称为系统的根轨迹。

绘制系统的根轨迹rlocus()MATLAB中绘制根轨迹的函数调用格式为:rlocus(num,den) 开环增益k的范围自动设定。

rlocus(num,den,k) 开环增益k的范围人工设定。

rlocus(p,z) 依据开环零极点绘制根轨迹。

r=rlocus(num,den) 不作图,返回闭环根矩阵。

[r,k]=rlocus(num,den) 不作图,返回闭环根矩阵r和对应的开环增益向量k。

其中,num,den分别为系统开环传递函数的分子、分母多项式系数,按s的降幂排列。

K为根轨迹增益,可设定增益范围。

例5-1:已知系统的开环传递函数32(1)()429sG s Ks s s*+=+++,绘制系统的根轨迹的matlab 的调用语句如下:num=[1 1]; %定义分子多项式den=[1 4 2 9]; %定义分母多项式rlocus (num,den) %绘制系统的根轨迹grid %画网格标度线xlabel('Real Axis'),ylabel('Imaginary Axis') %给坐标轴加上说明title('Root Locus') %给图形加上标题名则该系统的根轨迹如图5-1(a)所示。

实验五核磁共振实验

实验五核磁共振实验

实验五核磁共振实验实验五核磁共振(NMR )实验核磁共振现象是⼀种利⽤原⼦核在磁场中的能量变化来获得关于核信息的技术,由美国科学家柏塞尔(E.M.Purcell)和瑞⼠科学家布洛赫(E.Bloch)于1945年12⽉和1946年1⽉分别独⽴发现, 他们共享了1952年诺贝尔物理学奖。

⾃然界约有270种稳定的同位素,其中有105种核具有磁性,可以观察其核磁共振。

研究得⽐较深⼊的有1H ,19F ,13C,11B 等核。

50多年来,由核磁共振转化为探索物质微观结构和性质的⾼新技术已取得了惊⼈的进展。

现今,核磁共振已成为化学、物理、⽣物、医药等研究领域中必不可少的实验⼯具,是研究分⼦结构、构型构象、分⼦动态等的重要⽅法。

⼀、实验⽬的与要求1. 学习核磁共振的基本原理,观测CuSO 4、HF 、FeCl 3等⽔溶液的1H 和19F 核磁共振信号;2. 测量这些溶液中1H 和19F 的g 因⼦及旋磁⽐γ、共振线宽和弛豫时间; 3. 学习⽤核磁共振⽅法测量磁场不均匀性的⽅法;4. 熟练掌握双踪⽰波器的操作,提⾼对实验中多种影响因素进⾏综合分析的能⼒;⼆、实验原理和仪器:1.核磁矩的⼀些基本概念核磁共振(Nuclear Magnetic Resonance ,NMR)的研究对象是具有磁矩的原⼦核,即存在⾃旋运动的原⼦核。

在量⼦⼒学中知道原⼦核的⾃旋⾓动量为:)1(+=I I P (5-1)其中I 为⾃旋量⼦数(对于质⼦I=1/2)、π=2h ,h 为普朗克常数。

相应的核磁矩⼤⼩为 )1I (I g )1I (I M2e g P M 2e g P N +µ=+==γ=µ (5-2)式中g 为朗德因⼦、27N 10050787.5M2e -?==µ J/T ,称核磁⼦、e 为质⼦的电量、M 为质⼦的质量、γ为旋磁⽐,对于确定的核是⼀常数。

不同的核g 值也不同,需要⽤实验测得,如质⼦的g P =5.5851、中⼦的g n =-3.82。

实验五-离体小肠平滑肌的生理特性及药物作用的观察-(2)

实验五-离体小肠平滑肌的生理特性及药物作用的观察-(2)

实验五离体小肠平滑肌的生理特性及药物作用的观察【实验目的】学习一种离体组织器官实验方法;观察离子成分、酸碱度、温度、乙酰胆碱、去甲肾上腺素对离体家兔小肠平滑肌的作用;分析平滑肌活动的某些生理特性及理化环境改变对它的影响。

【实验原理】消化道平滑肌具有自动节律性、较大的伸展性,对化学物质、温度及牵张刺激较为敏感等生理特性。

【实验材料】实验药品:台式液、0.01%去甲肾上腺素溶液、0.01%乙酰胆碱溶液、0.01%阿托品溶液、1.0%氯化钙溶液、1mol/l盐酸溶液、1mol/l氢氧化钠溶液。

实验器材:恒温平滑肌槽、小烧杯、污物杯、张力换能器、双凹夹、温度计、BL-420生物信号系统、丝线等。

【实验步骤】1.恒温浴槽的准备工作;2.标本制备;3.仪器连接与设置;4.启动电脑,打开BL-420生物信号系统,调节参数,开始记录。

观察项目1.自动节律性收缩,描记一段离体小肠平滑肌的收缩曲线,观察其节律性收缩及张力水平。

2.观察胆碱能受体激动剂对肠断收缩的影响及阻断剂的作用。

(1)乙酰胆碱的作用:向浴槽标本管中加入0.01%的乙酰胆碱溶液1~2滴,观察肠管张力和收缩有何变化。

作用产生后,洗涤三次,进行下一项实验。

〔2〕阿托品的作用:向浴槽标本管中加入0.01%的阿托品溶液2~3滴,两分钟后,再加入0.01%的乙酰胆碱溶液1~2滴,观察肠管张力和收缩有何变化。

与〔1〕比较结果后,洗涤三次,待其活动稳定后,进行下一项实验。

3.观察肾上腺素能受体激动剂对肠断收缩的影响及阻断剂的作用。

去甲肾上腺素的作用:向浴槽标本管中加入0.01%的去甲肾上腺素2~3滴,观察肠管张力和收缩有何变化。

然后洗涤三次,待其活动稳定后,进行下一项实验。

4.观察钙离子对肠断收缩的影响向浴槽标本管中加入1%的氯化钙溶液2~3滴,观察肠管平滑肌的反应。

然后洗涤三次,待其活动稳定后,进行下一项实验。

5.观察酸碱度对肠断收缩的影响向浴槽标本管中加入1mol/l的盐酸溶液1~2滴,观察平滑肌的反应,待作用出现明显后,在此基础上,加入1mol/l的NaOH溶液1~2滴,观察平滑肌的反应。

实验5-6报告

实验5-6报告

实验五加减法电路一、实验目的掌握一位全加器的实现逻辑,掌握多位可控加减法电路的实现逻辑,熟悉Logisim 平台基本功能,能在 logisim 中实现多位可控加减法电路。

二、实验内容在 Logisim 模拟器中打开 alu.circ 文件,在对应子电路中利用已经封装好的全加器设计8位串行可控加减法电路,其电路引脚定义如图所示,用户可以直接使用在电路中使用对应的隧道标签,其中 X,Y 为两输入数,Sub 为加减控制信号,S 为运算结果输出,Cout 为进位输出,OF 为有符号运算溢出位。

三、电路框架相关引脚说明:四、实验结果(1)请描述你的电路设计原理(文字),比如用到了整体哪些元件,元件的输入和输出分别是什么,使用该元件的作用或目的是什么。

电路设计原理:将8个一位全加器FA的进位链串联即可得到8位加法器,由于补码符号位也可以参与运算,所以此电路既可以用于有符号数运算,也可以用于无符号数运算,但二者在溢出检测上有一定区别,这里OF的判定以有符号数加法运算是否溢出为标准。

溢出检测:根据运算过程中,最高数据位的进位与符号位的进位位是否一致进行检测。

V= Cd xor Cf。

sub = 0,执行减法操作。

0和二进制数异或运算得到其本身,然后通过一位全加器FA执行加法运算。

sub = 1,执行减法操作。

1和二进制数异或运算相当于对二进制数进行取反操作,然后将sub = 1,传入FA进行+1操作。

(由[y]补求[-y]补,全部位取反后加一)。

高位进位的产生依赖于低位进位的输入,串行进位加法器的速度较慢。

输入:操作数1X的8位数据X7-X0,操作数2Y的八位数据Y7-Y0。

最低位进位Cin,加减法控制项Sub。

输出:运算结果S的八位数据S7-S0,最高位进位Cout,有符号运算溢出判断OF。

(2)改变输入组合如下所示9种情况,观察输出结果是否符合(贴图)。

1.X Y Sub S Cout OF2.1021031003.7f02081014.ff fe 0 fd 105.8182003116.10 df 131007.7f fe 181018.ff 021 fd 109.817e1031123456789实验六快速加法器设计电路一、实验目的掌快速加法器中先行进位的原理,能利用相关知识设计4位先行进位电路,并利用设计的4位先行进位电路构造4位快速加法器,能分析对应电路的时间延迟。

05实验五 刚体转动惯量的测量(新)

05实验五 刚体转动惯量的测量(新)

实验五刚体转动惯量的测量【实验简介】转动惯量是描述刚体转动惯性大小的物理量,是研究刚体转动定律的一个重要物理量,它不仅取决于刚体的总质量,而且与刚体的形状、质量分布以及转轴位置有关。

对于质量分布均匀、形状简单规则的刚体,可以通过数学方法计算绕特定轴的转动惯量;对于质量分布不均匀、形状复杂的刚体,计算转动惯量是相当困难的,通常要用实验的方法来测定其大小。

因此,测定转动体系的转动惯量成为生产实践中经常会遇到的一个课题。

测转动惯量的实验方法较多,如拉伸法、扭摆法、三线摆法等,本实验是利用“塔轮式刚体转动惯量实验仪”来测定刚体的转动惯量。

【实验目的】1.用实验方法验证刚体的转动定律。

2.学会用作图法处理数据。

3.学习测量转动惯量的一种方法。

【实验仪器】刚体转动惯量实验仪,电子秒表、卷尺(米尺)、小挂钩、小槽码(每个5.00g,5~6个)。

图5-1刚体转动实验仪1-气泡水准仪;2-横杆;3-可移动的重锤;4-底座;5-轴固定螺丝;6-塔轮;7-转轴;8-底脚螺丝;9-滑轮;10-滑轮固定螺丝;11-滑轮架;12-指示标志;13-滑轮架固定螺丝;14-砝码实验五 刚体转动惯量的测量2【实验原理】根据转动定律,刚体绕固定轴转动时,刚体的角加速度β与所受的合力矩M 成正比,与转动惯量J 成反比,即:M J β= (5-1)如图所示刚体系(塔轮、横柱和两个质量为0m 的重物)所受外力矩是绳的张力矩及轴上的摩擦力矩。

根据转动定律有:r Tr M J -β= (5-2)式中T 为绳的张力;r 为塔轮的半径;r M 为轴上的摩擦力矩。

以砝码m 为研究对象,根据牛顿第二定律有:-=mg T 'ma (5-3)当滑轮和绳的质量均可忽略,滑轮轴上的摩擦力矩不计时,有:=T T ' (5-4) 当绳与塔轮之间没有相对滑动时,砝码的加速度a 与塔轮的角加速度β的关系为:βa =r (5-5)整理可得 ()-=+r Jam g a r M r(5-6) 若砝码由静止开始下落h 高度所用的时间为t ,则有:212=h at 即 22=ha t(5-7) 将上式代入(2-6)式,可得()22-=+r Jhm g a r M rt(5-8) 在实验过程中,如果满足ga ,上式中a 可忽略,则有:实验五 刚体转动惯量的测量3222=+r M Jhm gr gr t(5-9) 若rM mgr ,略去r M ,则有:222=Jhm gr t(5-10) 下面分两种情况进行讨论。

单片机实验五 -键盘实验

单片机实验五 -键盘实验

电子信息工程系实验报告课程名称:单片机与接口技术实验项目名称:键盘实验 实验时间:2013-5-23班级:通信10 姓名:Microlab_4 学号:实 验 目 的:熟悉keil 仿真软件、proteus 仿真软件的使用和实验板中行列式键盘的使用。

了解并熟悉行列式键盘的电路结构、与单片机的连接方法及其工作原理,理解掌握C51中单片机控制行列式键盘中判断按键是否按下、按键的识别、按键的消抖分别是如何实现的。

实 验 原 理:键盘是单片机系统中通用的输入设备,用于向系统输入数据或控制信息。

键盘中一般矩阵式(行列式)键盘用得较多,适用于按键数量较多的场合。

矩阵式键盘由行线和列线组成,按键位于行线、列线的交叉点上。

当键被按下,则其交点的行线和列线接通。

行和列可分别用两个I/O 口来控制。

判断是否有键按下时,行线通过上拉电阻接+5V 上,而先使所有列线为低电平(I /O 输出0),再读行线状态(输入口),当无键按下时,所有行线为高电平,即读到“全1”数据;当有某键按下时,总会有一根行线为低电平,即读到的数据不全为“1”。

按键的识别(识别键的行列位置)有两种方法:扫描法和反转法。

反转法将行线接一并口,做输出方式;列线接一并口,做输入方式。

使所有行线为低电平(送全“0”),读入列线值,为“0”的那列,即按键所在列;反过来,使行线做输入方式,列线做输出方式。

将刚读到的列线值输出,然后读行线值,为“0”的那行,即按键所在行。

编程时使用P1=0x0f;m=P1;P1=0xf0;n=P1;mn=m|n;即可得到按键的键值,每一个按键都有自己唯一的键值。

按键或键盘都是一个机械开关,键的按下和放开是利用机械触点的闭合和断开来实现的。

由于机械触点的弹性作用,一个按键开关在闭合及断开瞬间均有一连串的抖动,抖动的时间长短由按键的机械特性决定,一般为5~10ms。

为了确保按键动作只确认一次,必须消除抖动的影响。

一般采用延时的方法。

实验5数据的描述性分析(二)

实验5数据的描述性分析(二)

实验5数据的描述性分析(二)一、实验目的:1.掌握定量数据的描述性统计分析中常用的指标(1)集中趋势:众数、中位数median()、四分位数、百分位数quantile()、(加权)平均数(weigthted.)mean()(2)分散程度:极差range()、半极差、方差var()、标准差sd()、变异系数、标准误(3)分布形态:偏度系数、峰度系数2.掌握R语言绘直方图、茎叶图和箱线图的方法。

二、实验内容:练习:要求:①完成练习并粘贴运行截图到文档相应位置(截图方法见下),并将所有自己输入文字的字体颜色设为红色(包括后面的思考及小结),②回答思考题,③简要书写实验小结。

④修改本文档名为“本人完整学号姓名1”,其中1表示第1次实验,以后更改为2,3,...。

如文件名为“1305543109张立1”,表示学号为1305543109的张立同学的第1次实验,注意文件名中没有空格及任何其它字符。

最后连同数据文件、源程序文件等(如果有的话,本次实验没有),一起压缩打包发给课代表,压缩包的文件名同上。

截图方法:法1:调整需要截图的窗口至合适的大小,并使该窗口为当前激活窗口(即该窗口在屏幕最前方),按住键盘Alt键(空格键两侧各有一个)不放,再按键盘右上角的截图键(通常印有“印屏幕”或“Pr Scrn”等字符),即完成截图。

再粘贴到word文档的相应位置即可。

法2:利用QQ输入法的截屏工具。

点击QQ输入法工具条最右边的“扳手”图标,选择其中的“截屏”工具。

)1.自行完成教材中相应的例题。

2.(习题3.7)画出习题3.3中小鸡增重的直方图(1) 小区间的宽度为0.lg,起点为3.55g,终点为4.95g。

纵坐标是频数,并将频数标在直方图的上方(类似图3.6(a));(1)源代码:hist(x,col="lightblue",borde="red",+ xlab="小鸡增重量(g)",breaks=14,+ labels=TRUE,xlim=c(3.55,4.55))运行结果或截图:(2)将(1)中直方图的纵坐标改为频率,并将数据的概率密度曲线和正态分布密度曲线同时画在直方图上(类似图 3.6(b))。

高能粒子探测实验--实验报告5

高能粒子探测实验--实验报告5

高能粒子探测实验五:闪烁体中光的衰减长度测量张威震(清华大学工程物理系核21班)一、实验目的1.学习使用示波器测量电荷大小的方法2.学习利用分布求平均值的方法二、实验原理光通过不同厚度介质与光强的关系为0xI I eλ-=其中λ为样品的衰减长度。

X为穿过的距离,I0为初始光强强度。

μ子穿过闪烁体的规律与此类似,μ子强度越大,在该处损失的能量越多,电离产生的电荷越多。

实验中通过测量闪烁体不同位置的μ子触发信号的电荷量的平均值,得到μ子穿过闪烁体时,在闪烁体中的强度分布,通过拟合,得出闪烁体的衰减长度。

三、实验内容实验装置为如图的两重符合电路。

符合输出到示波器上,通过示波器测量脉冲信号的电荷,得到μ子在该位置时产生的电荷的平均值,移动滑块,得到不同位置的电荷分布。

实验时将滑块从闪烁体的一端移动到另一端,共测量5个点,每个测量约50个信号,最后拟合得到衰减长度。

图 1 实验装置简图四、实验分析实验得到的数据如下表。

表 1 实验原始数据x(cm)140 115 84 60 30peak(mV) 236.3 216.6 153.7 129.4 25.9 164.3 429.4 156.6 100.8 39.8 398.3 535.1 99.4 56.0 26.9 434.3 115.1 125.1 50.8 72.7 398.3 427.9 182.3 44.1 32.2 380.3 240.8 103.7 106.2 31.2 92.3 329.4 90.8 25.9 58.8 256.0 212.3 169.4 95.7 33.6 200.0 33.7 27.9 79.0 31.774.3 69.0 115.1 96.5 76.9417.0 206.6 67.9 48.9 62.2302.2 565.1 413.7 202.1 32.6412.3 296.6 67.9 72.7 72.283.7 109.4 242.3 92.5 33.6176.6 102.3 262.3 161.6 49.3435.1 25.1 143.7 23.5 32.8308.0 53.7 186.6 40.0 26.243.7 170.8 76.6 51.3 23.3113.7 249.4 143.7 36.2 44.0455.1 27.9 179.4 59.2 52.858.0 270.8 122.3 102.0 59.182.3 310.8 112.3 31.2 39.1306.6 69.4 108.0 39.4 47.673.7 45.1 38.0 57.6 21.922.3 39.4 180.8 107.0 37.6192.3 250.8 95.1 39.4 44.3166.6 292.3 85.1 89.4 71.486.6 28.0 156.6 95.7 122.8363.7 417.0 55.8 55.2 37.662.3 40.8 130.8 92.6 70.6135.1 178.0 137.9 83.8 34.266.6 302.0 32.8 159.8 28.0190.9 329.0 72.3 61.6 20.0680.9 33.7 76.6 350.6 28.0122.3 386.6 160.8 100.5 63.375.1 213.7 119.4 64.0 28.1365.1 109.4 76.6 137.0 159.5289.4 13.7 356.6 141.7 24.829.3 140.8 106.6 142.7 40.950.3 295.1 206.5 229.0 26.7303.7 116.6 222.3 264.8 52.4453.7 216.6 80.4 386.9 63.330.0 159.4 58.0 276.9 31.2701.8 626.6 78.0 34.6 53.3130.8 40.8 176.6 67.1 24.8130.8 258.0 98.0 58.4 32.4382.3 396.1 115.1 80.6 99.0386.6 323.7 33.7 35.4 34.7237.9 317.9 56.6 52.1 20.5255.1 117.9 323.7 35.4 87.6若直接求每一组数据的平均值,则会有较大的误差,我们通过直方图分析每一组数据,剔除远离数据中心的数据。

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

实验五第3章MATLAB程序设计第二节程序控制结构程序控制结构有三种:顺序结构、旋择结构、循环结构.任何复杂的程序都可以由这三种基本结构构成.Matlab提供了实现控制结构的语句,利用这些语句可以编写解决实际问题的程序.一、顺序结构顺序结构是指按照程序中语句的排列顺序从上到下依次执行,直到程序的最后一个语句如例1的qiu文件和例2的dd1文件.这是最简单的一种程序结构.一般涉及数据的输入、计算或处理、数据的输出等内容.1. 数据的输入通过input命令来接收从终端输入的内容,它也可以显示文本和提示.命令集14 输入命令input(out ,in)在屏幕上显示出字符串out的文本并等待终端的输入.如果变量in是's',则输入的内容以字符串的形式进行保存,通常MATL AB在保存前要尽可能地求出表达式的值.如果使用格式控制符号如'\n',字符串out可以是若干行.2. 数据的输出可以通过简单地输入变量的名字来显示数字矩阵或者字符串向量的内容,结果将显示出变量的名字和内容.另一种显示变量的值就是使用命令disp.使用它只显示出变量的内容,这是有用的,特别是在字符串的应用中.命令集15显示命令disp(A)显示矩阵A的内容,如果A是字符串,则显示出它的文本.二、循环结构循环结构是按照给定的条件,重复执行指定的语句.Matlab用于实现循环结构的语句有for — end语句和while — end语句.1.for —end语句for-end语句的格式为:for 循环变量=表达式1 : 表达式2 : 表达式3循环体语句end其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值.步长为1时,表达式2可以省略.循环语句应用时应注意:● 循环语句可以嵌套使用;● 不能在 for — end 循环体内改变循环变量的值; ● 为了提高代码的运行效率,应尽可能提高代码的向量化程度,避免 for — end 循环的使用,如例8;● 如果预先就知道循环的次数,则可以采用 for — end 循环;否则,如果预先无法确定循环的次数,则可以使用 while — end 循环.2. while — end 循环while-end 语句的一般格式为:while (条件) 循环体语句 end 其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环.■例1 使用while-end 结构计算1+2+3+…+100 . 解:■例2 计算 Matlab 中 eps 值 (exp1.m) 解:s=0;for i=1:100 s=s+i; end ss=0; i=1;while i<=100 s=s+i; i=i+1; end snum=0; EPS=1; while (1+EPS)>1 EPS=EPS/2; num=num+1; endEPS,num三、选择结构选择结构是根据给定的条件成立或不成立,分别执行不同的语句.Matlab 用于实现选择结构的语句有条件语句:if –end 和 开关语句:switch-end .1.单分支结构 if —end 语句 2.双分支结构 if —else —end 语句 if-end 语句的格式为: if-else-end 语句的格式为:3.多分支结构 if — elseif — else — end 语句 if — elseif — else — end 语句的格式为:if 条件表达式 语句组 endif 条件表达式 语句组1 else语句组2 endif 条件表达式1 语句组1 elseif 条件表达式 2 语句组2 ... ...elseif 条件表达式 m 语句组m else 语句组end■例3求函数1;00;1;x y x x -<⎧⎪= =0⎨⎪ >⎩ ,输入x 值,输出y 值.解:■例4一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数.输出全部水仙花数.解:程序如下运行结果:153 370 371 407function y=fuhao(x) if x<0 y=-1; elseif x==0 y=0; else y=1; endA=[];for m=100:999m1=fix(m/100); %求m 的百位数字 m2=rem(fix(m/10),10); %求m 的十位数字 m3=rem(m,10); %求m 的个位数字 if m==m1*m1*m1+m2*m2*m2+m3*m3*m3 A=[A,m];endend disp(A)4. switch-end 语句根据表达式的不同取值,分别执行不同的语句.其格式如下:■关于 switch-end 语句的几点注解:● Matlab 首先计算表达式的值,然后将它依次与各个case 指令后的检测值进行比较,当比较结果为真时,就执行相应的语句组,然后跳出 switch-end 结构● 如果所有的比较结果都为假,则执行 otherwise 后面的语句组,然后跳出 switch-end 结构 ● otherwise 指令可以不出现● switch 后面的表达式的值可以是一个标量或字符串 ● case 指令后的检测值超过一个时,应用{}括起来switch 表达式 case 值1 语句组1 case 值2 语句组2 ... ... case 值m 语句组m otherwise 语句组n end■例5 阅读程序method=input('请输入方法名:')switch methodcase {'linear','bilinear'}disp('Method is linear')case 'cubic'disp('Method is cubic')case 'nearest'disp('Method is nearest')otherwisedisp('Unknown method.')end■例6用switch-end语句编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩,设:90分以上为…A‟, 80~89分为…B‟,70~79分为…C‟,60~69分为…D‟,60分以下为…E‟.function sctole(score)grade=fix(score/10);switch gradecase {10,9}grade='A'case 8grade='B'case 7grade='C'case 6grade='D'otherwisegrade='E'end四、其他流程控制语句●break语句●continue语句●return语句●try语句●echo命令●keyboard命令●pause命令1.break和continue语句与循环结构相关的语句还有break语句和continue语句.它们一般与if语句配合使用.break语句用于终止循环的执行.当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句后的下一语句.continue语句控制跳过循环体中的某些语句.当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环. ■例7求[100,200]之间第一个能被21整除的整数.for n=100:200if rem(n,21)~=0continueendbreakendn for n=100:200if rem(n,21)==0breakendendn2.try语句语句格式为:try语句组1catch语句组2endtry语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2.这种试探性执行语句是其他高级语言所没有的.■例8矩阵乘法运算要求两矩阵的维数相容,否则会出错.先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘.function C=rc(A,B)%A,B为矩阵tryC=A*B;catchC=A.*B;endlasterr %显示出错原因3.请求键盘输入命令keyboard暂停运行程序并处于等待键盘输入状态(便于调试及程序运行中修改变量),键入“return”程序继续运行.如运行如下:4. echo 命令(在命令窗口,程序调用前使用)一般情况下,M 文件执行时,文件中的命令不会显示在命令窗口.echo 命令可使文件命令在执行时可见.这对程序的调试及演示很有用.对命令文件和函数文件,echo 的作用稍微有些不同.●对命令文件,其格式如下:echo on 打开命令文件的回应命令 echo off 关闭回应命令●对函数文件,其格式如下:echo file on 使指定的file 文件的命令在执行中被显示出来 echo file off 关闭指定文件的命令在执行中的回应function y=f(x) keyboardy=(5*x-6)/((x-3)*(x-3)+2);>> f K>> x=4; K>> return ans = 4.6667>> y=f(4) K>> return y = 4.6667。

相关文档
最新文档