分支程序的设计实验
实验二 分支结构程序设计实验

实验二 分支结构程序设计实验1、实验目的和要求:掌握汇编语言分支程序的设计方法;2、实验内容:编程序求分段函数Y 的值。
已知变量X 为16位带符号数, 分段函数的值要求 保存到字单元Y 中。
函数定义如下:1 (当X>0)Y = 0 (当x=0)—1 (当X<0)3、实验仪器与器材:计算机及EMU8086汇编软件等。
4、实验原理:分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。
分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。
程序流程图是根据解题分析所绘制的程序执行流程图。
5、实验过程与测试数据(含电路图/程序流程框图):6、实验分析:自己分析7、实验体会:自己总结实验参考程序:DATA SEGMENTX DW -128Y DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATAMOV DS,AXMOV AX,XCMP AX,0JG ISPNJZ ISZNMOV Y,-1JMP FINISHISPN: MOV Y,1JMP FINISHISZN: MOV Y,0FINISH: MOV AH,4CHINT 21HCODE ENDSEND START思考题:把程序修改成如下的分段函数的值—1 (当X>=0)Y=1 (当X<0)。
微机原理分支程序设计实验

微机原理分支程序设计实验微机原理是计算机科学与技术专业的核心课程之一、在这门课程中,学生需要学习计算机的基本原理和体系结构,并通过实验来巩固所学的知识。
本文将介绍一个关于分支程序设计的微机原理实验。
实验背景:分支程序是计算机中的一种非线性控制结构,它根据条件的不同选择不同的执行路径。
分支程序设计是计算机编程中非常重要的一部分,也是实际应用中经常会遇到的情况之一、通过这个实验,学生将学会如何使用分支结构来解决实际问题。
实验目的:1.了解分支程序设计的基本概念和原理。
2.掌握使用条件语句和循环语句来实现分支程序。
3.通过实际案例分析和编程实践,巩固所学的知识。
实验内容:本实验以学生成绩管理系统为例,通过判断学生的成绩等级来计算总评成绩,并输出等级信息。
分支程序设计的思路如下:1.输入学生的成绩。
2.根据成绩的范围判断学生的等级。
3.根据等级计算总评成绩。
4.根据总评成绩输出相应的等级信息。
实验步骤:1.在开发环境中创建一个新的项目,并新建一个名为“GradeManage”的源文件。
2.在源文件中定义一个成绩变量和一个等级变量,并使用输入函数从键盘读取学生的成绩。
3.使用条件语句根据成绩的范围判断学生的等级,并将等级赋值给等级变量。
4.使用条件语句根据等级计算总评成绩,并将结果赋值给一个总评成绩变量。
5.使用条件语句根据总评成绩输出相应的等级信息。
6.在屏幕上显示输出结果。
7.编译并运行程序,进行测试。
实验总结:通过本实验,我学会了如何设计并实现一个简单的分支程序。
在实验过程中,我深入了解了分支结构的原理和使用方法,并通过编程实践巩固了所学的知识。
分支程序设计在实际应用中非常广泛,掌握这一技能对于计算机科学与技术专业的学生来说非常重要。
在今后的学习和工作中,我将继续探索和学习更多关于分支程序设计和其他相关知识,以提高自己的编程能力。
微机实验分支程序设计

微机实验分支程序设计微机实验是计算机科学与技术专业学生的重要实践环节,其中分支程序设计是程序设计中的一项基础技能。
分支程序设计指的是在程序中根据条件判断,执行不同的代码路径。
这种设计可以使得程序更加灵活,能够根据不同的输入或状态做出相应的反应。
一、分支程序设计概述分支程序设计通常涉及到条件语句的使用,如`if`、`switch`等。
在微机实验中,分支程序设计的应用非常广泛,包括但不限于数据处理、用户交互、错误处理等方面。
二、分支程序设计的基本结构1. 条件判断:程序首先需要对某个条件进行判断,这个条件可以是一个变量的值、用户输入或者程序的状态等。
2. 执行路径:根据条件判断的结果,程序将选择执行不同的代码块。
在`if`语句中,通常会有两个执行路径:条件为真时执行的代码块和条件为假时执行的代码块。
3. 嵌套分支:在复杂的程序设计中,分支可以嵌套使用,即在一个分支的内部再进行条件判断和分支选择。
三、分支程序设计的应用场景1. 用户输入验证:在用户输入数据后,程序需要验证输入的有效性,根据验证结果执行不同的操作。
2. 错误处理:当程序运行过程中出现错误时,通过分支程序设计可以对错误进行分类处理。
3. 功能选择:在具有多个功能的程序中,用户可以通过选择来决定执行哪个功能。
四、分支程序设计的实现以C语言为例,分支程序设计的基本实现如下:```c#include <stdio.h>int main() {int choice;printf("请输入一个数字(1-5):");scanf("%d", &choice);if (choice == 1) {printf("你选择了选项1。
\n");} else if (choice == 2) {printf("你选择了选项2。
\n");} else if (choice == 3) {printf("你选择了选项3。
分支程序设计实验

分支程序设计实验在计算机科学领域中,分支程序设计是一种重要的概念。
它是指在程序执行过程中,根据不同的条件选择不同的执行路径。
这种设计方法可以使程序更加灵活和智能,提高程序的执行效率和准确性。
在本文中,我们将探讨分支程序设计的原理和实验。
一、分支程序设计的原理分支程序设计的核心原理是根据条件的真假来选择不同的执行路径。
在程序中,我们可以使用条件语句来实现分支程序设计。
常见的条件语句有if语句和switch语句。
if语句是一种基本的条件语句,它根据条件的真假来选择不同的执行路径。
if语句的基本结构是:if (条件) {执行语句} else {执行语句}。
当条件为真时,执行if语句中的代码块;当条件为假时,执行else语句中的代码块。
switch语句是另一种常见的条件语句,它根据条件的不同值来选择不同的执行路径。
switch语句的基本结构是:switch (条件) {case 值1: 执行语句1; break; case值2: 执行语句2; break; default: 执行语句3;}。
当条件的值与某个case的值相等时,执行对应的执行语句;当条件的值与所有case的值都不相等时,执行default语句。
二、分支程序设计的实验为了更好地理解和应用分支程序设计的原理,我们可以进行一些实验。
下面是一个简单的实验示例:实验目的:根据用户输入的成绩,判断其等级。
实验步骤:1. 定义一个变量grade,用于存储用户输入的成绩。
2. 使用scanf函数获取用户输入的成绩,并将其赋值给变量grade。
3. 使用if语句判断成绩的等级,并输出相应的结果。
实验代码:```#include <stdio.h>int main() {int grade;printf("请输入您的成绩:");scanf("%d", &grade);if (grade >= 90) {printf("您的等级为A\n");} else if (grade >= 80) {printf("您的等级为B\n");} else if (grade >= 70) {printf("您的等级为C\n");} else if (grade >= 60) {printf("您的等级为D\n");} else {printf("您的等级为E\n");}return 0;}```在这个实验中,我们根据用户输入的成绩判断其等级,并输出相应的结果。
分支程序的设计实验报告

分支程序的设计实验报告实验目的本实验旨在通过设计一个分支程序来展示控制流程中的分支结构,加深对这一概念的理解,并通过实际编程提高对分支结构的应用能力。
实验原理分支程序是一种常见的控制流程结构,它根据条件的真假选择不同的执行路径。
在编程中,分支程序通常用于判断特定条件是否满足,并根据不同结果执行不同的操作。
常见的条件语句包括if 语句、switch 语句等。
在设计一个分支程序时,需要明确条件和执行路径,并根据不同情况进行相应处理。
分支程序的设计需要考虑条件的正确性和完备性,避免出现判断错误或遗漏情况。
实验过程本实验选择使用Python 语言来设计和实现一个简单的分支程序。
具体步骤如下:1. 首先,根据实际需求确定分支程序的目标和条件。
在本实验中,我们设计了一个分支程序来判断一个数字是否是奇数。
2. 接下来,根据选定条件,实现相应的判断逻辑。
我们使用if 语句来对给定数字进行判断。
如果数字对2 求余等于0,那么这个数字是偶数;否则,这个数字是奇数。
3. 在程序中加入输出语句,以便用户能够看到最终的判断结果。
4. 编译和运行程序,观察输出结果是否符合预期。
在实验过程中,我们还可以进行额外的调试和优化,并添加更多的分支条件来扩展程序功能。
例如,我们可以增加一个分支条件来判断数字是否为负数,或者根据数字的大小进行不同的处理等。
实验结果经过编写、编译和运行,我们得到了一个简单的分支程序。
该程序可以根据给定的数字判断其是否是奇数,并将结果输出给用户。
下面是程序的源代码:pythonn = int(input("请输入一个整数: "))if n % 2 == 0:print("这是一个偶数。
")else:print("这是一个奇数。
")以下是程序运行的示例结果:请输入一个整数: 5这是一个奇数。
请输入一个整数: 8这是一个偶数。
实验总结通过本次实验,我们深入学习了分支程序的设计原理和实现方法,并通过编写一个简单的示例程序加深了对分支结构的理解。
分支程序实验实验报告

一、实验目的1. 理解分支程序的概念和作用。
2. 掌握C语言中if语句、switch语句的使用方法。
3. 能够根据实际需求,合理运用分支程序解决问题。
二、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 语言:C语言三、实验内容1. 使用if语句实现一个简单的分支程序。
2. 使用switch语句实现一个多分支程序。
3. 结合if语句和switch语句,编写一个综合性的分支程序。
四、实验步骤1. 使用if语句实现一个简单的分支程序(1)创建一个新的C语言项目,命名为“分支程序实验”。
(2)在主函数中,定义一个变量score用于存储用户输入的分数。
(3)使用scanf函数获取用户输入的分数。
(4)使用if语句判断分数所在的范围,并输出相应的评价。
(5)编译并运行程序,验证分支程序是否正确实现。
2. 使用switch语句实现一个多分支程序(1)在主函数中,定义一个变量num用于存储用户输入的数字。
(2)使用scanf函数获取用户输入的数字。
(3)使用switch语句根据用户输入的数字输出相应的结果。
(4)编译并运行程序,验证多分支程序是否正确实现。
3. 结合if语句和switch语句,编写一个综合性的分支程序(1)在主函数中,定义两个变量num和score。
(2)使用scanf函数分别获取用户输入的数字和分数。
(3)使用if语句判断数字是否在1到7之间,并使用switch语句根据分数输出相应的评价。
(4)编译并运行程序,验证综合性分支程序是否正确实现。
五、实验结果与分析1. 使用if语句实现简单的分支程序当用户输入分数为85时,程序输出“优秀”;输入分数为70时,程序输出“良好”;输入分数为60时,程序输出“及格”;输入分数低于60时,程序输出“不及格”。
2. 使用switch语句实现多分支程序当用户输入数字1时,程序输出“一”;输入数字2时,程序输出“二”;以此类推,直到输入数字7时,程序输出“七”。
实验三---分支结构程序设计实验报告-

XXX大学软件类实验报告
课程名称:C语言程序设计学号:
姓名:
班级:
指导教师:
开课学期:
学院:
XXX大学教务处
4.switch语句。
四、实验过程及内容:(运行结果请抓图到对应题目的下方)
1. 先分析以下程序,写出运行结果,再上机检验。
实验结果:
2.先分析以下程序,写出运行结果,再上机检验。
实验结果:
3.先分析以下程序,写出运行结果,再上机检验。
实验结果:
4. 程序改错题。
以下程序的功能是将a、b、c三个数从小到大进行排序,即使得a≤b≤c.。
程序中有一些错误,试将其改正并上机验证。
实验结果:
5. 程序填空题。
以下程序的功能是:从键盘接收一个字符,如果是小写英文字母,则将其转换为相应的大写字母;如果是大写英文字母,则将其转换为相应的小写字母;如果是其他字符,则不做转换。
填空将程序补充完整并上机验证。
实验结果:
6. 编程题。
根据以下分段函数计算y的值,x的值由键盘输入。
保留两位小数
输入格式:-2
输出格式:y=-2.00
实验代码:
实验结果:
7.输入一个正整数作为年份,编程判断该年是否为闰年。
若是输出“Yes”,否则输出“No”。
提
示:能被4整除,但不能被100整除的年份;或者能被400整除的年份。
实验代码:
实验结果:。
实验二C语言中的分支语句程序设计实验

实验二 C语言中的分支语句程序设计一、实验目的:1.掌握C语言的基本语法;2.掌握C语言的表达式运算及标准库函数的调用方法;3.掌握C语言的基本输入输出语句;4.掌握字符类型、整型和浮点型数据的输入输出及表达式计算方法;5.掌握if语句和switch语句的用法;6.掌握分支程序结构的设计思想;二、实验内容(一)分析程序,用程序验证下面各个表达式的值1、当整型变量a,b,c的值分别为3,4,5时,以下各语句执行后a,b,c的值为多少? (1) if(a>c) {a=b; b=c; c=a;}else {a=c; c=b; b=a;}执行后a,b,c的值为,,(2) if(a<c) a=c;else a=b; c=b; b=a;执行后a,b,c的值为,,(3) if(a!=c) ;else a=c; c=b; b=a;执行后a,b,c的值为,,2、若整数x分别等于95、87、100、43、66、79,57,则以下程序段运行后屏幕显示是什么?switch(x/10){ case 6:case 7: printf("Pass\n"); break;case 8: printf("Good\n"); break;case 9:case 10: printf("V eryGood\n"); break;case 5 : printf("Between Pass and Fail\n");default: printf("Fail\n");}x等于95时,程序段运行后屏幕上显示。
x等于87时,程序段运行后屏幕上显示。
x等于100时,程序段运行后屏幕上显示。
x等于43时,程序段运行后屏幕上显示。
x等于66时,程序段运行后屏幕上显示。
x等于79时,程序段运行后屏幕上显示。
x等于57时,程序段运行后屏幕上显示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《单片机实验》报告
实验名称分支程序设计实验
指导教师冬生
专业班级电子1103班
XXXXXX
学号 XXXXXXXXXXX 联系方式 XXXXXXXXXXX
一、任务要求
熟练掌握KeilC 环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、寻址方式等基本容的理解,掌握分支程序和简单程序的设计与调试方法,了解并行IO 口的使用
1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写程序。
240/22040
20X X Y X X X X ⎧≥⎪
=<<⎨⎪
≤⎩当当当
2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。
P
3.0为低电平时开始计时,为高电平时停止计时。
提高部分(选做):
a. 实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。
利用P3.7状态选择加、减计数方式。
b. 利用P3口低四位状态控制开始和停止计数,控制方式自定。
思考题:
1.实现多分支结构程序的主要方法有哪些?举例说明。
2.在编程上,十进制加1计数器与十六进制加1计数器的区别是什么?怎样用十进制加法指令实现减1计数?
二、设计思路
1.分段函数设计
第一个任务相当于一个分段函数程序,根据变量X 的值所处的区间进行相应的计算。
可利用比较转移指令CJNE 来判断X 是否等于临界值20、40,若不等,再根据执行CJNE 指令后的进位位CY 的值来判断X 与临界值的的大小关系,易知CY=0则X 大于临界值,CY=1则X 小于临界值;如此,再进行相应的计算。
另外若乘方运算结果大于255,高八位与低八位应分开存储;本次除法采用右移一位来处理,未考虑余数。
2. 24小时制时钟程序
首先构建一个三重循环实现“一秒延时”,循环体利用NOP 指令(单字节指令,1µs )经多次循环达到延时一秒的效果。
再利用已经构建好的“一秒延时”部分,设计计时系统:
秒(0-59)、分(0-59)、时(0-23)。
需要注意的是,在小时、分、秒达到59时,下一次应该为零。
程序运行时修改P3.0的值可以实现暂停和继续的功能。
三、资源分配
1.分段函数
假设该8位无符号数的地址2000H分配给它,把片外地址2001H和2002H分配给经分段函数计算得到的结果Y。
按位取反计算结果存于2001H单元,乘方计算中结果的高、低八位分开存储于2001H-2002H单元,除法运算结果放在2001H中。
寄存器A,B存放在乘除运算中所得的中间结果。
2.二十四小时制时钟
工作寄存器R0、R1、R2分别用于秒、分、时循环次数的计数,R5-R7用于“一秒延时”循环中的循环次数设定。
秒、分、时数值分别由P2、P1、P0端口输出。
四、流程图
1.分段函数
2.二十四小时制时钟
五、源代码(含文件头说明、资源使用说明、语句行注释)
1.分段函数
clr c ; 清零
mov dptr ,#2000h ; 取外部数据
movx a ,dptr
// mov a ,#1h
cjne a,#14h ,cmp20 ; 与20比较大小qufan: cpl a ;
inc dptr
movx dptr ,a
sjmp jieshu
cmp20: jc qufan
cjne a ,#28h , cmp40 ; 与40比较大小sq: mov r7, a ; 平方
mov b , r7
mul ab
inc dptr
movx dptr ,a
mov a, b
inc dptr
movx dptr ,a
sjmp jieshu
cmp40: jnc sq
chu2: rr a ; 除以2(右移一位)inc dptr
movx dptr ,a
sjmp jieshu
jieshu: nop
end
2.二十四小时制时钟
start: mov r0,#01h ; 寄存器初始化
mov r1,#01h
mov r2,#01h
mov p0 ,#00h ; 端口初始化
mov p1 ,#00h
mov p2 ,#00h
mov a ,#0
// setb p3.0 ; 设置、判断p3.0
clr p3.0
jb p3.0 ,$
onesec: mov r7 , #10 ; 1秒延时
del1: mov r6 ,#200
nop
del2: mov r5,#248
del3: djnz r5 ,del3
djnz r6 ,del2
djnz r7 ,del1
mov p2 ,r2 ; 把秒数送入p2
mov a,r2
add a,#01h
da a
mov r2 ,a
cjne r2 ,#60h ,onesec ; 判断r2是否计到60,跳转
onemin: mov r2 ,#01h ; 把r2,p2初始化,开始分钟计数mov p2 ,#00h
mov p1 ,r1
mov a ,r1
add a ,#01h
da a
mov r1 ,a
cjne r1 ,#60h, onesec ; 判断r1是否计到60,跳转
hour: mov r2 ,#01h ; 把r2,p2,r1,p1初始化,开始小时计数mov p2 ,#00h
mov r1 ,#01h
mov p1 ,#00h
mov p0 ,r0
mov a ,r0
add a ,#01h
da a
mov r0 ,a
cjne r0 ,#24h ,onesec ; 判断r0是否计到24,跳转
sjmp start
end
六、程序测试方法与结果、软件性能分析
1.分段函数
X=01H
X=1EH
X=31H
功能分析:该程序可正常执行要求的3项功能
2.二十四小时制时钟
功能分析:该程序运行后可按正确的二十四小时制时钟进行计时,程序功能完整可靠。
【思考题】
●实现多分支结构程序的主要方法有哪些?举例说明。
答:一是利用条件转移指令实现,如DJNZ,JNC等等,二是利用分支表来实现,如分支地址
表、转移指令表、地址偏移量表。
●在编程上,十进制加1计数器与十六进制加1计数器的区别是什么?怎样用十进制加法指令实现减1计数?答:十进制加一后需要在计算结果的基础上进行修正,运用DA指令,而十六进制加一指令
所得结果即为最终结果,无需进行修正。
用十进制加法指令实现减1计数,可通过以下代码实现: ADD A , #63H
DA A。