分支程序的设计实验

合集下载

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

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

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

实验二 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时,程序段运行后屏幕上显示。

实验3 分支结构程序设计

实验3 分支结构程序设计

2.3 实验3 选择结构程序设计2.3.1 实验学时:2学时2.3.2实验目的1. 掌握C语言关系表达式和逻辑表达式的运算和使用。

2. 正确使用条件控制语句(if语句、switch语句)进行选择结构程序设计。

2.3.3 预习要求1.关系运算符和关系表达式、逻辑运算符和逻辑表达式。

2.if语句的三种形式(单分支、双分支、多分支),以及if语句的嵌套。

3.switch语句的形式。

2.3.4实验内容1. 阅读程序,分析结果,并上机验证。

(1) 阅读下面的程序,理解逻辑运算的短路特性。

/* ex3-1 */#include "stdio.h"int main( ){int a = 3, b = 5, c = 8;if(a++ < 3 && c-- != 0) b = b + 1;printf("a=%d\tb=%d\tc=%d\n", a, b, c);return 0;}程序运行后a、b、c的值分别是。

(2) 根据下面两个程序的运行结果,理解case语句中break语句的作用。

/* ex3-2-1方法1 *//* 不含break的switch */#include "stdio.h"int main( ){int a, m = 0, n = 0, k = 0;printf("Please input an integer:");scanf("%d", &a);switch(a){case 1:m++;case 2:case 3:n++;case 4:case 5:k++;}printf("m=%d,n=%d,k=%d\n", m, n, k);return 0;}/* ex3-2-2 方法2 *//* 含break的switch */#include "stdio.h"int main( ){int a, m = 0, n = 0, k = 0;printf("Please input an integer:");scanf("%d", &a);switch(a){case 1:m++; break;case 2:case 3:n++; break;case 4:case 5:k++;}printf("m=%d,n=%d,k=%d\n", m, n, k);return 0;}分别从键盘上输入1、3、5,两个程序运行的结果分别是、。

微机分支程序设计实验

微机分支程序设计实验

微机分支程序设计实验微机分支程序设计是计算机科学与技术领域中的一个重要实验,它涉及到程序设计中的条件判断和选择结构。

通过这个实验,学生可以深入理解程序的逻辑控制流程,掌握分支结构的实现方法,并能够应用这些知识解决实际问题。

以下是微机分支程序设计实验的详细内容。

实验目的1. 理解程序设计中的分支结构及其重要性。

2. 掌握条件语句的语法和使用方式。

3. 学会使用分支结构解决实际问题。

4. 提高编程能力和逻辑思维能力。

实验环境- 计算机一台,安装有编程软件(如Visual Studio, Dev-C++等)。

- 编译器(如GCC, MSVC等)。

- 必要的开发工具和文档。

实验内容1. 基础分支结构实验的第一部分是理解并实现基本的分支结构,包括`if`语句和`switch`语句。

- if语句:实现一个简单的程序,根据输入的条件执行不同的代码块。

- switch语句:编写程序,根据输入的值选择不同的执行路径。

2. 复合条件在第二部分,学生将学习如何使用逻辑运算符来构建复合条件。

- 使用`&&`(逻辑与)、`||`(逻辑或)和`!`(逻辑非)来构建更复杂的条件判断。

3. 嵌套分支第三部分将探讨分支结构的嵌套使用,即在一个`if`语句内部使用另一个`if`语句。

- 编写程序,实现多条件的判断和选择。

4. 应用实例在第四部分,学生将应用分支结构解决一些实际问题,如计算成绩等级、判断闰年等。

- 成绩等级:根据输入的成绩,使用分支结构输出相应的等级。

- 闰年判断:编写程序判断用户输入的年份是否为闰年。

实验步骤1. 需求分析:明确实验任务和目标。

2. 设计算法:根据实验要求设计合适的算法流程。

3. 编写代码:根据设计好的算法,使用编程语言实现程序。

4. 编译调试:在编程环境中编译程序,并调试以确保程序正确运行。

5. 结果测试:使用不同的输入测试程序,确保程序能够正确处理各种情况。

6. 文档编写:编写实验报告,记录实验过程、结果和心得体会。

分支程序设计实验实验报告

分支程序设计实验实验报告

分支程序设计实验实验报告————————————————————————————————作者:————————————————————————————————日期:ﻩ实验二分支程序设计实验实验报告实验名称:分支程序设计实验指导教师罗志祥专业班级光信1006 姓名张博学号U201013339 联系方式一、任务要求:熟练掌握K eil C环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、寻址方式等基本内容的理解,掌握分支程序和简单程序的设计与调试方法,了解并行IO 口的使用。

1. 设有8bits 符号数X 存于外部R AM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写程序。

240/2204020X X Y X X XX ⎧≥⎪=<<⎨⎪≤⎩当当当2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P 0、P 1、P2端口输出(以压缩B CD 码的形式)。

P3.0为低电平时开始计时,为高电平时停止计时。

提高部分(选做):a . 实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P 2口输出。

利用P3.7状态选择加、减计数方式。

b. 利用P3口低四位状态控制开始和停止计数,控制方式自定。

二、设计思路:1.分支函数程序设计:首先将X 赋给累加器A ,与40比较大小,将大于或等于40的执行乘方操作;小于40的再与20做比较,大于20的执行取除法操作,小于或等于20的执行取反操作。

最后将计算结果Y 存于片外的RAM 上。

2.电子时钟程序设计思路:首先用循环程序的嵌套实现一个1s 的延时,同时让记秒的端口P2同步加一,到60后清零;再让此循环执行60次实现1min 的延时,同时让P1同步加一,到60后清零;再让分钟的循环执行24次,实现1hour 的延时,同时让P 0同步加一。

至此循环,即可实现24小时的时钟功能。

(注:本计算机的晶振频率为12MHz)3.4位十进制加、减1计数程序思路:低位的个位和十位赋给一个寄存器,而将高位即百位千位赋给另外一个寄存器,通过循环程序使低位数循环100次即向高位进位或借位,高位循环100次后即回归初始状态,同时设计两个子函数分别执行加一、减一操作。

8086 汇编语言分支程序设计

8086 汇编语言分支程序设计

汇编语言程序设计实验报告学院:计算机科学与技术专业:计算机科学与技术班级:计科131MOV AH,2INT 21H ;显示高位ASCII 码MOV DL,BLAND DL,0FHCMP DL,9JBE NEXT2ADD DL,7NEXT2: ADD DL,30HMOV AH,2INT 21H ;显示低位ASCII 码MOV AH,4CHINT 21HCODE ENDS ;返回DOSEND START使用相应的文本编辑器建立文件three.asm,内容如上所示。

2.生成可执行文件:1>.汇编:C:\masm> masm three;2>.连接:C:\masm> link three;3.运行及调试:1>. 运行:C:\masm>debug three.exe-U0 ;通过反汇编查找程序的断点-T=0 2 ;加载数据段-D0 ;查看原始数据是否正确-G=0 XX ;运行程序至断点XX 处-R ;查看程序运行结果以上命令执行的细节可参照实验二中的说明。

4.调试:修改AL 的内容,判断此程序是否能正确显示其中的内容的方法。

例:修改AL 内容为9AH:-L ;重新加载可执行文件-A0 ;重新修改MOV AL,3EH 指令361E:0000 MOV AL,9A361E:0002-G=0 xx;带断点运行-R ;查看程序运行结果实验二:编写一个数据区移动程序,要考虑源数据区与目的数据区有重叠的情况。

1.源程序如下所示,编辑下面的源程序到文件lab.asm 中:使用相应的文本编辑器建立文件lab.asm,内容如上所示。

2.生成可执行文件:1>.汇编:C:\masm> masm lab;2>.连接:C:\masm> link lab;N1:INC NUMBERJMP NUMBERJMP AGAINN2:INC CHARJMP AGAINEXIT:LEA DX,STR1MOV AH,09HINT 21HMOV DL,NUMBERADD DL,30HMOV AH,2INT 21HLEA DX,STR2MOV AH,09HINT 21HMOV DL,CHARADD DL,30HMOV AH,2INT 21HLEA DX,STR3MOV AH,09HINT 21HMOV DL,RESTADD DL,30HMOV AH,2INT 21HMOV AH,4CHINT 21HCODE ENDSEND START使用相应的文本编辑器建立文件lab1.asm,内容如上所示。

分支结构程序设计实验报告

分支结构程序设计实验报告

分支结构程序设计实验报告实验目的本次实验旨在通过编写分支结构程序,加深对分支结构的理解,并提高编写程序的能力。

实验内容本次实验分为两个部分,分别为编写一个判断分数等级的程序和一个银行利率计算程序。

判断分数等级编写一个程序,根据输入的分数输出对应的等级。

等级规则如下:- 90分以上:优秀- 80-89分:良好- 70-79分:中等- 60-69分:及格- 60分以下:不及格银行利率计算编写一个程序,根据输入的存款金额和存款期限计算出存款到期后的本息合计。

假设银行利率为年利率,根据存款期限的不同,利率如下:- 存款期限小于等于1年:年利率为3%- 存款期限大于1年小于等于3年:年利率为4% - 存款期限大于3年:年利率为5%实验步骤判断分数等级程序思路1. 接收用户输入的分数。

2. 使用if-elif-else语句判断分数所处的等级范围。

3. 根据判断结果,输出对应的等级。

银行利率计算程序思路1. 接收用户输入的存款金额和存款期限。

2. 使用if-elif-else语句判断存款期限范围。

3. 根据判断结果,计算存款到期后的本息合计。

4. 输出存款到期后的本息合计。

实验代码判断分数等级程序代码pythonscore = float(input("请输入分数:"))if score >= 90:print("优秀")elif score >= 80:print("良好")elif score >= 70:print("中等")elif score >= 60:print("及格")else:print("不及格")银行利率计算程序代码pythonamount = float(input("请输入存款金额:")) period = float(input("请输入存款期限:"))if period <= 1:interest_rate = 0.03elif period <= 3:interest_rate = 0.04else:interest_rate = 0.05total_amount = amount * (1 + interest_rate)print("存款到期后的本息合计为:", total_amount)实验结果与分析判断分数等级程序当输入分数为85时,程序输出良好,符合预期。

实验二 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("VeryGood\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时,程序段运行后屏幕上显示。

分支程序设计实验实验报告

分支程序设计实验实验报告
MOV B,A
MUL AB
MOV DPTR,#2001H ;低位存入片外RAM中2001H
MOVX @DPTR,A
INC DPTR
MOV A,B
MOVX @DPTR,A;高位存入片外RAM中2002H
STOP:SJMP $
END
2)
ORG 0000H
MOV R0,#0;R0,R1,R2置0
MOV R1,#0
MOV DPTR,#2000H
MOVX @DPTR,A ;将数存入片外RAM
MOV DPTR,#2000H
MOVX A,@DPTR;从片外RAM中取数X
MOV R7,A
CLR C
MOV R0,#40H;对X的值进行比较
SUBB A,R0
JNCMUTI
MOV R1,#20H
CLR C
MOV A,R1
SUBB A,R7
MOV R0,#0;
MOV P2,#0;
INC R1;分钟计数
MOV A,R1
ACALL OUTPUT;转化为bcd码
MOV P1,A
CJNE R1,#60,START;60进制判断
MOV R1,#0;
MOV P1,#0;
INC R2;时钟计数
MOV A,R2;
ACALL OUTPUT;计算bcd码
3.4位十进制加、减1计数程序思路:低位的个位和十位赋给一个寄存器,而将高位即百位千位赋给另外一个寄存器,通过循环程序使低位数循环100次即向高位进位或借位,高位循环100次后即回归初始状态,同时设计两个子函数分别执行加一、减一操作。其中,用P3的第7位的状态实现对计数与否的控制。
三、资源分配:
1.分支函数程序:A:累加器C:位操作B:做乘方的寄存器DPTR:片外寻址指针2000H、2001H、2002H:片外存储空间

分支程序设计实验报告

分支程序设计实验报告

一、实验目的1. 理解分支程序设计的概念和作用。

2. 掌握分支语句(如if语句)的使用方法。

3. 通过实际编程练习,提高编程能力和逻辑思维能力。

二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm三、实验内容本次实验主要涉及分支程序设计的基本概念和编程实现。

具体内容包括:1. 理解分支程序设计的基本原理。

2. 掌握if语句、elif语句和else语句的使用。

3. 编写分支程序,实现特定功能。

四、实验步骤1. 理解分支程序设计的基本原理。

分支程序设计是一种根据不同条件执行不同操作的程序设计方法。

在Python中,分支语句主要是指if语句、elif语句和else语句。

2. 编写分支程序,实现特定功能。

以下是一个简单的分支程序示例,用于判断用户输入的数字是正数、负数还是零。

```python# 用户输入一个数字num = float(input("请输入一个数字:"))# 使用分支语句判断数字的正负if num > 0:elif num < 0:print("输入的数字是负数。

")else:print("输入的数字是零。

")```3. 分析实验结果。

根据上述程序,当用户输入一个正数时,程序会输出“输入的数字是正数。

”;当用户输入一个负数时,程序会输出“输入的数字是负数。

”;当用户输入零时,程序会输出“输入的数字是零。

”4. 修改程序,增加更多功能。

为了提高程序的实用性,我们可以增加一些功能,如:- 判断用户输入的是整数还是小数。

- 根据用户输入的数字,输出对应的中文数字。

以下是修改后的程序:```python# 用户输入一个数字num = float(input("请输入一个数字:"))# 使用分支语句判断数字的正负if num > 0:print("输入的数字是正数。

分支程序设计实验报告

分支程序设计实验报告

分支程序设计实验报告
实验名称:分支程序设计实验报告
实验目的:通过分支程序设计的实验,深入理解程序运行的基本
原理,掌握分支语句的应用方法,提高编写程序的能力和水平。

实验原理:分支程序设计是一种基于逻辑运算的程序结构,它可
以根据不同的条件,选择不同的执行路径,从而实现程序不同的输出
效果。

实验过程:首先,确定需要实现的程序功能,并根据程序逻辑设
计分支语句。

然后,使用编程工具编写代码,调试程序,运行程序。

最后,对程序进行测试和优化,达到预期的效果。

实验结果:通过实验,我深入理解了分支程序设计的基本原理和
应用方法。

我能够设计和编写简单的分支程序,实现不同的输出结果。

我还学会了如何测试和优化程序,以达到最佳的执行效果。

通过实验,我提高了编写程序的能力和水平。

实验总结:分支程序设计是计算机编程中非常重要的一部分,掌
握分支语句的应用方法可以提高编写程序的效率和质量。

通过实验,
我能够利用分支语句来设计程序,实现复杂的逻辑运算和条件判断。

我对编程语言的掌握和应用能力也有了进一步的提高。

我相信,凭借
自己的勤奋努力和不断的实践,我一定能成为一名优秀的程序员。

分支程序设计实验

分支程序设计实验

分支程序设计实验1. 实验目的本实验旨在通过编写分支程序,加深对分支结构的理解,并掌握使用分支语句进行程序设计的能力。

2. 实验背景分支结构是计算机程序中的一种重要控制结构,它根据条件的真假来选择执行不同的代码块。

分支结构通常使用if语句、switch语句等来实现。

掌握分支结构的使用对于编写复杂的程序非常重要。

3. 实验内容本次实验要求编写一个分支程序,根据用户输入的成绩判断其对应的等级,并输出相应的提示信息。

4. 实验步骤步骤一:定义变量和输入首先,定义一个变量score来存储用户输入的成绩。

然后,通过输入函数从用户处获取成绩,并将其赋值给score变量。

步骤二:编写分支程序根据成绩的不同范围,使用if语句来判断其对应的等级,并输出相应的提示信息。

以下是一个示例代码:if score >= 90:print("你的成绩为A级,非常优秀!")elif score >= 80:print("你的成绩为B级,很不错!")elif score >= 70:print("你的成绩为C级,还可以!")elif score >= 60:print("你的成绩为D级,勉勉强强!")else:print("你的成绩为E级,需要努力!")步骤三:输出结果根据用户输入的成绩,程序将会根据判断条件输出相应的等级和提示信息。

5. 实验结果假设用户输入的成绩为85,根据上述分支程序,程序将会输出以下结果:"你的成绩为B级,很不错!"6. 实验总结通过本次实验,我们学习了如何使用分支结构来编写程序。

分支结构是一种非常重要的控制结构,能够根据不同的条件选择执行不同的代码块。

合理使用分支结构可以使程序更加灵活和智能。

在实际编程中,我们可以根据具体需求设计不同的分支程序,以实现更复杂的功能。

【实验指导书】实验3:分支结构程序设计

【实验指导书】实验3:分支结构程序设计

实验三:分支结构程序设计一、实验目的:1. 熟练掌握关系表达式和逻辑表达式的使用;2. 熟练掌握用嵌套的if语句和switch语句实现多分支结构程序设计;3. 熟练掌握switch语句中break语句的作用;4. 掌握简单的调试程序方法,包括:单步调试和运行到光标。

二、实验要求:1.编写程序,计算分支函数。

要求:输入为任意实数,输出结果保留小数点后2位。

输入输出示例:Enter x:227.00提示:实现x n可以标准库函数pow(x,n),此数学函数已在头文件math.h中说明。

2.编写程序。

根据一个年份,判断是否是闰年。

要求:输入为一个整数,表示一个年份;输出:如果是闰年,输出"Y es",否则输出"No"。

输出单独占一行。

输入输出示例:Enter year:2012Yes3. 编写程序。

给你三个正整数,判断用这三个整数做边长是否能构成一个三角形。

要求:输入为三个正整数,中间有一个空格隔开;输出:如果能构成三角形,输出"Yes",否则输出"No"。

提示:在一个三角形中,任意两边之和大于第三边。

输入输出示例:3 4 5Yes4.输入五级制成绩(A~E),输出相应的百分制(0~100)区间。

要求用switch语句。

五级制对应的百分制成绩区间为:A(90~100)、B(80~89)、C(70~79)、D((60~69))、E(0~59)。

输入输出示例:Input Grade:BB对应的百分制成绩区间是80~895.编写程序,输入月薪salary,输出应交的个人所得税tax(保留2位小数)。

按照2011年开始实行的新的个人所得税法,计算公式为:tax=rate*(salary - 3500)- deduction当salary ≤3500时,rate = 0、deduction = 0;当3500 <salary ≤5000时,rate = 3%、deduction = 0;当5000 <salary ≤8000时,rate = 10%、deduction = 105;当8000 <salary ≤12500时,rate = 20%、deduction = 555;当12500 <salary ≤38500时,rate = 25%、deduction = 1005;当38500 <salary ≤58500时,rate = 30%、deduction = 2755;当58500 <salary ≤83500时,rate = 35%、deduction = 5505;当83500 <salary时,rate = 45%、deduction = 13505。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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。

相关文档
最新文档