分支程序实验

合集下载

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

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

实验二 分支结构程序设计实验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语句。

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整除的年份。

实验代码:
实验结果:。

汇编语言程序设计实验报告二(分支循环程序实验)

汇编语言程序设计实验报告二(分支循环程序实验)

汇编语言程序设计实验报告二(分支循环程序实验)一、实验目的1、掌握分支程序、循环程序的设计方法。

2、熟悉DEBUG程序的使用方法。

3、掌握汇编语言程序的编辑、汇编、连接以及调试过程。

二、实验内容1、编写一程序,将内存中某一区域的数据传送到另一个区域中(要求用循结构,不考虑数据块重叠问题)。

2、编写一程序,将内存中某一区域的数据传送到另一区域(要求考虑数据块重叠问题)。

三、实验准备1、预习数据传送指令,熟悉分支和循环程序设计方法。

2、预习DEBUG调试程序的使用方法。

3、根据实验内容要求,编写好实验源程序。

四、实验步骤1、用QE或其它编辑软件,在计算机上编辑源程序,使其正确无误。

2、汇编、连接源程序,产生.EXE可执行文件。

3、运行程序。

(1) 进入DEBUG。

打入DEBUGT MYPROG.EXE。

MYPROG为所编程序的文件名。

(2) 先用G命令连续剧连续执行程序,程序执行完毕后,观察运行结果。

如果执行后是对的,说明程序编写是正确的,如果结果不对,说明程序有错误,则执行下一步。

(3) 检查程序。

在程序中设置若干断点,以便杳出错误所在。

(4) 采用单步命令T或执行程序,观察各寄存器和存储单元内容,以便找到错误之处。

五、实验报告要求1、列出程序清单,并给出程序流程图。

2、总结实现数据传送的几种方法,指出它们的区别。

开始3、分析实验中所遇到的一些问题,分析错误原因。

4、说明本实验中是如何使用DEBUG进行调试的。

CX、SI、DI置初值六、流程图勤开始设置增量方式CX、SI、DI置初值保存SI内容AL [SI] SI SI+源块长度[DI] AL N SI>DIYSI SI+1 恢复SI内容恢复SI内容DI DI+1CX CX-1 设置减量方式N CX=0, SI指向源块末尾DI指向目的块末尾Y结束 [DI] [SI]题一流程图 N 传完了吗, 书馆 Y结束题二流程图七、程序清单题一程序清单:STACK SEGMENT STACK ‘STACK’DB 100 DUP(0)STACK ENDSDATA SEGMENT PARA ‘DATA’SOUR DB 0、1、2、3、4、5、6、7、8、9 DEST DB 10 DUP(,)DB ‘$’DATA ENDSSEGMENT PARA‘CODE’ASSUME CS:CODEMAIN PROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV CX,10MOV SI,offset SOURMOV DI, offset DESTAGAIN: MOV AL,[SI]MOV [DI],ALINC SIIN DILOOP AGAINMOV DX,offset DESTMOV AH,09HINT 21HRETMAIN ENDPCODE ENDSEND START题二程序清单:DATA SEGMENT PARA ‘DATA’STRG DB ‘ABCDEFGHIJKLMNOP’STG1 EQU STRG+4STG2 EQU STHG+8STRSE EQU 6DATA ENDSSTACK SEGMENT PARA ‘CODE’DB 100 DUP(0) STACK ENDSCODE SEGMENT PARA ‘CODE’ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK PROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXMOV CX,STRSEMOV SI,OFFSET STG1MOV DI,OFFSET STG2CLDPUSH SIADD SI,STRSE-1CMP SI,DIPOP SIJL MOVESTDADD SI,STRSE-1ADD DI,STRSE-1 MOVE: REP MOVSB RETMAIN ENDPCODE ENDSEND START。

实验二C语言中的分支语句程序设计实验

实验二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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

成绩:计算机原理实验室实验报告
课程:汇编语言与微机原理
姓名:
专业:网络工程
学号:
日期:2016年12月
太原工业学院
计算机工程系
实验二:分支程序实验
实验环境PC机+Win 2003+emu8086 实验日期2016.11 一.实验内容
1.实现两位十进制数猜数字游戏。

基本要求:从键盘输入两位数和程序中预设数值比较,当输入数据大于预设数值时,屏幕输出‘>’;当输入数据小于预设数值时,屏幕输出‘<’;当输入数据等于预设数值时输出‘=’并退出。

2.在实现上述基本功能的基础上,注意显示输出时的格式控制,实现每次输出都换行。

3.扩展实现:当输入数据大于预设数值两倍以上时,显示输出远大于‘>>’;当输入数据比预设数值的二分之一还小时,显示输出远小于‘<<’。

二.理论分析或算法分析
基础要求,在初始时,假设要猜的数位50,程序运行时将其转换为BCD传给CX,然后通过中断输入第一个数,假设为(11),然后将其与50进行比较,会有三种分支(大于,等于,小于),然后通过转移指令输出(>,<,=),然后再跳到程序开始端继续输入,继续判断跳到哪个分支,知道输入的数等于要猜的数50,程序结束
拓展要求,只需在原基础上进行修改,判断,当输入的数小于初始数的1/2或大于初始数的2倍,则显示<<或>>
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)基础要求
org 100h
jlp:
mov AX, Num
aad
mov cx, ax
mov AH, 1
int 21h
mov BH, al
int 21h
mov BL, al
and bx, 0f0fH
mov ax, bx
aad
mov bx, ax
cmp bx, cx
jz jequ
ja jbig
mov dl, '<'
mov ah, 2
int 21h
jmp jp1
jbig:
mov dl, '>'
mov ah, 2
int 21h
jmp jp1
jp1:
mov dl, 13
int 21h
mov dl, 10
int 21h
jmp jlp
jequ:
mov dl, '='
mov ah, 2
int 21h
jmp $
Num dw 0500h ret
拓展要求
org 100h
jlp:
mov AX, Num aad
mov cx, ax
mov AH, 1
int 21h
mov BH, al
int 21h
mov BL, al
and bx, 0f0fH mov ax, bx
aad
mov bx, ax
cmp bx, cx
jz jequ
ja jbig
mov dl, '<'
mov ah, 2
int 21h
shl bx,1
cmp bx,cx
jae jp1
mov ah,2
int 21h
jmp jp1
jbig:
mov dl, '>'
mov ah, 2
int 21h
shr bx,1
cmp bx,cx
jbe jp1
int 21h
jmp jp1
jp1:
mov dl, 13
int 21h
mov dl, 10
int 21h
jmp jlp
jequ:
mov dl, '='
mov ah, 2
int 21h
jmp $
Num dw 0305h
ret
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)基础要求
拓展要求
五.结论
通过本次实验,是我对分支程序有了更多的了解与认识,以及对部分中断和转移类指令有
了更深的理解,之前一直困扰的关于BCD码修正和比较大小也得到了解决,总之实验收获颇多!。

相关文档
最新文档