实验2顺序结构与逻辑运算

实验2顺序结构与逻辑运算
实验2顺序结构与逻辑运算

实验2顺序结构与逻辑运算

实验2 顺序结构与逻辑运算

1.实验目的和要求

(1)掌握数据输入/输出函数的使用,能正确使用各种格式转换符。

(2)熟悉顺序结构程序中语句的执行过程,并学会基本调试程序方法。

(3)能够正确使用逻辑运算符和逻辑表达式。(4)学会运用逻辑表达式或关系表达式等表示条件。

(5)熟练掌握if语句和switch语句,掌握条件表达式构成的选择结构。

(6)熟练掌握跟踪调试程序,针对具体数据组织输入测试数据,观察程序运行能否得到预期的输出结果。

(7)学会编写简单程序。

2.实验内容:实验指导书中的实验三和实验四

3.实验步骤及结果

实验三部分:

3-1-1 该程序正确的源程序代码(或窗口截图):

程序运行结果画面如下:

3-1-2该程序正确的源程序代码(或窗口截图):

程序运行结果画面如下:

3-2-1该程序完整的源程序代码(或窗口截图):

程序运行结果画面如下:

3-2-2该程序完整的源程序代码(或窗口截图):

程序运行结果画面如下:

3-3 注意:这道程序我们不按书中提示进行,而在VC环境下进行调试。

语法错误和逻辑错误的区别何在?

答:

如何启动单步调试?

答:

要使程序运行到“ss=(k…”这一行暂停下来,该如何操作?

答:

怎样终止调试状态(程序复位)?

答:

单步调试状态下,向下运行一条语句的操作方法(分两种情况回答,第一种,跟踪到自定义函数内部,第2种,不跟踪到自定义函数内部):答:

在本题中,假设要在运行第2条语句(即scanf 语句后),要马上观察i,j,k,ss,m,n的变量的值,操作方法:在此填入入答案,请把观察这些变量时的画面粘贴到下面:

通过这道题单步调试,你对i++和++i及i—和—i 应该有了更直观的理解,他们的区别在于:答:

3-4 请回答书中问题

问题(1)字符型

问题(2)

问题(3)

程序运行结果画面如下:

3-5:

运行结果画面:

3-6该程序的源程序代码(或窗口截图)

程序运行结果画面如下:

3-7该程序的源程序代码(或窗口截图):

运行结果画面:

4-1-a该程序正确的源程序代码(或窗口截图):

运行结果画面:

4-1a:

4-1-b该程序正确的源程序代码(或窗口截图):

运行结果画面:

4-1-c该程序正确的源程序代码(或窗口截图):

运行结果画面:

4-2-1该程序完整的源程序代码(或窗口截图):

运行结果画面:

4-2-2该程序完整的源程序代码(或窗口截图):

运行结果画面:

4-3该程序完整的源程序代码(或窗口截图):

运行结果画面:

4-4该程序完整的源程序代码(或窗口截图):

4-4 运行结果画面:

4-5该程序的源程序代码(或窗口截图):

运行结果画面:

*4-6该程序的源程序代码(或窗口截图):

运行结果画面:

4实验小结

1:学会了使用调试改正一些基本语法错误;2:学会了If语句的嵌套和非嵌套得使用;3:掌握了switch的基本用法。

【精品实验报告】软件体系结构设计模式实验报告

【精品实验报告】软件体系结构设计模式实验报告软件体系结构 设计模式实验报告 学生姓名: 所在学院: 学生学号: 学生班级: 指导老师: 完成日期: 一、实验目的 熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括组合模式、外观模式、代理模式、观察者模式和策略模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。 二、实验内容 使用PowerDesigner和任意一种面向对象编程语言实现组合模式、外观模式、代理模式、观察者模式和策略模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。 (1) 组合模式 使用组合模式设计一个杀毒软件(AntiVirus)的框架,该软件既可以对某个文件夹(Folder)杀毒,也可以对某个指定的文件(File)进行杀毒,文件种类包括文本文件TextFile、图片文件ImageFile、视频文件VideoFile。绘制类图并编程模拟实现。 (2) 组合模式 某教育机构组织结构如下图所示: 北京总部 教务办公室湖南分校行政办公室 教务办公室长沙教学点湘潭教学点行政办公室

教务办公室行政办公室教务办公室行政办公室 在该教育机构的OA系统中可以给各级办公室下发公文,现采用 组合模式设计该机构的组织结构,绘制相应的类图并编程模拟实现,在客户端代码中模拟下发公文。(注:可以定义一个办公室类为抽象叶子构件类,再将教务办公室和行政办公室作为其子类;可以定义一个教学机构类为抽象容器构件类,将总部、分校和教学点作为其子类。) (3) 外观模式 某系统需要提供一个文件加密模块,加密流程包括三个操作,分别是读取源文件、加密、保存加密之后的文件。读取文件和保存文件使用流来实现,这三个操作相对独立,其业务代码封装在三个不同的类中。现在需要提供一个统一的加密外观类,用户可以直接使用该加密外观类完成文件的读取、加密和保存三个操作,而不需要与每一个类进行交互,使用外观模式设计该加密模块,要求编程模拟实现。参考类图如下: reader = new FileReader();EncryptFacadecipher = new CipherMachine();writer = new FileWriter();-reader: FileReader-cipher: CipherMachine-writer: FileWriter +EncryptFacade () +fileEncrypt (String fileNameSrc,: voidString plainStr=reader.read(fileNameSrc); String fileNameDes)String

分支与循环程序设计实验报告

分支与循环程序设计实验-报告

————————————————————————————————作者: ————————————————————————————————日期:

实验名称 分支与循环程序设计实验 指导教师 罗志祥 专业班级 光电1406 姓名 段昳晖 学号 U2014***** 联系电话 137******** 一、任务要求 1. 设有8bits 符号数X 存于外部RA M单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。 264/2 106410 X X Y X X X X ?≥? =<

计算机体系结构实验报告二

实验二结构相关 一、实验目得: 通过本实验,加深对结构相关得理解,了解结构相关对CPU性能得影响。 二、实验内容: 1、用WinDLX模拟器运行程序structure_d、s 。 2、通过模拟,找出存在结构相关得指令对以及导致结构相关得部件。 3、记录由结构相关引起得暂停时钟周期数,计算暂停时钟周期数占总执行 周期数得百分比。 4、论述结构相关对CPU性能得影响,讨论解决结构相关得方法。 三、实验程序structure_d、s LHI R2, (A>>16)&0xFFFF 数据相关 ADDUI R2, R2, A&0xFFFF LHI R3, (B>>16)&0xFFFF ADDUI R3, R3, B&0xFFFF ADDU R4, R0, R3 loop: LD F0, 0(R2) LD F4, 0(R3) ADDD F0, F0, F4 ;浮点运算,两个周期,结构相关 ADDD F2, F0, F2 ; < A stall is found (an example of how to answer your questions) ADDI R2, R2, #8 ADDI R3, R3, #8 SUB R5, R4, R2 BNEZ R5, loop ;条件跳转 TRAP #0 ;; Exit < this is a ment !! A: 、double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 B: 、double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 四、实验过程 打开软件,load structure_d、s文件,进行单步运行。经过分析,此程序一 次循环中共有五次结构相关。(Rstall 数据相关Stall 结构相关) 1)第一个结构相关:addd f2,,f0,f2 由于前面得数据相关,导致上一条指令addd f0,f0,f4暂停在ID阶段,所以下一条指令addd f2,,f0,f2发生结构相关,导致相关得部件:译码部件。

实验2顺序结构与逻辑运算

实验2顺序结构与逻辑运算

实验2 顺序结构与逻辑运算 1.实验目的和要求 (1)掌握数据输入/输出函数的使用,能正确使用各种格式转换符。 (2)熟悉顺序结构程序中语句的执行过程,并学会基本调试程序方法。 (3)能够正确使用逻辑运算符和逻辑表达式。(4)学会运用逻辑表达式或关系表达式等表示条件。 (5)熟练掌握if语句和switch语句,掌握条件表达式构成的选择结构。 (6)熟练掌握跟踪调试程序,针对具体数据组织输入测试数据,观察程序运行能否得到预期的输出结果。 (7)学会编写简单程序。 2.实验内容:实验指导书中的实验三和实验四 3.实验步骤及结果 实验三部分: 3-1-1 该程序正确的源程序代码(或窗口截图):

程序运行结果画面如下: 3-1-2该程序正确的源程序代码(或窗口截图): 程序运行结果画面如下:

3-2-1该程序完整的源程序代码(或窗口截图): 程序运行结果画面如下: 3-2-2该程序完整的源程序代码(或窗口截图):

程序运行结果画面如下: 3-3 注意:这道程序我们不按书中提示进行,而在VC环境下进行调试。 语法错误和逻辑错误的区别何在? 答: 如何启动单步调试? 答: 要使程序运行到“ss=(k…”这一行暂停下来,该如何操作? 答: 怎样终止调试状态(程序复位)? 答: 单步调试状态下,向下运行一条语句的操作方法(分两种情况回答,第一种,跟踪到自定义函数内部,第2种,不跟踪到自定义函数内部):答:

在本题中,假设要在运行第2条语句(即scanf 语句后),要马上观察i,j,k,ss,m,n的变量的值,操作方法:在此填入入答案,请把观察这些变量时的画面粘贴到下面: 通过这道题单步调试,你对i++和++i及i—和—i 应该有了更直观的理解,他们的区别在于:答: 3-4 请回答书中问题 问题(1)字符型 问题(2) 问题(3) 程序运行结果画面如下: 3-5: 运行结果画面:

顺序结构实验报告

程序设计基础 实验报告 实验编号 1905B000201 实验名称顺序结构 实验地点软件技术实验室(2) 班级19软嵌2班 学号 姓名

一、实验目的: 1、掌握编程环境的使用 2、掌握基本数据类型、变量的定义和赋值; 3、掌握输入输出语句 4、理解顺序结构的使用 二、实验内容: 问题1: 源代码: #include void main() { int num1,num2,sum,min,mul,yushu; float shang; printf("Enter num1:"); scanf("%d",&num1); printf("Enter num2:"); scanf("%d",&num2); sum=num1+num2; min=num1-num2; mul=num1*num2; shang= (float)num1/num2; yushu=num1%num2; printf("%d+%d=%d\n",num1,num2,sum); printf("%d-%d=%d\n",num1,num2,min);

printf("%d*%d=%d\n",num1,num2,mul); printf("%d/%d=%.2f\n",num1,num2,shang); printf("%d%%%d=%d\n",num1,num2,yushu); return 0; } 输入:5 3 结果: 问题2: 源代码: #include int main() { int time1, time2,m,n; printf("Enter time1:"); scanf( "%d" ,&time1); printf("Enter time2:"); scanf("%d",&time2); m=(time2-time1)/100;

顺序结构与逻辑运算

实验2 顺序结构与逻辑运算 学号:1100730125 姓名:梁业实验日期:2012/4/17 1.实验目的和要求 (1)掌握数据输入/输出函数的使用,能正确使用各种格式转换符。 (2)熟悉顺序结构程序中语句的执行过程,并学会基本调试程序方法。 (3)能够正确使用逻辑运算符和逻辑表达式。 (4)学会运用逻辑表达式或关系表达式等表示条件。 (5)熟练掌握if语句和switch语句,掌握条件表达式构成的选择结构。 (6)熟练掌握跟踪调试程序,针对具体数据组织输入测试数据,观察程序运行能否得到预期的输出结果。 (7)学会编写简单程序。 2.实验内容:实验指导书中的实验三和实验四 3.实验步骤及结果 实验三部分: 3-1-1 该程序的功能是:显示m,n的值。 程序运行结果画面如下: 3-1-2 该程序的功能是:计算S,V的值。 程序运行结果画面如下:

3-2-1 该程序的功能是:计算X,Y的值。 程序运行结果画面如下: 3-2-2 该程序的功能是:计算批,p,q的值 程序运行结果画面如下: 3-3 注意:这道程序我们不按书中提示进行,而在VC环境下进行调试。 语法错误和逻辑错误的区别何在?逻辑错误不一定能得出正确结果。 如何启动单步调试?使用单步跟踪,调试程序。 要使程序运行到“ss=(k…”这一行暂停下来,该如何操作? 设置断点。 怎样终止调试状态(程序复位)?利用Run菜单下的Program reset命令。 单步调试状态下,向下运行一条语句的操作方法(分两种情况回答,第一种,跟踪到自定义函数内部,第2种,不跟踪到自定义函数内部):在此填入入答案 在本题中,假设要在运行第2条语句(即scanf语句后),要马上观察i,j,k,ss,m,n的变量的值,操作方法:在此填入入答案,请把观察这些变量时的画面粘贴到下面: 通过这道题单步调试,你对i++和++i及i—和—i应该有了更直观的理解,他们的区别在于:在此填入入答案 3-4 请回答书中问题 问题(1)二者皆可。

体系结构实验报告

中南大学软件学院 软件体系结构 设计模式实验报告 学生姓名:宋昂 所在学院:软件学院 学生学号: 3901080115 学生班级:软件0801 指导老师:刘伟 完成日期: 2010-12-7

一、实验目的 熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。 二、实验内容 使用PowerDesigner和任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。 (1) 简单工厂模式 使用简单工厂模式设计一个可以创建不同几何形状(Shape)的绘图工具类,如可创建圆形(Circle)、方形(Rectangle)和三角形(Triangle) 对象,每个几何图形都要有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,提示一个UnsupportedShapeException,绘制类图并编程实现。 (2) 简单工厂模式 使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数“M”,则返回一个Man 对象,如果传入参数“W”,则返回一个Woman对象,使用任意一种面向对象编程语言实现该场景。现需要增加一个新的Robot类,如果传入参数“R”,则返回一个Robot对象,对代码进行修改并注意女娲的变化。 (3) 工厂方法模式 某系统日志记录器要求支持多种日志记录方式,如文件记录、数据库记录等,且用户可以根据要求动态选择日志记录方式,现使用工厂方法模式设计该系统。用代码实现日志记录器实例,如果在系统中增加一个中的日志记录方式——控制台日志记录(ConsoleLog),绘制类图并修改代码,注意增加新日志记录方式过程中原有代码的变化。

《Python程序设计》实验3---Python基本数据类型及分支结构实验报告

**大学数学与信息工程学院 《Python程序设计》实验报告 实验名称:实验3 Python基本数据类型及分支结构 … 班级: 姓名:学号:[ 实验地点:日期: 、 一、实验目的: [实验目的和要求] 1、熟练掌握Python三种数字类型及其应用 \ 2、熟练判断条件表达式的真假 3、熟练掌握Python分支结构 二、实验环境: 1、计算机,局域网,python 软件 三、实验内容和要求:(直接将实验步骤及截图写在题目下面,结果必须截图) 1、# 2、复数z=-3+4j,用Python程序求得对应的实部和虚部并计算z的绝对值,并思考输出的绝对值代表什么含义 3、请将下列数学表达式用Python程序写出来,并运算结果 1) 4 2734 5 x +-?= 代码:~

a=2**4 b=7 c=3 d=4 e=5 [ x=(a+b-c*d)/e print(x) 2)2 131677()(mod )/x =+? 代码: | a=3**2 b=1 c=16 d=7 x=(a+b)*(c%d)/7 # print(x) 4、编写程序,根据输入的长和宽,计算矩形的面积并输出。要求:输入语句input 实现同步赋值。 lw=input('请输入矩形的长和宽,以空格分隔:') length,width=map(float,()) ~ s=length*width

print("矩形面积为:",s) 5、编写程序,用户输入一个三位以上的整数(如果不是三位数则提示输入错误),输出其百位以上的数字。例如用户输入1234,则程序输出12。(提示:使用整除运算。) 代码: [ a=eval(input('请输入一个三位以上的整数:')) b=int(a/100) if(a<99): print('输入错误') else: … print(b)

桂林电子科技大学 C语言 程序设计 习题 答案(周信东) 实验2 顺序结构与逻辑运算

成绩:良评语:继续努力... 批改时间:2013-11-16 10:51:55 批改老师: 实验2 顺序结构与逻辑运算 学号:姓名:实验日期:2013-10-30 1.实验目的和要求 (1)掌握数据输入/输出函数的使用,能正确使用各种格式转换符。 (2)熟悉顺序结构程序中语句的执行过程,并学会基本调试程序方法。 (3)能够正确使用逻辑运算符和逻辑表达式。 (4)学会运用逻辑表达式或关系表达式等表示条件。 (5)熟练掌握if语句和switch语句,掌握条件表达式构成的选择结构。 (6)熟练掌握跟踪调试程序,针对具体数据组织输入测试数据,观察程序运行能否得到预期的输出结果。 (7)学会编写简单程序。 2.实验内容:实验指导书中的实验三和实验四 3.实验步骤及结果 实验三部分: 3-1-1 该程序正确的源程序代码(或窗口截图): 程序运行结果画面如下: 3-1-2该程序正确的源程序代码(或窗口截图): 程序运行结果画面如下:

3-2-1该程序完整的源程序代码(或窗口截图): 程序运行结果画面如下: 3-2-2该程序完整的源程序代码(或窗口截图): 程序运行结果画面如下: 3-3 语法错误和逻辑错误的区别何在?

语法错误是指违背了程序的语法规则,比如增添了某个符号,或者少了头文件,且无法通过编译器的编译,更无法运行。 逻辑错误是指在语法正确的前提下算法上的错误,能够运行,但结果往往不对,且很难发现。 如何启动单步调试? 单击菜单栏“组建”下的“开始调试”,单击“STEP INTO”,也可以按快捷键F11,使每条语句单独执行。 要使程序运行到“ss=(k…”这一行暂停下来,该如何操作?怎样终止调试状态(程序复位)? 单击调试菜单中的“stept over”或按快捷键F10。 单步调试状态下,向下运行一条语句的操作方法(分两种情况回答,第一种,跟踪到自定义函数内部,第2种,不跟踪到自定义函数内部): 1.单击调试菜单中的Step into 进入到自定义函数内部。 2.单击调试菜单中的step over 不跟踪到自定义函数内部。 在本题中,假设要在运行第2条语句(即scanf语句后),要马上观察i,j,k,ss,m,n的变量的值,操作方法: 单击调试菜单中的Step into,运行到scanf语句,在屏幕上打入任意的整形I,j。 请把观察这些变量时的画面粘贴到下面: 通过这道题单步调试,你对i++和++i及i—和—i应该有了更直观的理解,他们的区别在于:i++(i--)是i的值加(减)1;而表达式的值仍为i,++i(--i)是i的值加(减)1,再将i 加(减)1的值作为表达式的值。 3-4 请回答书中问题 问题(1)应定义为字符型; 问题(2)利用转义字符输入,即c1=’\%d’,输出时无论用PRINTF或scanf皆可。 问题(3)否,只能在ASCII码值的范围(000——127)内转换。 程序运行结果画面如下: 3-5该程序的源程序代码(或窗口截图): 运行结果画面: 3-7该程序的源称许代码(或窗口截图):

2、分支结构实验报告

南京工程学院 电力工程学院 2012/ 2013 学年第 2 学期 实验报告 课程名称C语言程序设计 实验项目名称分支结构 实验学生班级供电121 实验学生姓名孙艺芸206120808 同组学生姓名 实验时间2013-3-28 实验地点电力工程基础实验室 实验报告成绩:评阅教师签字: 年月日电力工程学院二OO七年制

说明 1. 实验报告为实验的重要考核依据之一,每个实验必须定一份实验报告. 本实验报告原则上要求手写。 2.本实验报告各项内容的具体格式、字数可由指导教师根据实验具体情况提出具体要求。各项内容可另附页,为便于归档,附页尺寸不得大于本实验报告尺寸,并注意粘牢于附页粘贴处。 3. 实验报告封面中的“实验名称”应为实验教学大纲上所列的规范名称,“实验地点”应写出实验室的具体名称。请确认无误后再填写。 4. 实验报告的建议格式为: 一、实验目的和要求; 二、主要实验仪器和设备; 三、本次实验内容 (一)实验项目名称(按本次实验各项目填写) 1、原理或接线图 2、实验步骤及注意事项 3、实验预习过程中所遇到问题 …… 四、实验记录及数据处理(主要内容包括实验具体实施步骤、 实验原始数据、计算过程与结果、数据曲线、图表等。具体 格式按指导教师要求) 五、实验结论(主要内容包括本实验小结、实验体会或疑 问等。具体格式按指导教师要求) 5. 实验成绩由实验预习、实验表现、实验报告三部分组成。其中前两项各占总成绩的30%。实验报告成绩依据报告的科学性、全面性、规范性及书写态度综合考核。实验报告采用百分制,占实验总成绩的40%,教师请阅本报告后需签字并给出实验报告百分制成绩。 6. 实验报告需按要求时间以班级为单位交给指导教师,最长时间不得超过两周,实验报告如有明显抄袭者或不交者,实验总评成绩按0 分记。

顺序表的应用数据结构实验报告记录

顺序表的应用数据结构实验报告记录

————————————————————————————————作者:————————————————————————————————日期:

大学数据结构实验报告 课程名称数据结构实验第(三)次实验实验名称顺序表的应用 学生姓名于歌专业班级学号 实验成绩指导老师(签名)日期2018年9月30日一、实验目的 1.学会定义线性表的顺序存储类型,实现C程序的基本结构,对线性表的一些基本操作和具体的函数定义。 2.掌握顺序表的基本操作,实现顺序表的插入、删除、查找以及求并集等运算。 3.掌握对多函数程序的输入、编辑、调试和运行过程。 二、实验要求 1.预习C语言中结构体的定义与基本操作方法。 2.对顺序表的每个基本操作用单独的函数实现。 3.编写完整程序完成下面的实验内容并上机运行。 4.整理并上交实验报告。 三、实验内容: 1.定义一个包含学生信息(学号,姓名,成绩)的顺序表,使其具有如下功能: (1)根据指定学生个数,逐个输入学生信息 (2)逐个显示学生表中所有学生的相关信息 (3)根据姓名进行查找,返回此学生的学号和成绩 (4)根据指定的位置可返回相应的学生信息(学号,姓名,成绩) (5)给定一个学生信息,插入到表中指定的位置 (6)删除指定位置的学生记录 (7)统计表中学生个数 四、实验设计 1.定义一个包含学生信息(学号,姓名,成绩)的顺序表,使其具有如下功能: (1)根据指定学生个数,逐个输入学生信息 for(count=0; count

数据结构实验报告

南京工程学院实验报告 操作的函数程序清单,分别用顺序表和链表结构完成,并在首页上表明团队名称、成员及个人的工作(函数),未来的成绩评定时将包含这一部分的团队成绩及个人的工作成绩。 一、实验目的 1.熟悉上机环境,进一步掌握语言的结构特点。 2.掌握线性表的顺序存储结构的定义及实现。 3.掌握线性表的链式存储结构——单链表的定义及实现。 4.掌握线性表在顺序存储结构即顺序表中的各种基本操作。 5.掌握线性表在链式存储结构——单链表中的各种基本操作。 二、实验内容 1.顺序线性表的建立、插入及删除。 2.链式线性表的建立、插入及删除。 三、实验步骤 1.建立含n个数据元素的顺序表并输出该表中各元素的值及顺序表的长度。 2.利用前面的实验先建立一个顺序表L={21,23,14,5,56,17,31},然后在第i个位置插入元素68。 3.建立一个带头结点的单链表,结点的值域为整型数据。要求将用户输入的数据按尾插入法来建立相应单链表。 四、程序主要语句及作用(main函数程序清单) 程序1的主要代码(附简要注释) #include #define MAXSIZE 1024 typedef int elemtype; typedef struct{ elemtype vec[MAXSIZE]; int len; }sequenlist; elemtype geti(sequenlist s, int i); elemtype deli(sequenlist *s,int i); elemtype insi(sequenlist *s,int i,int b); int main(int argc, char *argv[]){ int i,n,x; sequenlist a; printf("输入n(n>3):"); scanf("%d",&n);

计算机体系结构实验报告二

实验二结构相关 一、实验目的: 通过本实验,加深对结构相关的理解,了解结构相关对CPU性能的影响。 二、实验内容: 1. 用WinDLX模拟器运行程序structure_d.s 。 2. 通过模拟,找出存在结构相关的指令对以及导致结构相关的部件。 3. 记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行 周期数的百分比。 4. 论述结构相关对CPU性能的影响,讨论解决结构相关的方法。 三、实验程序structure_d.s LHI R2, (A>>16)&0xFFFF 数据相关 ADDUI R2, R2, A&0xFFFF LHI R3, (B>>16)&0xFFFF ADDUI R3, R3, B&0xFFFF ADDU R4, R0, R3 loop: LD F0, 0(R2) LD F4, 0(R3) ADDD F0, F0, F4 ;浮点运算,两个周期,结构相关 ADDD F2, F0, F2 ; <- A stall is found (an example of how to answer your questions) ADDI R2, R2, #8 ADDI R3, R3, #8 SUB R5, R4, R2 BNEZ R5, loop ;条件跳转 TRAP #0 ;; Exit <- this is a comment !! A: .double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 B: .double 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

四、实验过程 打开软件,load structure_d.s文件,进行单步运行。经过分析,此程序一 次循环中共有五次结构相关。(R-stall 数据相关Stall- 结构相关) 1)第一个结构相关:addd f2,,f0,f2 由于前面的数据相关,导致上一条指令addd f0,f0,f4暂停在ID阶段,所以下一条指令addd f2,,f0,f2发生结构相关,导致相关的部件:译码部件。 2)第二个结构相关:ADDI R2, R2, #8,与第一个结构相关类似。由于数据相关, 上一条指令暂停在ID阶段,所以导致下一条指令发生结构相关。

C语言实验报告(简单分支结构)

实验名称:C语言的三种程序结构-简单分支结构 【实验目的】 1.理解简单分支结构。 2.掌握简单的关系运算。 3.熟练使用if-else语句进行简单分支结构程序设计。 【实验环境】 1. Windows XP操作系统 2. Microsoft visual C++ 【实验内容】 1.输出两个整数,求出其中的较小值并输出。 2.输入x的值,计算分段函数y的值。 y=f(x)= x*x+2x x<2 =2x-1 x.>=2 3.输入两个整数并判断两数是否相等,输出相应结论。 4.输入一个证书,若为负数,求出它的平方;若为正数,求出它的立方,并输出结果。 5.输入三个数,用if-else结构求出其中的最大值。提示,首先求出两个数中较大值放在一个变量里,然后用这个变量和第三个数在进行一次比较。 【程序清单】 1.程序代码: #include<> void main() { int a,b,min; printf("Input a,b:"); scanf("%d %d",&a,&b); if (a int main(void) { double x,y; printf("input x:"); scanf("%lf",&x); if (x<2) y=x*x+2*x; else y=2*x-1; printf("y=f(%lf)=%f\n",x,y);

return 0; } int max(int x,int y) { int max; max=x>yx:y; return max; } 3.程序代码: #include<> void main() { int a,b; printf("Input a,b:"); scanf("%d %d",&a,&b); if(a==b) printf("a等于b\n"); else printf("a不等于b\n"); } 4.程序代码: #include<> void main() { int a,s; printf("Input a:"); scanf("%d",&a); if(a<=0) { if (a<0) { s=a*a; printf("a*a=%d\n",s); } } else { s=a*a*a; printf("a*a*a=%d\n",s); } } 5.程序代码: #include<> void main() { int a,b,c,max; printf("Input a,b,c:"); scanf("%d %d %d",&a,&b,&c); if(a>b) { if(a>=c) printf("max=%d\n",a);

数据结构-实验报告顺序表基本运算

(封面) 学生实验报告 学院:国际经贸学院 课程名称:数据结构 专业班级: 09电子商务 姓名: 学号:

学生实验报告 (经管类专业用) 一、实验目的及要求: 1、目的 通过实验,实现顺序表的各种基本运算。 2、内容及要求 编写一个程序,实现顺序表的各种基本运算,并在此基础上设计一个主程序完成下列功能: (1) 初始化顺序表L (2) 依次采用尾插法插入a,b,c,d,e (3) 输出顺序表L (4) 输出顺序表L长度; (5) 判断顺序表L是否为空; (6) 判断顺序表L 的第3个元素; (7) 输出元素‘a’的位置; (8) 在第4个元素位置上插入‘f’元素; (9) 输出顺序表L (10) 删除L的第3个元素; (11) 输出顺序表L (12) 释放顺序表L 二、仪器用具:

三、实验方法与步骤: 一、查阅顺序表等相关资料,熟悉顺序表基本概念和流程 二、“开展”顺序表实验流程 三、整理实验数据和文档,总结实验的过程,编写实验报告 四、实验结果与数据处理: 1、顺序表的代码: #include #include #define MaxSize 50 typedef char ElemType; typedef struct { ElemType data[MaxSize]; int length; } SqList; void InitList(SqList *&L) { L=(SqList *)malloc(sizeof(SqList)); L->length=0; } void DestroyList(SqList *L) { free(L); } int ListEmpty(SqList *L) { return(L->length==0); } int ListLength(SqList *L) { return(L->length); }

软件设计与体系结构实验报告

福建农林大学计算机与信息学院 实验报告 课程名称:软件设计与体系结构 姓名:陈宇翔 系:软件工程系 专业:软件工程 年级:2007 学号:070481024 指导教师:王李进 职称:讲师 2009年12月16日

实验项目列表

福建农林大学计算机与信息学院实验报告 学院:计算机与信息学院专业:软件工程系年级:2007 姓名:陈宇翔 学号:070481024 课程名称:软件设计与体系结构实验时间:2009-10-28 实验室田实验室312、313计算机号024 指导教师签字:成绩: 实验1:ACME软件体系结构描述语言应用 一、实验目的 1)掌握软件体系结构描述的概念 2)掌握应用ACMESTUDIO工具描述软件体系结构的基本操作 二、实验学时 2学时。 三、实验方法 由老师提供软件体系结构图形样板供学生参考,学生在样板的指导下修改图形,在老师的指导下进行软件体系结构描述。 四、实验环境 计算机及ACMESTUDIO。 五、实验内容 利用ACME语言定义软件体系结构风格,修改ACME代码,并进行风格测试。 六、实验操作步骤 一、导入Zip文档 建立的一个Acme Project,并且命名为AcmeLab2。如下图:

接着导入ZIP文档,导入完ZIP文档后显示的如下图: 二、修改风格 在AcmeLab2项目中,打开families下的TieredFam.acme.如下图: 修改组件外观 1. 在组件类型中,双击DataNodeT; 在其右边的编辑器中,将产生预览;选择Modify 按钮,将打开外观编辑器对话框。 2. 首先改变图形:找到Basic shape section,在Stock image dropdown menu中选 择Repository类型. 3. 在Color/Line Properties section修改填充颜色为深蓝色。 4. 在颜色对话框中选择深蓝色,并单击 [OK]. 5. 修改图形的边框颜色为绿色 7. 单击Label tab,在Font Settings section, 设置字体颜色为白色,单击[OK] 产生的图形如下图:

哈夫曼树实验报告

哈夫曼树实验报告 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】

计算机科学与技术学院数据结构实验报告 班级 2014级计算机1班学号姓名张建华成绩 实验项目简单哈夫曼编/译码的设计与实现实验日期一、实验目的 本实验的目的是进一步理解哈夫曼树的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。 二、实验问题描述 利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码,此实验即设计这样的一个简单编/码系统。系统应该具有如下的几个功能: 1、接收原始数据。 从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件中。 2、编码。 利用已建好的哈夫曼树(如不在内存,则从文件中读入),对文件中的正文进行编码,然后将结果存入文件中。 3、译码。 利用已建好的哈夫曼树将文件中的代码进行译码,结果存入文件中。 4、打印编码规则。 即字符与编码的一一对应关系。 5、打印哈夫曼树, 将已在内存中的哈夫曼树以直观的方式显示在终端上。 三、实验步骤 1、实验问题分析 1、构造哈夫曼树时使用静态链表作为哈夫曼树的存储。 在构造哈夫曼树时,设计一个结构体数组HuffNode保存哈夫曼树中各结点的信息,根据二叉树的性质可知,具有n个叶子结点的哈夫曼树共有2n-1个结点,所以数组HuffNode的大小设置为2n-1,描述结点的数据类型为: Typedef strcut { Int weight;/*结点权值*/ Int parent; Int lchild; Int rchild; }HNodeType; 2、求哈夫曼编码时使用一维结构数组HuffCode作为哈夫曼编码信息的存储。 求哈夫曼编码,实质上就是在已建立的哈夫曼树中,从叶子结点开始,沿结点的双亲链域回退到根结点,没回退一步,就走过了哈夫曼树的一个分支,从而得到一位哈夫曼码值,由于一个字符的哈夫曼编码是从根结点到相应叶子结点所经过的路

数据结构实验报告-顺序表的创建、遍历及有序合并操作

数据结构实验报告-顺序表的创建、遍历及有序合并操作二、实验内容与步骤 实现顺序表的创建、遍历及有序合并操作,基本数据结构定义如下: typedef int ElemType; #define MAXSIZE 100 #define FALSE 0 #define TRUE 1 typedef struct {ElemType data[MAXSIZE]; int length; }seqlist; 创建顺序表,遍历顺序表 #include #include #define MAXSIZE 100 #define Icreament 20 #define FALSE 0

#define TRUE 1 typedef int ElemType; //用户自定义数据元素类型 // 顺序表结构体的定义 typedef struct { ElemType *elem; //顺序表的基地址 int length; //顺序表的当前长度 int listsize; //预设空间容量 }SqList; //线性表的顺序存储结构 SqList* InitList() //创建空的顺序表 { SqList* L = (SqList*)malloc(sizeof(SqList));//定义顺序表L if(!L) { printf("空间划分失败,程序退出\n"); return NULL; } L->elem=(ElemType *)malloc(MAXSIZE*sizeof(ElemType)); if(!L->elem) { printf("空间划分失败,程序退出\n");

系统结构实验报告一

《计算机系统结构课内实验》 实验报告 班级:计算机01 姓名:陈世阳 学号:10055008 日期:2013.5.10

一、实验目的及要求 1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点; 2. 加深对计算机流水线基本概念的理解; 3. 进一步了解DLX基本流水线各段的功能以及基本操作; 4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响; 5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。 二、实验环境 WinDLX模拟器 三、实验内容 1.用WinDLX模拟器执行下列三个程序(任选一个): ●求阶乘程序fact.s ●求最大公倍数程序gcm.s ●求素数程序prim.s 分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。熟练掌握WinDLX的操作和使用。 注意:fact.s中调用了input.s中的输入子程序。load程序时,要两个程序一起装入(都select后再点击load)。gcm.s也是如此。 2.用WinDLX运行程序structure_d.s,通过模拟: ●找出存在结构相关的指令对以及导致结构相关的部件; ●记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期 数的百分比; ●论述结构相关对CPU性能的影响,讨论解决结构相关的方法。 3.在不采用定向技术的情况下(去掉Configuration菜单中Enable Forwarding选项 前的勾选符),用WinDLX运行程序data_d.s。记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。 4.在采用定向技术的情况下(勾选Enable Forwarding),用WinDLX再次运行程序 data_d.s。重复上述3中的工作,并计算采用定向技术后性能提高的倍数。 四、实验步骤及结果 1.(1)用winDLX执行求最大公倍数程序gcm.s: File->load code or data->分别选中gcm.s和input.s->select. (2)首先直接运行整个程序(enable forwarding),execute->run(或按F 5) 例如,输入如下:

体系结构windlx流水线实验报告

实验一基本实验----by 王琳PB07210432 1. 实验目的: 1)熟悉计算机流水线基本概念 2)了解DLX基本流水线的各段的功能 3)了解各种不同指令在流水线中的实际流动情况 4)对流水线做性能分析 5)了解影响流水线效率的因素——数据相关、结构相关、控制相关,了解相关的种类 6)了解解决数据相关的方法 2. 实验平台:WinDLX仿真器 WinDLX简介: ●是一个图形化、交互式的DLX流水线仿真器。 ●可以装入DLX汇编语言程序,然后单步,设断点或是连续执行该程序. ●CPU的寄存器,流水线,I/O和存储器都可以用图形表示出来 ●提供了对流水线操作的统计功能. ●可以装载文件名为*.s的文件. ●要求的硬件平台是IBM-PC兼容机. ●WinDLX是一个Windows应用程序,运行DOS3.3以上和Windows3.0以上的操作系统. ●WinDLX软件包中带有说明文件及教程,可以供使用者进一步了解仿真器的使用方法和 DLX处理器的原理.大家再进行实验前应该仔细阅读这些文档. 3. 实验内容: 1)在仿真器上分别运行单条指令:Load指令、Store指令、分支指令、寄存器ALU指令、立即数ALU指令,记录它们在流水线中的执行情况 ●Lw: 观察此流水线时空图,可以发现:转移指令引起的延迟仅为1 clocks,另2 stalls 是trap指令引起的,这个执行结果似与不采用forwarding技术的前提相违,只能理解为对于无条件的转移指令,新的PC值在EX阶段即已被写入。 ●Sw:

●Beqz: 由此图可见,对于分支指令,总是用 not-taken的策略来处理,并且也认为新的 PC值也在EX阶段即已被写入,且cond 条件也在EX段被算出(这显然是一个极 不合理的假设,究竟为何分支指令的延迟 为1 stall有待进一步探究) ●寄存器ALU指令 ●立即数ALU指令 2)仿真器运行一段无相关的程序,记录它的执行情况,计算流水线的加速比、吞吐率与效率。下面是一段不相关的程序,一共6条指令 ADDI R5, R5, 1 SUBI R4, R4, 1 AND R3, R3, R3 XOR R7, R7, R7 ADDI R8, R8, 1 ADDI R9, R9, 1 在WinDLX中执行的结果如下:

相关文档
最新文档