《数据结构》实验指导(一)
顺序表初始化、创建和输出
一、实验目的
1、学会使用VC6.0的集成开发环境。
2、掌握线性表的顺序存储结构及其编程。
二、实验内容
1、根据下列程序环境的设置,完成顺序表的初始化函数status InitList_Sq(SqList *L)的编写。
#include "stdio.h"
#include "stdlib.h"
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define OVERFLOW -2
typedef int status;
typedef int elemtype; //元素为整型
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef struct{
elemtype *elem;
int length;
int listsize;
}SqList;
status InitList_Sq(SqList *L) //构造一个空的顺序表
{
L->elem=(elemtype*)malloc(LIST_INIT_SIZE*sizeof(elemtype)); if(!L->elem) exit(OVERFLOW);
L->length=0;
L->listsize=LIST_INIT_SIZE;
return OK;
}
2、在第1题的基础上,输入下面的创建顺序表函数。
status create_Sq(SqList *L)
//建立一个顺序表,含有n个数据元素。
{
int m,n;
printf("请输入元素的个数:");
scanf("%d",&n);
for(m=0;m { printf("请输入第%d个元素:",m+1); scanf("%d",&L->elem[m]); L->length++; } return OK; } 3、在第1和第2题的基础上,补充完整输出顺序表中元素和元素个数的输出函数。输出函数框架如下: void output_Sq(SqList L) //输出顺序表及顺序表的长度 { int i; printf("顺序表中的元素是:\n"); for(i=0;i printf("%5d",L.elem[i]); printf("\n"); printf("顺序表的长度是:\n"); printf("%5d",L.length); printf("\n"); } 4、编写主函数对上面各个函数实现调用,并记录程序的运行结果。void main() { SqList La; int n; n=InitList_Sq(&La); if(n==1) printf("初始化成功"); else printf("初始化失败"); n=create_Sq(&La); if(n==1) printf("创建成功"); else printf("创建失败"); output_Sq(La); } 三、实验结果分析与问题回答 回答下列问题: 1、顺序表是存储结构还是逻辑结构?动态存储与静态存储有什么区别?程序中的顺序表是动态还是静态的存储? 答:存储结构;动态存储与静态存储的区别:静态存储通常在变量定义时就分配存储单元并一直保持不变直至整个程序结束。动态存储在程序执行中,使用它时才分配存储单元,使用完立即释放。顺序表示静态存储。 2、写出你的顺序表中结点的结构体定义。 答:结点可以区分结构体。 3、顺序表的插入与删除的时间主要花在什么操作上?它们的时间复杂度分别是多少? 答:时间主要花在移动元素上。当表长为n时,时间复杂度都是O(n) 3、分析上述函数编写中出现的错误以及解决的方法。要求写出各程序或修正后的正确程序,以及各程序的运行结果,并对结果进行分析。 答:1、调试程序中大小不加区分,造成程序运行错误,花了一些时间才检查出来。(例如SqList写成SQList;if写成If。) 2、标点符号}、;忘了写。 测试结果如下图: 三、总结 要求对本次上机及内容,作简要的小结。或写个人的收获与体会。 在课程实验过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。在本次实践中,给我印象最为深刻的是在文件删除程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。老天不会让我太过顺利,他在这最后的时刻设置的障碍,是要考验我的能力,他要置我于死地?在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。没有了柳暗花明的一天,那么我怎么能说经受住了考验 实验三类与对象 1.实验目的 1.掌握类的定义和使用 2.掌握类的定义和对象的声明 3.复习具有不同访问属性的成员的访问方式 4.观察构造函数和析构函数的执行过程 5.学习类的组合使用方法 6.使用VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。 2.实验要求 1.定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU_Rank,定义为enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是MHz的整型数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。 2.定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom 为CDROM类的一个对象,定义并实现这个类。 3. (选做)设计一个用于人事管理的People(人员)类。考虑到通用性这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”定义为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、组合。 3.实验内容 1.首先定义枚举类型CPU_Rank,例如enum CPU_Rank{P1=1, P2, P3, P4, P5, P6, P7},再定义CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等私有数据成员,定义成员函数run、stop,用来输出提示信息,在构造函数和析构函数中也可以输出提示信息。在主程序中定义一个CPU的对象,调用其成员函数,观察类对象的构造与析构顺序,以及成员函数的调用。程序名: 2.使用debug调试功能观察程序的运行流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。 3.调试操作步骤如下: 1)单击Build | Start Debug | Step Into命令,或按下快捷键F11,系统进入单步执行状态,程序开始运行,一个DOS窗口出现,此时Visual Studio 中光标停在main()函数的入口处; 2)从Debug菜单或Debug工具栏中单击Step Over,此时,光标下移,程序准备执行CPU 对象的初始化; 3)单击Step Into,程序准备执行CPU类的构造函数; 4)连续单击Step Over,观察构造函数; 5)此时程序准备执行CPU对象的run()函数,单击Step Into,程序进入run()成员函数,连续单击Step Over,直到回到main()函数。 6)继续执行程序,参照上述的方法,观察程序的执行顺序,加深对类的构造函数、析构函数、成员函数的执行顺序的认识。 7)再试试Debug菜单栏中别的菜单项,熟悉Debug的各种方法。 4.首先定义CPU类(可使用第二题中的CPU类)、RAM类、CDROM类。再定义Computer类; 单片机第一次实验报告 姓名: 学号: 班级: 实验报告 课程名称:微机原理与接口技术指导老师:学生姓名:学号:专业:自动化日期:20140327 地点: 实验一实验名称 1. 实验目的和要求 1.掌握keil软件和STC-ISP 软件的使用方法 2.点亮第一个发光管. 3.点亮1,3,5,7发光管 4.尝试让第一个发光管闪烁. 2. 主要仪器设备 1.一台pc机 2.一个单片机开发板 点亮第一个发光管. #include while(1) } 尝试让第一个发光管闪烁. #include 实验心得:这第一次试验,没准备,所以这次实验一上机啥都不会,也不知道该做啥,在同学的帮助下安装了程序和驱动,代码也是问同学才明白的。第一个代码,通过很顺利,但是测试第二个代码的时候电脑无法连接板子,后来重新安装了驱动才就能连接了。虽然感觉还是好多不懂的,不过还是学到了一些东西,有一点成就感。 计算机程序设计基础(VB)实验指导书主编:刘华伟 单位:信息工程学院 实验报告要求:每次实验要求写实验报告(word电子版),包括实验名称,实验目的,实验内容,所有主要界面(需把界面图贴上,用截图工具)和所有源程序(将代码复制粘贴到word报告里),每次上机课后的周五理论课对上机题目进行讲解,每次上机实验报告要求在上机内结束前提交,如果没做完最迟当天内提交给教师信箱458007844@https://www.doczj.com/doc/348884754.html, 只能用自己的邮箱在这个时间段提交。 提交格式:邮件名和word文件名均为: 公141班张三000000第1次作业 第一次上机课要做实验指导书中前两次实验的内容,将两次上机的实验报告都写在同一个word文档里提交。以后每次上机均做一次实验的内容。 实验一VB6.0环境和程序设计初步 一、实验目的 1.学会使用VB开发环境。 2.学会建立、编辑、运行一个简单的VB应用程序的全过程。 3.掌握变量的概念及使用。 4.通过程序实践结合课堂例子,理解类、对象的概念,掌握属性、事件、方法的应用。 二、实验内容: 1.熟悉VB开发环境的标题栏、菜单栏、工具栏、窗体窗口、属性窗口、工程资源管理器窗口、代码窗口、立即窗口、窗体布局窗口、工具箱窗口的位置以及用法。(此题不需要写实验报告) 2.编写一个四则运算的功能,在界面上输入两个数,并设置加减乘除四个按钮,点击不同的按钮,显示不同的运算结果。 步骤: (1)建立用户界面的对象。 (2)对象属性的设置。 (3)对象事件过程及编程。 (4)保存和运行程序 实验二选择结构程序设计 一、实验目的 1.掌握逻辑表达式的正确书写形式。 2.掌握单分支与双分支语句的使用。 3.掌握多分支条件语句的使用。 4.掌握情况语句的使用与多分支条件语句的区别。 二、实验内容 1.P272实验C的1,2题,界面按自己思路设计。其中第1题要求用两种方法实现。 2.在界面上输入4个数,求最大值和最小值并显示,要求用两种方法实现。提示:先编写求最大值的程序,然后再编写求最小值的程序。 3.输入三门功课的成绩,评定某个学生是否得奖学金。 评奖学金标准如下: 平均分大于95分或两门100分第三门不低于80分。 《计算机组成原理实验》课程 实验报告 实验题目组成原理上机实验 班级1237-小______________ 姓名______________________________ 学号______________________________ 时间2014年5月________ 成绩______________________________ 实验一基本运算器实验 1.实验目的 (1 )了解运算器的组成原理 (2 )掌握运算器的工作原理 2?实验内容 进行逻辑、移位、算术运算将运算结果填入表。 输入数据,根据运算器逻辑功能表 表运算结果表 3.实验原理 本实验的原理如图1-1所示。 运算器内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器A和暂存器B,三个部件同时接受来自A和B的数据(有些处理器体系结构把移位运算器放于算术和逻辑运算部件之前,如ARM),各部件对操作数进行何种运算由控制信号S3-S0和CN来 决定,任何时候,多路选择开关只选择三部件中一个部件的结果作为ALU的输出。如果是影响进位 的运算,还将置进位标志FC,在运算结果输出前,置ALU零标志。ALU中所有模块集成在一片CPLD 中。 图1-1运算器原理图 逻辑运算部件由逻辑门构成,较为简单,而后面又有专门的算术运算部件设计实验,在此对这两个部件不再赘述。移位运算采用的是桶形移位器,一般采用交叉开关矩阵来实现,交叉开关的原理如图1-2所示。 图1-2中显示的是一个4X4的矩阵(系统中是一个8X8的矩阵)。每一个输入都通过开关与一个输出相连,把沿对角线的开关导通,就可实现移位功能,即: (1)对于逻辑左移或逻辑右移功能,将一条对角线的开关导通,这将所有的输入位与所使用的输 出分别相连,而没有同任何输入相连的则输出连接0。 (2)对于循环右移功能,右移对角线同互补的左移对角线一起激活。例如,在4位矩阵中使用 '右1'和‘左3'对角线来实现右循环1位。 (3)对于未连接的输出位,移位时使用符号扩展或是0填充,具体由相应的指令控制。使用另 外的逻辑进行移位总量译码和符号判别。 运算器部件由一片CPLD实现。ALU的输入和输出通过三态门74LS245连到CPU内总线上,另外还有指示灯标明进位标志FC和零标志FZ。请注意:实验箱上凡丝印标注有马蹄形标记 ‘’,表示这两根排针之间是连通的。图中除T4和CLR,其余信号均来自于ALU单元的排线 座,实验箱中所有单元的T1、T2、T3、T4都连接至控制总线单元的T1、T2、T3、T4, CLR都连接至CON单元的CLR按钮。T4由时序单元的TS4提供(时序单元的介绍见附录二),其余控制信号均由CON单元的二进制数据开关模拟给出。控制信号中除T4为脉冲信号外,其余均为电平信号, 其中ALU_B为低有效,其余为高有效。 暂存器A和暂存器B的数据能在LED灯上实时显示,原理如图1-3所示(以A0为例,其 电子科技大学电子工程学院标准实验报告(实验)课程名称MATLAB与数值分析 学生姓名:李培睿 学号:2013020904026 指导教师:程建 一、实验名称 《MATLAB与数值分析》第一次上机实验 二、实验目的 1. 熟练掌握矩阵的生成、加、减、乘、除、转置、行列式、逆、范数等运算 操作。(用.m文件和Matlab函数编写一个对给定矩阵进行运算操作的程序) 2. 熟练掌握算术符号操作和基本运算操作,包括矩阵合并、向量合并、符号 转换、展开符号表达式、符号因式分解、符号表达式的化简、代数方程的符号解析解、特征多项式、函数的反函数、函数计算器、微积分、常微分方程的符号解、符号函数的画图等。(用.m文件编写进行符号因式分解和函数求反的程序) 3. 掌握Matlab函数的编写规范。 4、掌握Matlab常用的绘图处理操作,包括:基本平面图、图形注释命令、 三维曲线和面的填充、三维等高线等。(用.m文件编写在一个图形窗口上绘制正弦和余弦函数的图形,并给出充分的图形注释) 5. 熟练操作MATLAB软件平台,能利用M文件完成MATLAB的程序设计。 三、实验内容 1. 编程实现以下数列的图像,用户能输入不同的初始值以及系数。并以x, y为坐标显示图像 x(n+1) = a*x(n)-b*(y(n)-x(n)^2); y(n+1) = b*x(n)+a*(y(n)-x(n)^2) 2. 编程实现奥运5环图,允许用户输入环的直径。 3. 实现对输入任意长度向量元素的冒泡排序的升序排列。不允许使用sort 函数。 四、实验数据及结果分析 题目一: ①在Editor窗口编写函数代码如下: 湖北汽车工业学院实验报告 班级学号姓名 课程名称完成日期 实验一熟悉Visual C++绘图应用程序的开发过程 一、实验目的 1、熟悉VC6.0开发环境; 2、掌握MFC编程; 3、掌握CDC图形程序库; 4、掌握VC6.0下的简单图形程序的开发过程。 二、实验性质 验证性 三、实验要求 1、认真阅读本次实验的目的,了解本次实验要求掌握的内容; 2、能够根据实验指导书的要求,完成相关的内容; 3、务必掌握绘图程序的开发流程,为今后复杂的图形程序开发做好准备。 四、实验内容 (一)生成绘图应用程序的框架 开发绘图应用程序的第一步是使用AppWizard(程序生成向导)来建立程序的基本框架。AppWizard为框架的建立提供了一系列对话框及多种选项,用户可以根据不同的选项生成自己所需要的应用程序框架。具体步骤如下: 1、从“文件”菜单选择“新建”菜单项,在“新建”对话框中选择“工程”选项卡,从项目类型中选择MFC AppWizard(.exe)。在“位置”文本框中,可直接输入目录名称,或者单击“…”按钮选择已有的目录。在“工程名称”文本框中输入项目的名称,如Draw,其他采用默认值,这时确定按钮变亮,如下图所示: 2、单击确定按钮,弹出“MFC应用程序向导步骤1”对话框,如图所示,选择单文档单选按钮和“中文[中国]”选项,表示要生成以中文为用户界面的单文档(SDI绘图程序)。 3、点击下一步,在随后出现的几个对话框中,都点击下一步,表示采用各项的默认设置,直到出现“MFC应用程序向导步骤6”对话框,如图所示。 4、“MFC应用程序向导步骤6”对话框中默认设置确定了类得名称及其所在文件的名称。用户可以改CdrawApp、CmainFrame和CdrawDoc的文件名称,但不可以改变它们的基类。 单击完成按钮,应用程序向导显示将要创建的文件清单,再单击确定,MFC应用程序向导就自动生成绘图程序的各项源文件了。 MFC应用程序向导设置完后,点击组建按钮,然后再点击执行按钮,就会出现MFC 应用程序向导生成的完整应用程序的基本框架。 北京科技大学计算机与通信工程学院 模式分类第二次上机实验报告 姓名:XXXXXX 学号:00000000 班级:电信11 时间:2014-04-16 一、实验目的 1.掌握支持向量机(SVM)的原理、核函数类型选择以及核参数选择原则等; 二、实验内容 2.准备好数据,首先要把数据转换成Libsvm软件包要求的数据格式为: label index1:value1 index2:value2 ... 其中对于分类来说label为类标识,指定数据的种类;对于回归来说label为目标值。(我主要要用到回归) Index是从1开始的自然数,value是每一维的特征值。 该过程可以自己使用excel或者编写程序来完成,也可以使用网络上的FormatDataLibsvm.xls来完成。FormatDataLibsvm.xls使用说明: 先将数据按照下列格式存放(注意label放最后面): value1 value2 label value1 value2 label 然后将以上数据粘贴到FormatDataLibsvm.xls中的最左上角单元格,接着工具->宏执行行FormatDataToLibsvm宏。就可以得到libsvm要求的数据格式。将该数据存放到文本文件中进行下一步的处理。 3.对数据进行归一化。 该过程要用到libsvm软件包中的svm-scale.exe Svm-scale用法: 用法:svmscale [-l lower] [-u upper] [-y y_lower y_upper] [-s save_filename] [-r restore_filename] filename (缺省值:lower = -1,upper = 1,没有对y进行缩放)其中,-l:数据下限标记;lower:缩放后数据下限;-u:数据上限标记;upper:缩放后数据上限;-y:是否对目标值同时进行缩放;y_lower为下限值,y_upper为上限值;(回归需要对目标进行缩放,因此该参数可以设定为–y -1 1 )-s save_filename:表示将缩放的规则保存为文件save_filename;-r restore_filename:表示将缩放规则文件restore_filename载入后按此缩放;filename:待缩放的数据文件(要求满足前面所述的格式)。缩放规则文件可以用文本浏览器打开,看到其格式为: y lower upper min max x lower upper index1 min1 max1 index2 min2 max2 其中的lower 与upper 与使用时所设置的lower 与upper 含义相同;index 表示特征序号;min 转换前该特征的最小值;max 转换前该特征的最大值。数据集的缩放结果在此情况下通过DOS窗口输出,当然也可以通过DOS的文件重定向符号“>”将结果另存为指定的文件。该文件中的参数可用于最后面对目标值的反归一化。反归一化的公式为: (Value-lower)*(max-min)/(upper - lower)+lower 其中value为归一化后的值,其他参数与前面介绍的相同。 建议将训练数据集与测试数据集放在同一个文本文件中一起归一化,然后再将归一化结果分成训练集和测试集。 4.训练数据,生成模型。 用法:svmtrain [options] training_set_file [model_file] 其中,options(操作参数):可用的选项即表示的涵义如下所示-s svm类型:设置SVM 类型,默 Matlab第一次实验报告 2012029010010 尹康 1. 编程实现以下数列的图像,用户能输入不同的初始值以及系数。并以x,y为坐标显示图像 x(n+1) = a*x(n)-b*(y(n)-x(n)^2); y(n+1) = b*x(n)+a*(y(n)-x(n)^2) 程序代码: n=input('input the number of pionts:'); a=input('input a:'); b=input('input b:'); x=[]; y=[]; x(1)=input('input x1:'); y(1)=input('input y1:'); %输入点数、初始值以及系数for i=2:n x(i)=a*x(i-1)-b*(y(i-1)-x(i-1)^2); y(i)=a*x(i-1)+b*(y(i-1)-x(i-1)^2); %根据已输入的数据进行迭代end figure;plot(x,y,'linewidth',2) axis equal %横纵坐标等比例 text(x(1),y(1),'1st point') %标记初始点 运行结果: 心得体会及改进:在输入某些数据时,所绘曲线可能是一条折线(如:n=5,a=b=x1=1,y1=2)甚至只有一个点(如:n=5,a=b=x1=y1=1),此时可能出现曲线与坐标轴重合或无法看到点的情况,为了更清晰地展现曲线,可以使线宽适当加宽并标记初始点。 2.编程实现奥运5环图,允许用户输入环的直径。 程序代码: 函数circle: %在指定的圆心坐标处,用指定颜色、宽度的线条绘出指定半径、圆心角的弧 function f=circle(r,x,y,color,linw,alp1,alp2) alp=linspace(alp1,alp2); X=r*cos(alp)+x; Y=r*sin(alp)+y; plot(X,Y,color,'linewidth',linw) end 主程序代码: r=input('input r:'); 实验一:PLC认知及PLC编程软件的使用(两学时) 一、实验目的: 1.熟悉典型继电器电路的工作原理及电路接线。 2.熟悉西门子PLC 的组成,模块及电路接线。 3.熟悉西门子STEP 7 编程软件的使用方法。 4.熟悉利用STEP 7 建立项目、硬件组态、编程、编译、下载和运行等设 计步骤。 5.学会用基本逻辑指令实现顺控系统的编程,完成三相异步电机单向运行控 制程序的编制及调试。 二、实验设备: 1.个人PC 机 1 台 2.西门子1214C AC/DC/RLY PLC 1 台 3.西门子CM1241 RS485通信模块 1 台 4.实验操作板 1 块 5.线缆若干 三、实验步骤: 1.参照黑板上的电路接线图,电路连接好后经指导教师检查无误,可以上电 试验。 2.了解西门子PLC 的组成,熟悉PLC的电源、输入信号端I 和公共端 COM、输出信号端Q 和公共端COM;PLC 的编程口及PC 机的串行通讯口、编程电缆的连接;PLC 上扩展单元插口以及EEPROM 插口的连接方法;RUN/STOP开关及各类指示灯的作用等。 2.参照黑板上的电路接线图,电路连接好后经指导教师检查无误,并将 RUN/STOP 开关置于STOP 后,方可接入220V交流电源。 3.在PC 机启动西门子STEP 7编程软件,新建工程,进入编程环境。 4.根据实验内容,在西门子STEP 7编程环境下输入梯形图程序,转换后, 下载到PLC中。 5.程序运行调试并修改。 6.写实验报告。 四、实验内容: 实验1、三相笼型异步电动机全压起动单向运行控制 图1 三相笼型异步电动机全压起动单向运行控制接线图实验2、三相笼型异步电动机全压起动单向运行PLC控制 图2 三相笼型异步电动机全压起动单向运行PLC控制梯形图 五、实验总结与思考: 1.简述S7-1200 PLC的硬件由哪几部分组成。 2.请简要叙述从硬件组态开始到程序下载到PLC进行调试的整个过程。 3.做完本次实验的心得体会; 信号与系统MATLAB第一次实验报告 一、实验目的 1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。 2.学会运用MATLAB表示常用连续时间信号的方法 3.观察并熟悉一些信号的波形和特性。 4.学会运用MATLAB进行连续信号时移、反折和尺度变换。 5.学会运用MATLAB进行连续时间微分、积分运算。 6.学会运用MATLAB进行连续信号相加、相乘运算。 7.学会运用MATLAB进行连续信号的奇偶分解。 二、实验任务 将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。 三、实验内容 1.MATLAB软件基本运算入门。 1). MATLAB软件的数值计算: 算数运算 向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn 为结束值。 矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开; 矩阵的不同行之间必须用分号”;”或者ENTER分开。2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。 举例:计算一个函数并绘制出在对应区间上对应的值。 2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名” 2.MATLAB软件简单二维图形绘制 1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y) 2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表 示第p个区域,表达为subplot(mnp)或者subplot(m,n,p) 3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin]) 4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’) 5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’) 6).输出:grid on 举例1: 举例2: 《计算机组成原理实验》课程实验报告 实验题目组成原理上机实验 班级 1237-小 姓名 学号 时间 2014年5月 成绩 实验一基本运算器实验 1.实验目的 (1)了解运算器的组成原理 (2)掌握运算器的工作原理 2.实验内容 输入数据,根据运算器逻辑功能表1-1进行逻辑、移位、算术运算,将运算结果填入表1-2。 表 1-1运算器逻辑功能表 表1-2运算结果表 3.实验原理 本实验的原理如图1-1所示。 运算器内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器 A 和暂存器 B,三个部件同时接受来自 A 和 B 的数据(有些处理器体系结构把移位运算器放于算术和逻辑运算部件之前,如 ARM),各部件对操作数进行何种运算由控制信号S3…S0和 CN 来决定,任何时候,多路选择开关只选择三部件中一个部件的结果作为 ALU 的输出。如果是影响进位的运算,还将置进位标志 FC,在运算结果输出前,置 ALU 零标志。ALU 中所有模块集成在一片 CPLD 中。 图 1-1 运算器原理图 逻辑运算部件由逻辑门构成,较为简单,而后面又有专门的算术运算部件设计实验,在此对这两个部件不再赘述。移位运算采用的是桶形移位器,一般采用交叉开关矩阵来实现,交叉开关的原理如图1-2所示。 图1-2中显示的是一个 4X4 的矩阵(系统中是一个 8X8 的矩阵)。每一个输入都通过开关与一个输出相连,把沿对角线的开关导通,就可实现移位功能,即: (1)对于逻辑左移或逻辑右移功能,将一条对角线的开关导通,这将所有的输入位与所使用的输出分别相连,而没有同任何输入相连的则输出连接 0。 (2)对于循环右移功能,右移对角线同互补的左移对角线一起激活。例如,在 4 位矩阵中使用‘右1’和‘左3’对角线来实现右循环 1 位。 (3)对于未连接的输出位,移位时使用符号扩展或是 0 填充,具体由相应的指令控制。使用另外的逻辑进行移位总量译码和符号判别。 运算器部件由一片 CPLD 实现。ALU 的输入和输出通过三态门 74LS245 连到 CPU 内总线上,另外还有指示灯标明进位标志 FC 和零标志 FZ。请注意:实验箱上凡丝印标注有马蹄形标记‘’,表示这两根排针之间是连通的。图中除 T4 和 CLR,其余信号均来自于 ALU 单元的排线座,实验箱中所有单元的 T1、T2、T3、T4 都连接至控制总线单元的 T1、T2、T3、T4,CLR 都连接至 CON 单元的 CLR 按钮。T4 由时序单元的 TS4 提供(时序单元的介绍见附录二),其余控制信号均由 CON 单元的二进制数据开关模拟给出。控制信号中除 T4 为脉冲信号外,其余均为电平信号,其中 ALU_B 为低有效,其余为高有效。 暂存器 A 和暂存器 B 的数据能在 LED 灯上实时显示,原理如图1-3 所示(以 A0 为例,其 并行计算上机实验报告题目:多线程计算Pi值 学生姓名 学院名称计算机学院 专业计算机科学与技术时间 一. 实验目的 1、掌握集群任务提交方式; 2、掌握多线程编程。 二.实验内容 1、通过下图中的近似公式,使用多线程编程实现pi的计算; 2、通过控制变量N的数值以及线程的数量,观察程序的执行效率。 三.实现方法 1. 下载配置SSH客户端 2. 用多线程编写pi代码 3. 通过文件传输界面,将文件上传到集群上 4.将命令行目录切换至data,对.c文件进行编译 5.编写PBS脚本,提交作业 6.实验代码如下: #include #include 西电微机原理第二次上机实验报告 学号:姓名: 一、实验目的 1.熟练掌握汇编语言程序设计的方法及上机步骤。 2.掌握算术运算中,十进制数调整指令的应用。 3.掌握子程序的设计方法。 4.掌握DOS功能的调用方法。 二、实验仪器 586微机 1台 三、实验内容 编写求十进制数12678532与21736543之和的程序,并将和以十进制数的形式送屏幕显示。 编程要求与提示: [1] 两个加数均以压缩(组合)十进制数形式存放在ADD1和ADD2为首址的存贮器单元。 [2] 和以压缩十进制数的形式存入SUM以下单元。 [3] 将和送到屏幕显示部分功能的实现采用子程序的形式。 [4] 实验步骤如下: a. 用全屏幕编辑软件建立源程序。 b.用masm.exe汇编程序对源程序进行汇编,形成目标程序。 c. 用link.exe连接程序对目标程序进行连接形成可执行文件。 d. 用DEBUG对连接通过的可执行程序进行调试。 四、实验内容对应的源程序及流程 源程序如下: STACK SEGMENT STACK DB 10H DUP(00) STACK ENDS DATA SEGMENT ADD1 DB 12H,67H,85H,32H ADD2 DB 21H,73H,65H,43H SUM DB 4H DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX, DATA MOV DS, AX MOV AX, DATA MOV ES, AX MOV AX,STACK MOV SS,AX LEA SI, ADD1[3] LEA BX, ADD2[3] LEA DI,SUM[3] MOV CX,4 CLC L1: MOV AL,[SI] ADC AL,[BX] DAA MOV [DI],AL DEC SI DEC BX DEC DI LOOP L1 CALL DISPAL ; ------------EXITPROC: MOV AH,4CH ;结束程序 MOV AH,1 INT 21H ; ------------DISPAL PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSH DI LEA DI,SUM MOV CX,4 DISPAL2: MOV AL,[DI] SHR AL,1 SHR AL,1 SHR AL,1 SHR AL,1 MOV AH,2 MOV DL,AL ADD DL,30H 《C语言程序设计》实验指导书 每次实验(10分)一共100分,最后折合成50分计入最终成绩。 第一次实验(一星期完成) ●内容一:熟悉编译环境和工具 在VS中键入以下的这段程序 1)关键字变色,自动缩近,智能提醒 2)代码风格和注释 3)编译出错,连接出错。修改错误 4)调试,断点,监控变量,进入函数,跳出函数。监控内存,监控堆栈 在linux中键入以下这段程序 1)熟悉VIM程序,gcc编译程序(开两个终端窗口) 2)熟悉GDB调试程序的基本技巧。(list,backstrac; break, watch,delete; next, continue, run; print,set,help) 其中,help命令是一个非常的参考,如果忘记了某条具体的命令,可以随时去参考help命令来得到相关的细节。 3)介绍《鸟歌的私房菜》这本书 ●内容二:登陆https://www.doczj.com/doc/348884754.html,网站,在线提交。 1)熟悉基本的提交方法和规则 2)现场演示反作弊程序的效果 ●程序: 输入:两个整数,用空格分隔, 输出:两个整数的和,计算两个整数的和的功能,要求用函数实现,同时如果输入有错误,例如(12 abc)程序能够给出“error input”的提示。 参考输入: 12 33 参考输出: 45 参考输入: 12 abc 参考输出: error input ●思考和扩展(无标准答案) 如果用户输入12 12abc 如何判断并终止程序,输出“error input”的提示 第二次实验(一星期完成) ●内容一:登陆ACM,演示OJ系统 1)介绍这个网站,有兴趣的同学可以去尝试一下() ●内容二:计算工资/小时程序 1)强制类型转换 2)一共有多少位的算法 3)整形数的溢出,以及针对特定问题,如何解决溢出问题 注意:linux编译下应该加上–lm 开关。 ●程序: 输入:工资数,小时数(整数,空格分隔)。 输出:工资/小时数(精确到小数点后2位),并根据四舍五入取整,然后将取整的数平方后计算一共有几位,后三位分别是什么? 参考输入: 2345 2 ←input (separate by space) 参考输出: 1172.50 ←average salary 1173 ← round off to integer 7 ← number of digit 0 2 5 ← the last three digit (separate by space) 第三次实验(两星期完成) ●内容一:介绍linux 下的grep,并给出相应的实例。重点介绍下面要用到的四个符号。 ●内容二:正则表达式 ^ 代表字符串开始 . 代表任意字符 $ 代表字符串末尾 《Java语言程序设计基础教程》 上机实验指导手册 实验一 Java环境演练 【目的】 ①安装并配置Java运行开发环境; ②掌握开发Java应用程序的3个步骤:编写源文件、编译源文件和运行应用程序; ③掌握开发Java Applet程序的3个步骤:编写源文件、编译源文件和运行Java Applet 程序; ④学习同时编译多个Java源文件。 【内容】 1.一个简单的应用程序 ?实验要求: 编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。 ?程序运行效果示例: 程序运行效果如下图所示: ?程序模板: Hello.java public class Hello { public static void main (String args[ ]) { 【代码1】//命令行窗口输出"你好,很高兴学习Java" A a=new A(); a.fA(); } } class A { void fA() { 【代码2】//命令行窗口输出"We are students" } } ?实验后的练习: 1.编译器怎样提示丢失大括号的错误? 2.编译器怎样提示语句丢失分号的错误? 3.编译器怎样提示将System写成system这一错误? 4.编译器怎样提示将String写成string这一错误? 2.一个简单的Java Applet程序 ?实验要求: 编写一个简单的Java Applet程序,并在Java Applet中写两行文字:“这是一个Java Applet程序”和“我改变了字体”。 ?程序运行效果示例: 程序运行效果如下图所示: ?程序模板: FirstApplet.java import java.applet.*; import java.awt.*; public class FirstApplet extends Applet { public void paint(Graphics g) { g.setColor(Color.blue); 【代码1】//在Java Applet中绘制一行文字:“这是一个Java Applet 程序” g.setColor(Color.red); g.setFont(new Font("宋体",Font.BOLD,36)); 【代码2】//在Java Applet中绘制一行文字:“我改变了字体” } } ?实验后的练习: 5.程序中的主类如果不用public修饰,编译能通过吗? 6.程序中的主类如果不用public修饰,程序能正确运行吗? 7.程序将paint方法误写成Paint,编译能通过么? 8.程序将paint方法误写成Paint,运行时能看到有关的输出信息吗? 3.联合编译 ?实验要求: 编写4个源文件:Hello.java、A.java、B.java和C.java,每个源文件只有一个类,Hello.java是一个应用程序(含有main方法),使用了A、B和C类。将4个源文件保存到同一目录中,例如:C:\100,然后编译Hello.java。 ?程序运行效果示例: 程序运行效果如下图所示: ?程序模板: 模板1:Hello.java public class MainClass { public static void main (String args[ ]) { 实验报告 2. The Branching statements 一、实验目的: 1.To grasp the use of the branching statements; 2.To grasp the top-down program design technique. 二、实验内容及要求: 1.实验内容: 1).编写 MATLAB 语句计算 y(t)的值 (Write the MATLAB program required to calculate y(t) from the equation) ???<+≥+-=0 530 53)(2 2t t t t t y 已知 t 从-5到 5 每隔0.5取一次值。运用循环和选择语句进行计算。 (for values of t between -5 and 5 in steps of 0.5. Use loops and branches to perform this calculation.) 2).用向量算法解决练习 1, 比较这两个方案的耗时。 (tic ,toc 的命令可以帮助你完成的时间计算,请使用'help'函数)。 Rewrite the program 1 using vectorization and compare the consuming time of these two programs. (tic, toc commands can help you to finish the time calculation, please use the …help ? function). 2.实验要求: 在报告中要体现top-down design technique, 对于 3 要写出完整的设计过程。 三、设计思路: 1.用循环和选择语句进行计算: 1).定义自变量t :t=-5:0.5:5; 2).用循环语句实现对自变量的遍历。 3).用选择语句实现对自变量的判断,选择。 4).将选择语句置入循环语句中,则实现在遍历中对数据的选择,从而实现程序的功能。 2. 用向量法实现: 1).定义自变量t :t=-5:0.5:5; 2).用 b=t>=0 语句,将t>=0得数据选择出,再通过向量运算y(b)=-3*t(b).^2 + 5; 得出结果。 3).用取反运算,选择出剩下的数据,在进行向量运算,得出结果。 四、实验程序和结果 1.实验程序 实验程序:创建m 文件:y_t.m 目录 第一次实验 实验二信号放大电路实验 (1) 第二次实验 实验六幅度调制及解调实验 (6) 实验七移相电桥实验 (19) 第三次实验 实验八脉宽调制电路实验 (20) 实验十一开关式相乘调制及解调实验 (12) 第四次实验 实验十二精密全波整流及检波实验 (14) 实验十三开关式全波相敏检波实验 (16) 第五次实验 实验十四锁相环单元实验 (18) 实验十五分频器单元实验 (34) 实验二 信号放大电路实验 一、实验目的 1.研究由集成运算放大器组成的基本放大电路的功能。 2.了解运算放大器在实际应用时应考虑的一些问题。 二、实验原理 集成运算放大器是一种具有电压放大倍数高的直接耦合多级放大电路。当外部接入不同的线性或非线性元器件组成输入和负反馈电路时,可以灵活地实现各种特定的函数关系。在线性应用方面,可以组成反相比例放大器,同相比例放大器,电压跟随器,同相交流放大器,自举组合电路,双运放高共模抑制比放大电路,三运放高共模抑制比放大电路等。 理想运算放大器的特性: 在大多数情况下,将运放视为理想运放,就是将运放的各项技术指标理想化,满足下列条 件(如表2-1所示)的运算放大器称为理想运放。 失调与漂移均为零等。 理想运放在线性应用时的两个重要特性: (1)输出电压U O 与输入电压之间满足关系式:U 0=A ud (U +-U -),而U 0为有限值,因此,(U +-U -)=0,即U +=U -,称为“虚短”。 (2)由于r i =∞,故流进运放两个输入端的电流可视为零,即称为“虚断”。这说明运放对其前级吸取电流极小。 以上两个特性是分析理想运放应用电路的基本原则,可简化运放电路的计算。 1.基本放大电路: 1)反向比例放大器 电路如图2-1所示。对理想运放,该电路的输出电压与输入电压之间的关系为: i 1 F O U R R U - =,为了减少输入级偏置电流引起的运算误差,在同相输入端应接入平衡电阻 R 2=R 1∥R F 图2-1 反向比例放大器 图2-2 同相比例放大器 2)同相比例放大器 电路如图2-2所示。对理想运放,该电路的输出电压与输入电压之间的关系为: 实验一 顺序结构程序设计 【实验日期】 年 月 日 【实验目的】 1. 熟悉VC++6.0调试环境,掌握运行一个C 程序的基本步骤。 2. 掌握基本输入、输出函数的使用。 3. 能够编写简单的顺序结构程序,实现简单的数据处理。 4. 掌握C 程序的查错方法。 【实验内容】 调试示例 改正下列程序中的错误,求华氏温度1000F 对应的摄氏温度。计算公式如下,其中:c 表示摄氏温度,f 表示华氏温度。 源程序(有错误的程序) #include “stdoi.h ” void main() { int c;f; f=100; c=5*(f-32)/9; printf(“f=d,c=%d\n ”,f,c); } 运行结果(改正后程序的运行结果) f=100,c=37 调试过程: (1) 输入源程序。 (2) 使用菜单或工具栏来完成编译、连接和运行操作。 (3) 单击编译(Compile )按钮,编译时出现的第一条错误信息是: Cannot open include file:’stdoi.h ’:no such file or directory 通过拖动信息窗口右侧的滚动块或将信息窗口拉大可查看错误信息。双击该错误信息,箭头指向源程序的第一行,因为“stdio.h ”被误写为“stdoi.h ”。改正为“stdio.h ”后,重新编译,新产生的第一9)32(5-?=f c 条错误信息是:‘f’:undeclared identifier 双击该错误信息,箭头指向源程序的第四行,错误信息指出“f”变量没有被定义。仔细观察后,发现“f”前的分号应该为逗号。将“f”前的分号改为逗号后,重新编译,编译正确。 (4) 单击连接(Build)按钮,连接正确。 (5) 单击运行(Build Execute)按钮,运行结果为:f=d,c=100。 结果不符合题目的要求,仔细检查源程序,发现函数printf中“f=d”的“d”应为“%d”。改正后,重新编译、连接和运行,运行结果与题目要求的结果一致。 ●改错题 改正下列程序中的错误,计算x的平方y,并分别以“y=x*x”和“x*x=y”的形式输出x和y的值。 源程序(有错误的程序) /********************found********************/ #include “stdoi.h” void main() { int y,x; printf(“Input x:”); scanf(“%d”,&x); y=x*x; /********************found**********************/ printf(“%d=%d*%d\n”,x); /********************found**********************/ printf(“%d*%d=%d\n”,y); } 运行结果1(改正后程序的运行结果)运行结果2 Input x:5 Input x:4 25=5*5 16=4*4 5*5=25 4*4=16 ●编程题 1、已知某位学生的数学、英语和计算机课程的成绩分别是82分、78分和91分,求该生3门课的平均成绩。 输出示例: Math=82,eng=78,comp=91,average=83C++上机实验报告实验三
单片机第一次实验报告
2015VB实验指导书
计算机组成原理上机实验报告
《MATLAB与数值分析》第一次上机实验报告
《计算机图形学》新版实验指导书
模式识别第二次上机实验报告
matlab第一次实验报告
西门子PLC实验指导书
MATLAB实验报告(1-4)
计算机组成原理上机实验报告
并行计算第一次实验报告
西电微机原理第二次上机实验报告
C语言实验指导书
广工《Java语言程序设计基础教程》上机实验指导手册(第一次)
matlab实验报告
测控电路实验指导书
C上机实验报告