实验5
- 格式:doc
- 大小:62.00 KB
- 文档页数:4
C语言实验五实验报告——数组一、实验目的:1.了解数组的概念和基本使用方法;2.掌握一维数组和二维数组的定义、初始化、赋值及基本运算实现;二、实验内容与方法1.理论部分数组是一些具有相同类型的数据元素按一定顺序排列组合而成的集合,在程序设计中它是一个变量列表,由若干相同数据类型的元素组成。
通常用一个名字和一个下标来表示,下标可理解为数组元素在数组中的位置编号。
数组的特点:数组是根据顺序排列的元素的集合;所有的元素必须是相同类型。
数组的定义方法:1. 定义数组,数组元素类型 + 数组名[元素的个数];2. 元素的个数必须是整型常量或变量,定义时必须明确、指定元素的个数;3. 声明一个数组时,除了要指定数组的类型外,还要指定数组的名称;4. 数组定义完后,需要对其中的每个元素进行初始化。
可以在定义数组时赋初值,也可以通过赋值符号,对数组元素逐个进行赋值。
数组的初始化:1. 元素个数之间用逗号分开,最后1个元素后无逗号;2. 支持部分元素初始化;3. 定义和初始化可以一步完成。
二维数组数组可分为一维和多维数组。
一维数组可以看作是包含多个元素的向量,而二维数组可以看做是包含了多个一维数组的矩阵。
二维数组有行号和列号,因此,它同样需要两个下标。
数组元素类型数组名[行数][列数];数组元素类型数组名[ ][ ] = { {元素1, 元素2, ……}, {元素1, 元素2, ……}, ……{元素1, 元素2, ……}}2.实验代码**问题1:**定义一个一维数组a,包含有5个元素,分别为1,2,3,4,5;**问题2:**定义一个一维数组a,接收用户从键盘输入的5个数值,分别打印存储的各个元素。
三、实验结果与分析结果分析:定义了一个5个元素的一维数组a,并初始化了各个元素的值,其元素分别为1,2,3,4,5.循环遍历一遍数组a,并打印数组元素。
程序执行正常。
3.针对问题3:定义一个二维数组a,由4行3列组成,每个元素初始化为0,打印存储的各个元素;程序运行结果如下:四、实验总结:该实验主要是通过对C语言数组的理论知识和基本操作进行练习,加深了对数组的了解和掌握。
实验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 << "请按先序输入一个二叉树序列(可另输入,但要为先序),""无左右孩子则分别输入空格。
实验五课程名称:大学计算机实验项目名称: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”点击确定即可。
实验五实验报告实验五实验报告引言:实验五是一项关于物理实验的研究,通过实验数据的收集和分析,我们旨在探究某一特定物理现象或验证某一物理理论。
本次实验的主题是XXXXX(根据实际情况填写),以下将详细介绍实验的目的、实验装置和步骤、实验结果以及对结果的分析和讨论。
一、实验目的本次实验的目的是XXXXX(根据实际情况填写)。
通过实验的进行,我们希望探究XXXXX的规律,并验证相应的物理理论。
同时,通过实验数据的收集和分析,我们还可以对实验装置和测量方法的准确性进行评估。
二、实验装置和步骤本次实验所使用的装置主要包括XXXXX(列举实验装置的名称)。
在实验过程中,我们按照以下步骤进行操作:1. 步骤一:XXXXX(具体操作内容)2. 步骤二:XXXXX(具体操作内容)3. 步骤三:XXXXX(具体操作内容)4. 步骤四:XXXXX(具体操作内容)5. 步骤五:XXXXX(具体操作内容)三、实验结果在实验过程中,我们记录了一系列实验数据,并进行了相关的数据处理。
以下是实验结果的总结:1. 结果一:XXXXX(具体实验结果)2. 结果二:XXXXX(具体实验结果)3. 结果三:XXXXX(具体实验结果)四、结果分析和讨论基于实验结果,我们进行了进一步的分析和讨论。
以下是对实验结果的分析和讨论:1. 分析一:XXXXX(对结果进行详细分析)2. 分析二:XXXXX(对结果进行详细分析)3. 分析三:XXXXX(对结果进行详细分析)通过对实验结果的分析,我们可以得出如下结论:XXXXX(根据实验结果和分析得出结论)。
五、实验误差和改进在实验过程中,我们还需要对实验误差进行评估,并提出相应的改进方法。
以下是对实验误差和改进的讨论:1. 误差评估:XXXXX(对实验误差进行评估)2. 改进方法:XXXXX(提出改进方法)通过对实验误差的评估和改进方法的提出,我们可以进一步提高实验的准确性和可靠性。
结论:通过本次实验,我们成功地实现了实验目的,并得出了相应的结论。
实验五:数据库综合查询一、实验目的1.掌握SELECT语句的基本语法和查询条件表示方法;2.掌握查询条件种类和表示方法;3.掌握连接查询的表示及使用;4.掌握嵌套查询的表示及使用;5.了解集合查询的表示及使用。
二、实验环境已安装SQL Server企业版的计算机(120台);具有局域网环境,有固定IP;三、实验学时2学时四、实验要求1.了解SELECT语句的基本语法格式和执行方法;2.了解连接查询的表示及使用;3.了解嵌套查询的表示及使用;4.了解集合查询的表示及使用;5.完成实验报告;五、实验内容及步骤1.利用Transact-SQL嵌套语句实现下列数据查询操作。
1) 查询选修了计算机体系结构的学生的基本信息。
select*from studentwhere Sno in(select Sno from coursewhere Cno in(select Cno from sc where Cname='计算机体系结构'))2) 查询年龄比李勇小的学生的学号和成绩。
select a.sno,grade from student a,coursewhere a.sno=course.sno and sage<(select sage from student where sname='李勇')3) 查询其他系中比系编号为‘D1’的学生中年龄最小者要大的学生的信息。
select*from student where dnum<>'D1'AND SAGE>(select min(sage)from student where dnum='D1')4) 查询其他系中比系编号为‘D3’的学生年龄都大的学生的姓名。
select*from student where dnum<>'D3'AND SAGE>all(selectsage from student where dnum='D3')5) 查询‘C1’课程的成绩高于70的学生姓名。
五. 讨论分析当初始值选取离零点较远时将导致算法无法使用,例如第三题,将初始值改为2就无法计算出结果了,显示如下例如求020sin 35=-+-x x e x 的根,其中控制精度1010-=eps ,最大迭代次数40=M ,在steffensen 加速迭代方法的程序中,我们只需改动:it_max=40; ep=1e-10, 其余不变 。
利用以上程序,我们只需输入:phi=inline('exp(5*x)-sin(x)+(x)^3-20');[x_star,index,it]=steffensen(phi,0.5)可得:x_star = 0.637246094753909index = 0it = 41观察上述结果,index = 0,it = 41表明迭代失败,所以使用以上方法估计的时候,应该尽量估计出解的范围,偏离不应过大,距离增加迭代次数增加,也有可能迭代失败六. 改进实验建议根据上述分析,我认为,应该先对函数作一个简图,方便知道解的大概位置,然后我们才将这个大概值代入Newton 法或者Steffensen 中进行求解。
当然,我们可以用其他数学软件实现Newton 迭代法,我们可以用z-z 超级画板,其操作流程为:牛顿迭代法的公式是:x n+1=x n-f(x n)/f'(x n)。
下面我们就用牛顿迭代法设计程序求方程f(x)=ln(x)+2*x-6的近似解。
(一)观察方程f(x)=0的零点位置(1)显示坐标系的坐标刻度。
(2)作出函数y=ln(x)+2*x-6的图像,如下图所示:可以观察到方程的根在区间[2,3]上,我们可以设定近似解的初始值为2。
(二)设计求方程近似解的程序(1)在程序工作区中输入:f(x){ln(x)+2*x-6;}执行后,返回结果为:>> f(x) #这表示在计算机已经完成了函数f(x)的定义。
(2)定义f(x)的导函数g(x),在程序工作区中输入:Diff(f(x),x);执行后,返回结果为:>> 2+1/x #得到了f(x)的导函数。
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不同价态含硫物质的转化》教案、导学案
一、实验目的:
1、掌握不同价态含硫物质的分析方法;
2、理解不同价态含硫物质的转化和过程;
3、获得针对不同价态含硫物质的调控技术。
二、实验原理:
含硫物质在环境和生物过程中的价态转化具有显著的环境意义。
一般情况下,含硫物质可以以硫酸根、亚硫酸根、亚硫醇等有机形式存在,以及无机形式的硫元素存在。
它们在环境中可以相互转化,也可以由其他无机和有机元素转化而来。
它们可以在植物体内累积、迁移和转化,也可以在土壤、水质中转化并影响物种的生态过程。
三、实验材料和方法:
1、实验可以采用典型的无机、有机含硫物质和硫环物质模拟实验,包括SO
2、H2S、CH3SH、SO42-、HS-等,运用多种仪器设备和技术分析不同价态含硫物质的转化情况;
2、采用一定量的硫元素(或有机物质),放入离心管中,并加足量氯化钠溶液以及除去杂质物质(通常为碳酸根);
3、在不同温度和水溶液条件下,将管子进行加热、离心、分离等操作,得出不同价态含硫物质的分离结果;
4、在各种操作条件下,运用ICP-MS、ICP-OES等仪器,分析不同价态含硫物质的转化情况;
5、根据分析结果,结合实验所使用的操作条件,获得环境中不同价态含硫物质的转化情况及相关调控技术。
四、实验结果:
实验结果可以表明:在硫元素介质下,含硫物质的价态可以从硫酸根和亚硫酸根转变成硫元素形式;在氯化钠介质下,硫元素以及硫酸根和亚硫酸根可以转变成亚硫醇等有机形式存在;
同时,实验可以得出控制不同价态含硫物质在环境中的转化的相关技术,可以有效的调控环境中含硫物质的浓度,从而减少对环境的危害。
实验五核磁共振实验实验五核磁共振(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。
实验五离体小肠平滑肌的生理特性及药物作用的观察【实验目的】学习一种离体组织器官实验方法;观察离子成分、酸碱度、温度、乙酰胆碱、去甲肾上腺素对离体家兔小肠平滑肌的作用;分析平滑肌活动的某些生理特性及理化环境改变对它的影响。
【实验原理】消化道平滑肌具有自动节律性、较大的伸展性,对化学物质、温度及牵张刺激较为敏感等生理特性。
【实验材料】实验药品:台式液、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滴,观察平滑肌的反应。
实验五加减法电路一、实验目的掌握一位全加器的实现逻辑,掌握多位可控加减法电路的实现逻辑,熟悉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位快速加法器,能分析对应电路的时间延迟。
实验五:抽样定理1、已知一个连续时间信号f(t)=sinc(t),取最高有限带宽频率f m =1Hz 。
(1)分别显示原连续信号波形和F s =f m 、F s =2f m 、F s =3f m 三种情况下抽样信号的波形; 程序清单: fm=1;Tm=1/fm;dt=0.1; t=-4:dt:4; f=sinc(t);subplot(4,1,1);plot(t,f);axis([min(t),max(t),1.1*min(f),1.1*max(f)]); title('原连续信号和抽样信号'); for i=1:3;fs=i*fm;Ts=1/fs; n=-4:Ts:4; f=sinc(n);subplot(4,1,i+1);stem(n,f,'filled');axis([min(n),max(n),1.1*min(f),1.1*max(f)]);end程序运行结果如下图:课程名称:数字信号处理 实验成绩: 指导教师: 实 验 报 告院系: 信息工程学院 班级: 学号: 姓名:日期: 2011. 11.11-4-3-2-10123400.51原连续信号和抽样信号-4-3-2-10123400.51-4-3-2-10123400.51-4-3-2-1123400.51(2)求解原连续信号和抽样信号的幅度谱;程序清单: dt=0.1;fm=1;Tm=1/fm; t=-4:dt:4; N=length(t); f=sinc(t);wm=2*pi*fm; k=0:N-1; w1=k*wm/N;F1=f*exp(-1i*t'*w1)*dt;subplot(4,1,1);plot(w1/(2*pi),abs(F1));axis([0,max(4*fm),1.1*min(abs(F1)),1.1*max(abs(F1))]); for i=1:3;if i<=2 c=0;else c=1;end fs=(i+c)*fm;Ts=1/fs; n=-4:Ts:4; N=length(n); f=sinc(n); wm=2*pi*fs;w=k*wm/N;F=f*exp(-1i*n'*w)*Ts;subplot(4,1,i+1);plot(w/(2*pi),abs(F));axis([0,max(4*fm),0.5*min(abs(F)),1.1*max(abs(F))]);end程序运行结果如下图:00.511.522.533.540.20.40.60.811.200.51 1.522.533.540.5100.51 1.52 2.53 3.540.20.40.60.8100.51 1.52 2.53 3.540.20.40.60.811.2(3)用时域卷积的方法(内插公式)重建信号。
实验活动5:一定溶质质量分数的氯化钠溶液的配制(含答案)顺平县腰山镇中学学生化学实验报告单实验题目:实验活动5:一定溶质质量分数的氯化钠溶液的配制班级:日期:指导教师:第组姓名:同组人:【实验目的】1、练习配制一定溶质质量分数的溶液。
2、加深对溶质的质量分数概念的理解。
【实验用品】托盘天平、烧杯、玻璃棒、药匙、量筒、胶头滴管。
氯化钠、蒸馏水。
【实验步骤】1、配制质量分数为6%的氯化钠溶液。
(1)计算:配制50g质量分数为6%的氯化钠溶液所需氯化钠和水的质量分别为:氯化钠3g;水47g。
(2)称量:用托盘天平称量所需的氯化钠,放入烧杯中。
(3)量取:用量筒量取所需的水(水的密度可近似看做1g/cm3),倒入盛有氯化钠的烧杯中。
(4)溶解:用玻璃棒搅拌,使氯化钠溶解。
整个配制过程以下图所示。
图9-21配制肯定溶质质量分数的溶液2、配制质量分数为3%的氯化钠溶液。
用已配好的质量分数为6%的氯化钠溶液(密度约为1.04g/cm3),配制50g质量分数为3%的氯化钠溶液。
(想一想:由浓溶液配制稀溶液时,计算的依据是什么?)溶液稀释前后,溶质的质量稳定(1)计算:配制50g质量分数为3%的氯化钠溶液所需质量分数为6%的氯化钠溶液和水的质量分别1为:6%的氯化钠溶液25g(体积24mL);水25g。
(2)量取:用量筒量取所需的氯化钠溶液和水,倒入烧杯中。
(3)混匀:用玻璃棒搅拌,使溶液混合均匀。
3、把配制好的上述两种氯化钠溶液划分装入试剂瓶中,盖好瓶塞并贴上标签(标签中应包括药品名称和溶液中溶质的质量分数),放到试剂柜中。
【问题与交流】1、用托盘天平称量氯化钠时,有哪些注意事项?①称量前先要调平天平的平衡;②调平衡后,在左、右两托盘上应各放一张同样大小的白纸;③要遵循“左物右码”的原则,左边放称量的药品,右边放砝码。
2、用量筒量取液体,读数时应注意什么?读数时视线应与量筒内凹液面的最低处保持水平,既不能仰视读数,也不能俯视读数。
实验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:快速排序
回答问题完整、实验结果(运行结果界面及源程序,运行结果界面放在前面):
#include<iostream.h>
#include<cstring>
#define STUDENT EType
#define KeyType int
struct STUDENT
{
char number[10];
char name[10];
int age;
char sex[10];
char place[10];
};
struct LinearList
{
EType *r;
int length;
int maxsize;
};
void CreatLinearList(LinearList &L,int MaxListSize)
{
L.maxsize=MaxListSize;
L.r=new EType[L.maxsize];
L.length=0;
}
bool InputLinearList(LinearList &L)
{
int i,num;
cout<<"请输入要存储元素的个数:";
cin>>num;
L.length=num;
cout<<endl;
cout<<"请输入存储元素值:";
cout<<endl;
for(i=0;i<L.length;i++)
cin>>L.r[i].age;
return 1;
}
void OutputLinearList(LinearList &L)
{
for(int i=0;i<L.length;i++)
cout<<L.r[i].age<<" ";
cout<<endl;
}
int Partition(EType r[],int low,int high)
{
KeyType StandardKey;
EType temp;
temp=r[low];
StandardKey=r[low].age;
while(low<high)
{
while(low<high&&r[high].age>=StandardKey)
high--;
r[low++]=r[high];
while(low<=high&&r[low].age<=StandardKey)
low++;
r[high--]=r[low];
}
r[--low]=temp;
return low;
}
void Qsort(EType r[],int low,int high)
{
int StandardLoc;
if(low<=high-1)
{
StandardLoc=Partition(r,low,high);
Qsort(r,low,StandardLoc-1);
Qsort(r,StandardLoc+1,high);
}
}
void QuickSort(LinearList &L)
{
Qsort(L.r,0,L.length-1);
}
int main()
{
LinearList L;
int MaxListSize=50;
CreatLinearList(L,MaxListSize);
InputLinearList(L);
cout<<endl<<endl;
cout<<"快速排序前的序列是:"<<endl;
OutputLinearList(L);
cout<<endl<<endl;
QuickSort(L);
cout<<"快速排列后的序列是:"<<endl;
OutputLinearList(L);
return 0;
}。