实验4 顺序与分支结构
- 格式:doc
- 大小:286.50 KB
- 文档页数:9
实验四分支结构程序设计实验实验四分支结构程序设计实验一、实验目的1.掌握分支结构程序设计的基本设计方法;2.掌握条件转移指令和无条件转移指令的使用方法;3.掌握指令对标志寄存器中各标志位的影响情况;4.掌握多分支结构程序设计的三种方法:树型结构法、地址常数表法和指令常数表法。
二、实验要求1.学会使用DEBUG的T命令,跟踪检查指令对标志位的影响情况;2.学会使用DEBUG中的P命令,对INT指令的跟踪方法;3.学会利用设置断点调试程序的方法;4.了解大写、小写字母及数字在计算机内的表示方法及转换方法。
三、实验举例【例3.4】编写程序,从键盘上输入三个一位十进制数据,找出其中大于平均值的数据,并在屏幕上显示出来。
【解题思路】首先将三个数累加求和,再除3求出平均值,然后将三个数据分别与平均值进行比较。
三个已知数据的输入利用INT 21H的1号功能,大于平均值的数据利用INT 21H 的2号功能输出。
【步骤一】启动EDIT编辑器,编辑源程序。
程序清单如下:CSEG SEGMENTASSUME CS:CSEGSTART: XOR BX,BXMOV AH,01INT 21HMOV CH,AL ;第一个数据暂存CH中SUB AL,30HADD BL,AL ;累加求和MOV AH,01INT 21HMOV CL,AL ;第二个数据暂存CL中SUB AL,30HADD BL,AL ;累加求和MOV AH,01INT 21HMOV DH,AL ;第三个数据暂存DH中SUB AL,30HADD AL,BL ;累加求和XOR AH,AHMOV BH,3DIV BH ;求平均值ADD AL,30HMOV BL,AL ;平均值暂存BL中CMP BL,CH ;与第一个数比较JAE NEXT1MOV DL,CHMOV AH,02INT 21HNEXT1: CMP BL,CL ;与第二个数比较JAE NEXT2MOV DL,CLMOV AH,02INT 21HNEXT2: CMP BL,DH ;与第三个数比较JAE DONEMOV DL,DHMOV AH,02INT 21HDONE: MOV AH,4CHINT 21HCSEG ENDSEND源程序输入完成后,以EXAM4.ASM为文件名存入磁盘,进行下一步操作。
实验四顺序结构程序设计及运算符首先根据“新建文件夹操作提示”操作提示,在自己对应的计算机上建立一个文件夹,即文件夹的名字为“XX106X学号的后两位姓名”,如“水养106302匡珍春”,然后在新建好的文件夹里面再建一个文件夹,文件夹名字为“第4次”,而后依次按下面要求完成作业,同时将要存盘的作业按规定的文件名保存在刚才新建好的文件夹里。
提示:因为新建的文件夹名中包含有中文字,所以存盘时建议先保存在k:盘中,然后再将相应的.c程序从k:盘复制到刚才新建好的文件夹里。
实验目的:(1)掌握++、--运算符作为前缀与后缀的区别,掌握复合赋值运算符以及不同运算符的优先级别;(2)加深对运算符/和%的理解;(3)掌握C语言中printf()和scanf()函数的使用;(4)提高修改错误程序的能力。
实验内容:实例分析1 分析以下程序的运行结果。
重新输入、运行下面的程序并验证结果。
分析++、––运算符前缀和后缀运算的区别。
分析不同运算符的优先级别。
(无需存盘)#include "stdio.h"void main(){ int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("i=%d, j=%d, m=%d, n=%d\n", i, j, m, n);}(1)运行程序,注意 i、j、m、n 各变量的值,分别作以下改动并运行。
(2)将第6、7行改为:m=i++;n=–++j;再运行,分析比较运行结果。
(3) 将程序改为:#include "stdio.h"void main(){ int i,j,m,n;i = 8;j = 10;m = ++i;n = –j++; /*此例主要说明运算符的结合方向*/printf("i=%d, j=%d, m=%d, n=%d\n", i, j, m, n);}(4) 将程序改为:#include "stdio.h"void main(){ int i,j,m,n;i = 8;j = 10;m = ++i;n = –++j;printf("i=%d, j=%d, m=%d, n=%d\n", i, j, m, n);}(5)在(4)的基础上,将printf 语句改为:printf("%d,%d", ++i, ++j);(6)再将printf 语句改为:printf("%d,%d,%d,%d", i, j, i++, j++);(7) 将程序改为:#include <stdio.h>void main(){ int i, j, m=0, n=0;i = 8;j = 10;m+= i++;n–= ––j;printf("i=%d,j=%d,m=%d,n=%d", i, j, m, n);}实例分析2 分析每个输出语句的输出结果,输入以下程序验证分析结果。
《系统分析与设计》实验报告
实验四顺序图
【实验名称】顺序图
【实验目的】
1.理解动态交互模型的建模技术。
2.掌握顺序图的描述方法。
【实验器材】
1.计算机一台。
2.Rational Rose 工具软件。
【实验内容】
在前面的类图分析、设计中,我们已经确定了类的属性,类之间的关系,现在我们要考虑类的方法。
寻找类的操作的有效方法之一是绘制交互图。
交互图体现了如何为对象分配职责。
当一个对象接收了某条消息,就表明该对象具有处理该条消息的职责。
针对特定场景中各个系统事件单独绘制交互图,用以说明系统接收到该事件后,由哪些对象互相协作、来共同完成对事件的处理,从而抽象出对象以及对象的职责。
顺序图用来描述对象间的交互行为。
【实验结果】
将各自负责的子系统的顺序图复制,有几个就复制几个。
实验四顺序与分支结构一、实验目的1.熟练掌握赋值语句。
2.熟练掌握分支结构程序设计方法,灵活使用有关语句。
二、实验内容1.实验准备在练习文件夹中建立vb4-1、vb4-2、vb4-3、vb4-4、vb4-5、vb4-6、vb4-7文件夹。
2.赋值实验赋值语句的作用是把表达式的值赋给变量,变量可以是内部变量,也可以是对象的属性。
例1:给内部变量赋值设计一个简单的VB程序,在窗体上放置一个命令按钮Command1,编写按钮的单击事件过程,观察给变量赋值的情况。
(1)创建工程。
(2)建立用户界面在窗体下方画1个命令按钮,名称为Command1。
(3)编写命令按钮的事件代码。
双击“Command1”按钮,进入代码编写窗口,编写如下代码:(5)调试运行程序。
单击Command1按钮,观察各个变量的输出结果,进一步理解赋值语句的作用和用法。
(6)保存结果到练习文件夹中的vb4-1文件夹。
例2:为对象设置属性值对象的大部分属性值都可以在设计阶段设置,也可以在运行时设置。
运行时可以用赋值语句为对象的属性设置属性值,赋值格式为:对象.属性= 属性值设计一个工程,用户可在两个文本框内输入字体和字号,以控制文本的显示格式,当用户单击命令按钮后,两个文本框内的文字改用新的字体、字号显示。
设计一个简单的VB程序,界面如下:图4.1为对象设置属性值实验窗体界面设计(1)创建工程。
(2)建立用户界面。
各控件主要属性的设置参见表4.1。
表4.1 属性设置(3)双击按钮控件,切换到代码设计窗口,添加程序代码如下:(4)调试运行程序。
启动工程,在文本框Text1中输入字体名称,在文本框Text2中输入字号值,单击显示按钮,可见在两个文本框中显示文字的字体变化和大小变化,如图4.2所示。
图4.2 为对象设置属性值实验窗体运行情况(5)保存结果到练习文件夹中的vb4-2文件夹。
注意:所输入的字体必须是你的计算机中已经安装过的,如图4.3所示,是在Word字体列表框中列出的字体,不同的电脑所装字体不同。
实验四分支和循环程序设计实验(设计性实验)一、实验要求和目的1.熟悉汇编语言程序设计结构;2.熟悉汇编语言分支程序基本指令的使用方法;3.掌握利用汇编语言实现单分支、双分支、多分支的程序设计方法;4.了解汇编语言循环程序设计的基本流程;5.熟悉汇编语言循环基本指令的使用方法;6.掌握利用汇编语言的循环指令完成循环程序设计方法。
二、软硬件环境1、硬件环境:计算机系统windows;2、软件环境:装有MASM、DEBUG、LINK、等应用程序。
三、实验涉及的主要知识在实际应用中,经常根据一些条件来选择一条分支执行。
汇编语言的条件判断主要是通过状态寄存器中的状态位、无符号数相减或有符号相减而导致的结果来进行。
1.无条件转移指令JMP无条件转移指令JMP 是使程序无条件转移至目标处,又分为段内转移、段间转移。
2.条件转移指令JXX条件转移指令可分为三大类:1).简单条件转移指令指令。
根据单个标志位的状态判断转移条件。
标志位指令转移条件意义JC CF=1 有进位/借位CFJNC CF=0 无进位/借位JE/JZ ZF=1 相等/等于0ZFJNE/JNZ ZF=0 不相等/不等于0JS SF=1 是负数SFJNS SF=0 是正数JO OF=1 有溢出OFJNO OF=0 无溢出JP/JPE PF=1 有偶数个1PFJNP/JPO PF=0 有奇数个12).无符号数条件转移指令。
假设在条件转移指令前使用比较指令,比较两个无符号数A,B,指令进行的的操作是A-B,其转移指令如下:指令转移条件意义JA/JNBE CF=0 AND ZF=0 A>BJAE/JNB CF=0 OR ZF=1 A>=BJB/JNAE CF=1 AND ZF=0 A<BJBE/JNA CF=1 OR ZF=1 A<=B3).带符号数条件转移指令。
指令转移条件意义JG/JNLE SF=OF AND ZF=0 A>BJGE/JNL SF=OF OR ZF=1 A>=BJL/JNGE SF OF AND ZF=0 A<BJLE/JNG SF OF OR ZF=1 A<=B在汇编程序设计中,要熟练使用循环指令和跳转等指令来实现循环,理解循环体结构中的初始化部分、循环体、结束部分,并且要结合前面分支结构相关的知识点,加深对循环结构的理解和掌握。
实验四分支结构程序设计实验一、实验目的1.掌握分支结构程序设计的基本设计方法;2.掌握条件转移指令和无条件转移指令的使用方法; 3.掌握指令对标志寄存器中各标志位的影响情况;4.掌握多分支结构程序设计的三种方法:树型结构法、地址常数表法和指令常数表法。
二、实验要求1.学会使用DEBUG 的T 命令,跟踪检查指令对标志位的影响情况; 2.学会使用DEBUG 中的P 命令,对INT 指令的跟踪方法; 3.学会利用设置断点调试程序的方法;4.了解大写、小写字母及数字在计算机内的表示方法及转换方法。
三、实验内容1.编写程序,已知在DATA 开始的内存单元中,连续存放着三个一位十六进制数,找出其中最大数及最小数,存放在指定的内存单元中。
2.编写程序,从键盘输入若干个任意字符,如果是小写字母a ~z 之间的字符,请将它们转换成相应的大写字母,若为其它字符,则保持不变,将转换后的新字符保存在指定的存储单元中。
四、解题思路1.先对DATA 内存单元连续存放三个一位十六进制数。
先对DATA 内存单元里的前两个数据比较,较大的数据再和第三个数据比较,从而得到最大数据存到MAX 内存单元里。
把两次比较得到的两个较小的数据进行比较,从而得到最小数据存到MIN 内存单元里。
两个无符号数据比较后,用JA/JNBE、JAE/JNB/JNC/、JB/JNAE/JC和JBE/JNA来判别两数的大小关系,这些条件转移指令是把进位标志CF 和零标志位ZF 结合起来判别的。
2.先开辟20个字节的内存单元DATA 用来存储输进来字符串和修改后的字符串。
对字符串的输入是以‘#’为结束字符的,当字符的个数少于20时,只要输入的字符串是以‘#’结尾,就代表字符串输入结束(其中结束字符‘#’也是字符串中的一个字符存储到内存单元里)。
每次输入一个字符,就对其进行判别。
若输入的字符在字符‘a ’到‘z ’之间,那么就对其进行转换成对应的大写字母(方法把小写字母的值减去32即可),然后再存到指定的内存单元中;否则,直接把输入的字符存到指定的内存单元中去。
实验四顺序与分支结构
一、实验目的
1.熟练掌握赋值语句。
2.熟练掌握分支结构程序设计方法,灵活使用有关语句。
二、实验内容
1.实验准备
在练习文件夹中建立vb4-1、vb4-2、vb4-3、vb4-4、vb4-5、vb4-6、vb4-7文件夹。
2.赋值实验
赋值语句的作用是把表达式的值赋给变量,变量可以是内部变量,也可以是对象的属性。
例1:给内部变量赋值
设计一个简单的VB程序,在窗体上放置一个命令按钮Command1,编写按钮的单击事件过程,观察给变量赋值的情况。
(1)创建工程。
(2)建立用户界面在窗体下方画1个命令按钮,名称为Command1。
(3)编写命令按钮的事件代码。
双击“Command1”按钮,进入代码编写窗口,编写如下代码:
(5)调试运行程序。
单击Command1按钮,观察各个变量的输出结果,进一步理解赋值语句的作用和用法。
(6)保存结果到练习文件夹中的vb4-1文件夹。
例2:为对象设置属性值
对象的大部分属性值都可以在设计阶段设置,也可以在运行时设置。
运行时可以用赋值
语句为对象的属性设置属性值,赋值格式为:
对象.属性= 属性值
设计一个工程,用户可在两个文本框内输入字体和字号,以控制文本的显示格式,当用户单击命令按钮后,两个文本框内的文字改用新的字体、字号显示。
设计一个简单的VB程序,界面如下:
图4.1为对象设置属性值实验窗体界面设计
(1)创建工程。
(2)建立用户界面。
各控件主要属性的设置参见表4.1。
表4.1 属性设置
(3)双击按钮控件,切换到代码设计窗口,添加程序代码如下:
(4)调试运行程序。
启动工程,在文本框Text1中输入字体名称,在文本框Text2中输入字号值,单击显示按钮,可见在两个文本框中显示文字的字体变化和大小变化,如图4.2所示。
图4.2 为对象设置属性值实验窗体运行情况
(5)保存结果到练习文件夹中的vb4-2文件夹。
注意:所输入的字体必须是你的计算机中已经安装过的,如图4.3所示,是在Word字体列表框中列出的字体,不同的电脑所装字体不同。
输入列表框中存在的字体名,则程序会正常运行。
否则,系统弹出出错信息,如图4.4所示,此时可单击“结束”按钮,重新启动程序。
因此,上机实验时应该注意自己的电脑安装了什么字体。
图4.3 Word字体列表框中列出的字体图4.4 输入错误字体后的出错信息
输入的字号必须是正数,可以带小数,如果输入的字号值小于或等于零,系统也会弹出如图4.4所示的出错信息。
3.单分支实验
单分支结构是条件是真时执行某语句块,条件为假时不执行语句块。
例3:设计一个简单的VB程序,要求在三个文本框内任意输入三个数,设计一个求其最大值的程序。
界面如下:
图4.5求三个数的最大值窗体界面设计
(1)创建工程。
(2)建立用户界面。
各控件主要属性的设置参见表4.2。
表4.2 属性设置
(3)双击按钮控件,切换到代码设计窗口,添加程序代码如下:
(4)调试运行程序。
在文本中输入数据,单击命令按钮,结果显示在标签中,如图4.6所示。
图4.6 求三个数的最大值执行情况 图4.7 三个数排序执行情况
(5)保存结果到练习文件夹中的vb4-3文件夹。
以下代码自己阅读理解,不需保存成工程。
已知三个数,将它们按从小到大的顺序显示。
要求从上例中添加一个按钮Command2,单击Command2后,取文本框中的三个数排序,排序后的数显示在标签内,如图4.7所示。
程序代码如下:
4.双分支实验
例4:设计一个简单的VB 程序。
要求:计算分段函数⎩⎨
⎧=+≠-=0
2
30
52x x x x y ,程序运行效果如图4.9所示。
(1)创建工程。
图4.8 求分段函数值的窗体界面设计图 4.9 分段函数求值运行效果
(2)建立用户界面。
各控件主要属性的设置参见表4.3。
表4.3 属性设置
(3)双击按钮控件,切换到代码设计窗口,添加程序代码如下:
(4)调试运行程序。
在文本框Text1中输入自变量的值,再单击命令按钮,应该在按钮上方的文本框内显示函数值,如图4.9所示。
(5)保存结果到练习文件夹中的vb4-4文件夹。
4.多分支实验
例5:设计一个简单的VB程序。
界面如下:
要求:当输入正数时输出“x>0”,输入零时输出“x=0”,
输入负数时输出“x<0”。
(1)创建工程,建立用户界面,如右图所示。
图4.10设计界面
(2)双击按钮控件,切换到代码设计窗口,在过程Command1_Click() 中添加程序代码如下:
(4)调试运行程序。
(5)保存结果到练习文件夹中的vb4-5文件夹。
三、思考题
1.设计一个程序。
要求:用输入对话框输入x ,根据下式计算对应的y ,并在窗体上输出y 的值 x
1/2+sinx
x>10
y= 0 x=10
2x 3+6
x<10
注:程序写在命令按钮Command1的Click 事件中。
设计提示:
(1)在窗体上添加一个按钮控件,双击按钮,在
Private Sub Command1_Click( )
……
End Sub
中书写程序;
(2)使用InputBox 函数输入x 的值; (3)用 If … Then
……
ElseIf … Then
……
Else
……
End If
结构来书写程序;
(4)使用Print 语句输出计算结果;
(5)运行程序;
(6)保存结果到练习文件夹中的vb4-6文件夹。
2.设计一个程序。
要求:求解形如ax2 + bx + c = 0的任意方程的解。
设Delt = b 2 - 4ac ,编程时要考虑以下4种情况: (1) a = 0时,提示:这不是一个二次方程; (2) a <> 0、Delt > 0时,方程有两个不等的实根; (3) a <> 0、Delt = 0时,方程有两个相等的实根; (4) a <> 0、Delt < 0时,方程有两个共轭复根。
程序运行后,针对任意输入的一组系数,可能产生四种不同的结果,如图4.11所示。
保存结果到练习文件夹中的vb4-7文件夹。
图4.11 练习2运行后产生一元二次方程三种不同类型的根。