分支与循环程序设计实验报告
循环程序设计实验报告
循环程序设计实验报告
实验名称:循环程序设计实验报告
实验目的:
本实验旨在通过编写循环程序,提高学生对循环结构的理解和应用
能力,并培养学生的编程思维和解决问题的能力。
实验要求:
1.熟悉循环结构的基本原理和应用场景。
2.掌握使用循环结构解决实际问题的方法。
3.能够分析和设计能够利用循环结构优化的程序。
4.完成实验报告,详细记录实验过程和结果。
实验内容:
1.实验环境和工具
介绍实验所使用的编程环境和工具,包括操作系统、编程语言和开
发工具等。
2.实验题目和要求
描述实验要求和题目,明确实验要求和要解决的问题。
3.实验设计
介绍实验的设计思想和方法,包括解决问题的整体思路和基本步骤。
4.实验步骤
按照设计思路和方法,详细描述实验的具体步骤,包括程序的编写、调试和运行等。
5.实验结果与分析
展示实验的运行结果,并对结果进行详细分析和解释。
6.实验总结
总结实验的过程和结果,提出实验中存在的问题和改进的方向。
附件:本实验涉及的附件包括但不限于实验源代码、实验数据和实
验报告等。
法律名词及注释:
1.版权:著作权法规定的个人或集体对作品享有的专有权利。
2.商标:商标法规定的商业标识,用以区分不同商家的商品或服务。
3.专利:专利法保护的发明创造,赋予发明人对其发明的独占权利。
循环的应用实验报告
循环的应用实验报告实验目的:探究循环的应用和实际意义。
实验步骤:1. 阅读循环的相关概念和应用,包括循环结构的语法、循环的分类及其特点等。
2. 设计一个实际生活场景,并使用循环来解决问题。
3. 编写程序代码,并进行测试和验证。
4. 总结实验结果,并思考循环的应用和实际意义。
实验结果:在实验中,我选择了一个实际生活场景——计算一个人一年中打电话的总时长。
假设这个人每天都会打电话,且每次通话时长不等。
通过使用循环结构,可以方便地进行多次的通话时长的累加操作。
下面是我编写的Python代码:total_duration = 0 # 所有通话时长的总和for i in range(365):duration = float(input("请输入第%d天的通话时长:" % (i+1)))total_duration += durationprint("一年中打电话的总时长为:%.2f小时" % total_duration)在程序中,我使用了一个`for`循环,循环的次数是365次,即一年的天数。
在每次循环中,用户需要输入当天的通话时长,并将其累加到`total_duration`变量中。
经过测试,我输入了一年中每天的通话时长,程序成功计算出了一年中打电话的总时长。
这说明循环结构的应用使得解决类似问题变得更加简单和高效。
实验总结:通过这个实验,我进一步理解了循环结构的应用和实际意义。
循环结构使得程序可以重复执行一段代码,从而实现一些需要重复操作的任务。
在实际生活中,循环结构的应用非常广泛。
比如,银行对用户账户的余额计算、超市对销售统计的处理、学校对学生考试成绩的计算等等,这些都需要使用循环结构来进行计算和处理。
循环结构的应用不仅使得程序更加高效,而且使得解决问题更加简单。
在实验中,我通过循环结构轻松地计算出了一年中打电话的总时长,如果没有循环结构,我可能需要手动累加365次通话时长,这样显然是低效且容易出错的。
分支与循环程序设计实验报告汇总
分支与循环程序设计实验报告汇总标准化管理部编码-[99968T-6889628-J68568-1689N]实验名称分支与循环程序设计实验指导教师罗志祥专业班级光电1406 姓名段昳晖学号 U2014*****联系电话 137********一、任务要求1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。
2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。
为低电平时开始计时,为高电平时停止计时。
设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。
二、设计思路1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。
将外部单元1000H中的X,通过分支判断,分别执行不同的语句,三条语句分别为标记为L1、L2、L3,先比较X与64的大小关系,再判断X与10的大小关系,主要利用比较转移指令CJNE,以及执行CJNE指令后的进位位CY,进一步比较大小,分别跳转至对应语句。
将结果存于外部单元的1001H以及1002H。
2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。
为低电平时开始计时,为高电平时停止计时。
设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。
主程序设计三层循环,分别对应时、分、秒,最内层安放一秒延时程序。
利用R0、R1、R2计数,R3保存分钟数、R4保存小时数,最内层循环60次,中循环循环1次,中循环60秒,外循环循环1次,外循环循环24次,清零。
其中对端口显示的秒数、分钟数、时间数,进行二进制修正。
利用循环来设计延时程序,合理计算语句长度,以及循环次数。
程序运行时修正的值,可以实现暂停计数和继续的功能。
微机原理实验报告-分支程序设计
实验三 分支程序设计一、实验要求和目的1.熟悉汇编语言程序设计结构;2.熟悉汇编语言分支程序基本指令的使用方法;3.掌握利用汇编语言实现单分支、双分支、多分支的程序设计方法。
二、软硬件环境1.硬件环境:微机CPU 486以上,500MB 以上硬盘,32M 以上内存; 2.软件环境:装有MASM 5.0、DEBUG 、LINK 和EDIT 等应用程序。
三、实验涉及的主要知识单元在实际应用中,经常根据一些条件来选择一条分支执行。
汇编语言的条件判断主要是通过状态寄存器中的状态位、无符号数相减或有符号和相减而导致的结果来进行。
下面就有符号数转移指令来了解在汇编语言程序设计方法。
四、实验内容与步骤1.实验内容(1)编写计算下面函数值的程序:⎪⎩⎪⎨⎧<-=>=0,10,00,1x x x y设输入数据为X 、输出数据Y ,且皆为字节变量,使用Debug 查看X 、Y 两个变量的数据(2)以ARRAY 为首地址的内存单元中,存放5个8位的不带符号数,找出5个数中的最大数,并将结果存入RESULT 字节单元中。
2.实验步骤 a.实验流程图(1)计算函数值的流程图b.编写程序(1)计算函数值的实验代码 DATA SEGMENT X DB 12 Y DB ?DATA ENDSSTACK SEGMENT STACK'STACK' DB 100H DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOV AL,XX CMP AL,0 ;把AX 与0比较JGE BIGPR ;0≥AL 转入BIGPR MOV Y,0FFFFH ;0<AL 则1-=Y JMP EXIT BIGPR: JE EQUPR ;0=AL 转入EQUPR MOV Y,1 ;0>AL 则1=Y JMP EXIT EQUPR: MOV Y,0;0=AL 则0=YEXIT: MOV AL,Y RET CODE ENDS END START(2)查找最大值的实验代码 DATA SEGMENT ARRAY DB 2,1,4,5,3 RESULT DB ? DATA ENDSSTACK SEGMENT STACK'STACK' DB 100H DUP(?) STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX LEA B X,ARRAY MOV AL,[BX] ;ARRAY 第一个数存入BXMOV CX,5 ;置循环次数 LOP: INC BX ;指针变量增1 CMP AL,[BX] ;比较AL 中数与[BX]的大小JAE L1;][BX AL ≥转入L1 MOVAL,[BX];][BX AL <则][BX AX ← L1: LOOP LOP;执行循环LOP 程序MOV RESULT,AL MOV AH,4CH INT 21H CODE ENDS END STARTc.对程序进行debug 调试,观察中间结果 (1)计算函数值的调试 1.反汇编内容①MOV AL,XX 反汇编后变成MOV AL,[0000],即XX 为数据段第一个存储单元的内容,数据段的起始偏移地址为0000。
实验报告1
实验报告1实验五正负数据分流程序设计一、实验目的1.掌握汇编语言程序的编写方法。
2.学习汇编语言程序的编辑、组装、连接、调试和运行的全过程。
3.掌握分支程序结构和循环程序结构的编程二、实验内容使用缓冲区的第一个地址设置内存缓冲区,以存储16个数字(字节)。
尝试将数据块中的正数(包括0)存储到起始地址为正的缓冲区中,将负数存储到起始地址为负的缓冲区中。
数据为F5H、46h、78h、4f、0bch、0dah、0abh、02h、12h、56h、0d5h、0ach、34h、89h、45h、0c3h。
三、实验步骤1.输入源程序,建立asm文件。
程序的编辑d:\\masm5>edit文件名.asm2.使用MASM宏汇编程序汇编源文件并生成目标文件obj。
程序汇编d:\\masm5>masm文件名;3.使用链接连接程序形成执行文件exe。
程序链接D:\\masm5>链接文件名;4.实施程序。
程序运行D:\\masm5>文件名5程序调试D:\\masm5>调试文件名Exe(或D:>debugd:\\masm5\\filename.Exe)四、思考题1.使用调试软件(.EXE文件形式)调试程序。
不执行任何命令,就可以使用D命令(dds:0)查看数据段的原始数据吗?为什么?2.如果汇编语言源程序通过汇编和链接,是否正确?为什么?5、实验报告1.画出程序流程图。
2.写出源程序清单。
数据段bufferdb0f5h,46h,78h,4fh,0bch,0dah,0abh,02h,12h,56h,0d5h,0ach,34h,89h,45h,0c3h plusdb16dup(?)minusdb16dup(?)dataendscodesegment假设:代码,ds:datastart:movax,datamovds,axmovcx,16movsi,offsetbufferleadi,plusleabx,minuslop:moval,[si]testal,80hjnzl1莫夫[di],艾尔incdijmpagainl1:mov[bx],alincbxjmpagain:印西looplopmovah,4chint21hcodeendsendstart3.回答思考问题1.首先用t命令顺序执行用户程序的前几条直到寄存器ds/es已预置为用户的数据段。
分支与循环程序设计实验-报告
实验名称 分支与循环程序设计实验指导教师 罗志祥专业班级 光电1406 姓名 段昳晖 学号 U2014***** 联系电话 137********一、任务要求1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。
264/2106410X X Y X X X X ⎧≥⎪=<<⎨⎪≤⎩ 当 当 当 2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。
P3.0为低电平时开始计时,为高电平时停止计时。
设计1s 延时子程序(延时误差小于10us ,晶振频率12MHz )。
二、设计思路1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。
264/2106410X X Y X X X X ⎧≥⎪=<<⎨⎪≤⎩ 当 当 当 将外部单元1000H 中的X ,通过分支判断,分别执行不同的语句,三条语句分别为标记为L1、L2、L3,先比较X 与64的大小关系,再判断X 与10的大小关系,主要利用比较转移指令CJNE,以及执行CJNE 指令后的进位位CY,进一步比较大小,分别跳转至对应语句。
将结果存于外部单元的1001H 以及1002H 。
2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。
P3.0为低电平时开始计时,为高电平时停止计时。
设计1s 延时子程序(延时误差小于10us ,晶振频率12MHz )。
主程序设计三层循环,分别对应时、分、秒,最内层安放一秒延时程序。
利用R0、R1、R2计数,R3保存分钟数、R4保存小时数,最内层循环60次,中循环循环1次,中循环60秒,外循环循环1次,外循环循环24次,清零。
微机原理软件实验报告
信息与通信工程学院微机原理软件实验报告班级:姓名:学号:日期:2011年12月实验一DEBUG的使用 (1)一、实验目的 (1)二、实验内容 (1)三、预习思考 (3)四、实验过程 (4)五、实验总结 (9)实验二分支、循环程序设计 (10)一、实验目的 (10)二、实验内容 (10)三、预习思考 (10)四、实验过程 (10)(一)、流程图 (11)(二)、源代码 (11)(三)、实验分析 (11)五、实验总结 (14)实验三代码转换程序设计 (15)一、实验目的 (15)二、实验内容 (15)三、预习思考 (15)四、实验过程 (16)(一)流程图 (16)(二)模块层次图 (16)(三)源代码 (17)(四)实验分析 (21)五、实验总结 (22)实验四子程序设计 (23)一、实验目的 (23)二、实验内容 (23)三、预习思考 (23)四、实验过程 (24)(一)流程图 (24)(二)模块层次图 (25)(三)源代码 (25)(四)实验分析 (34)五、实验总结 (35)实验五中断程序设计 (37)一、实验目的 (37)二、实验内容 (37)三、预习思考 (37)四、实验过程 (38)(一)流程图 (38)(二)源代码 (39)(三)实验分析 (45)五、实验总结 (46)实验一 DEBUG 的使用一、实验目的1.掌握汇编程序的编辑、编译、连接和执行的全过程;2.学习和掌握用DEBUG调试程序的方法。
二、实验内容1.用编辑软件,输入以下汇编语言源程序:DAT SEGMENTA DB 20B DB 15Y DB 3 DUP(0)Z DB 0,0DAT ENDSSTA SEGMENT STACKDW 50 DUP(?)STA ENDSCOD SEGMENTASSUME CS:COD,DS:DATSTAR PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATMOV DS,AXMOV AX,STAMOV SS,AXMOV AL,AMOV Z,ALMOV Z+1,ALCALL SUB1MOV AL,BMOV Z,ALMOV Z+1,ALCALL SUB1MOV AL,AMOV Z,ALMOV AL,BMOV Z+1,ALCALL SUB1ADD WORD PTR Y,AXADC BYTE PTR[Y+2],0RETSTAR ENDPSUB1 PROCMOV AL,ZMOV AH,Z+1MUL AHADD WORD PTR Y,AXADC BYTE PTR[Y+2],0RETSUB1 ENDPCOD ENDSEND STAR2.通过编译,连接形成可执行文件。
c语言实验报告分析总结3篇
c语言实验报告分析总结3篇c语言实验报告分析总结1在科技高度发展的今天,计算机在人们之中的作用越来越突出。
而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。
在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。
包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。
对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。
因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。
为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。
课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1.加深对课堂讲授内容的'理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。
然而要使用c语言这个工具解决实际问题,又必须掌握它。
通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。
分支与循环程序设计实验报告
实验名称分支与循环程序设计实验指导教师罗志祥 ___________专业班级光电1406 姓名段昳晖学号U2014*****联系电话137********、任务要求1.设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单兀,请按要求编写完整程序。
X2当X64Y X /2当10X 64X当X102.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。
P3.0为低电平时开始计时,为高电平时停止计时。
设计1s延时子程序(延时误差小于10us,晶振频率12MHZ。
二、设计思路1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。
X2当X64Y X /2当10X 64X当X10将外部单元1000H中的X,通过分支判断,分别执行不同的语句,三条语句分别为标记为L1、L2、L3,先比较X与64的大小关系,再判断X与10的大小关系,主要利用比较转移指令CJNE,以及执行CJNE指令后的进位位CY,进一步比较大小,分别跳转至对应语句。
将结果存于外部单元的1001H以及1002H=2. 利用51系列单片机设计一个 24小时制电子时钟,电子时钟的时、分、秒数值分别 通过PO 、P1、P2端口输出(以压缩 BCD 码的形式)。
P3.0为低电平时开始计时,为高电平 时停止计时。
设计 1s 延时子程序(延时误差小于 10us ,晶振频率12MHZ 。
主程序设计三层循环,分别对应时、分、秒,最内层安放一秒延时程序。
利用RO R1、R2计数,R3保存分钟数、R4保存小时数,最内层循环 60次,中循环循环1次,中循环60 秒,外循环循环1次,外循环循环24次,清零。
其中对端口显示的秒数、分钟数、时间数, 进行二进制修正。
利用循环来设计延时程序,合理计算语句长度,以及循环次数。
分支程序设计实验报告
分支程序设计实验报告
实验名称:分支程序设计实验报告
实验目的:通过分支程序设计的实验,深入理解程序运行的基本
原理,掌握分支语句的应用方法,提高编写程序的能力和水平。
实验原理:分支程序设计是一种基于逻辑运算的程序结构,它可
以根据不同的条件,选择不同的执行路径,从而实现程序不同的输出
效果。
实验过程:首先,确定需要实现的程序功能,并根据程序逻辑设
计分支语句。
然后,使用编程工具编写代码,调试程序,运行程序。
最后,对程序进行测试和优化,达到预期的效果。
实验结果:通过实验,我深入理解了分支程序设计的基本原理和
应用方法。
我能够设计和编写简单的分支程序,实现不同的输出结果。
我还学会了如何测试和优化程序,以达到最佳的执行效果。
通过实验,我提高了编写程序的能力和水平。
实验总结:分支程序设计是计算机编程中非常重要的一部分,掌
握分支语句的应用方法可以提高编写程序的效率和质量。
通过实验,
我能够利用分支语句来设计程序,实现复杂的逻辑运算和条件判断。
我对编程语言的掌握和应用能力也有了进一步的提高。
我相信,凭借
自己的勤奋努力和不断的实践,我一定能成为一名优秀的程序员。
分支与循环程序设计实验
一. 实验目的及实验环境实验目的:实验目的:1、掌握分支程序的设计方法。
、掌握分支程序的设计方法。
2、掌握宏定义及宏调用的基本方法。
、掌握宏定义及宏调用的基本方法。
3、了解小写和大写字母的ASCII 码表示及其转换方法。
了解数字及其它字符在的ASCII 码表示方法。
码表示方法。
4、掌握循环程序的设计方法。
、掌握循环程序的设计方法。
5、掌握比较指令、转移指令和循环指令的使用方法。
6、进一步掌握调试工具的使用方法、进一步掌握调试工具的使用方法 实验环境:实验环境:80x86系列微型计算机一台以及进行汇编语言程序设计所必需的编程工具(文本编辑器、(文本编辑器、ASM.EXE ASM.EXE ASM.EXE、、LINK.EXE LINK.EXE、、DEBUG.EXE DEBUG.EXE)) 二. 实验内容 1、 从键盘输入一字符,判断该字符是小写字母、大写字母、数字或其它字符。
若输入为小写字母,显示“若输入为小写字母,显示“You Input a Lowercase Letter You Input a Lowercase Letter You Input a Lowercase Letter!!”;若输入为大写字母,写字母,显示显示显示““You Input a Uppercase Letter Letter!!”; 若输入为数字,若输入为数字,显示显示“You Input a Digit Input a Digit!!”; 若输入为其它字符,显示“若输入为其它字符,显示“You Input Other Letter You Input Other Letter You Input Other Letter!!”。
2、计算1+2+……n=?n=?,其中,其中n 通过键盘输入。
要求在屏幕上提供如下信息:上提供如下信息:Please input a number(1~627): ;出现此信息后通过键盘输入一个小于628的无符号整数1+2+1+2+……..n=sum ;其中n 为用户输入的数,为用户输入的数,sum sum 为所求的累加和为所求的累加和 程序运行情况如下图所示(说明:图中所运行程序允许累加和不大于一个32位二进制数所能表示的范围)。
实验3 分支和循环程序设计报告
实验3 分支和循环程序设计实验目的:熟练掌握分支和循环结构的设计方法,熟悉跳转和循环指令的使用方法。
实验要求:按照要求编写程序,调试运行。
实验内容:1、编写程序实现下面的算法:ifthenlowerCount+1;elseif(ch≥’A’) and (ch≤’Z’)thenupperCount+1elseotherCount+1;endifendif其中ch调用ReadChar输入,lowerCount, upperCount和otherCount的值用WriteUDecByte显示。
源代码.386.model flat,stdcallinclude\masm32\include\io32.inc.stack 4096.datalowercount Byte ?uppercount Byte ?othercount Byte ?prompt1 byte "Input a string(if(#)end)",0dh,0ah,0prompt2 byte "output the number",0dh,0ah,0prompt3 byte "the lowercount number:",0dh,0ah,0prompt4 byte "the uppercount number:",0dh,0ah,0prompt5 byte "the othercount number:",0dh,0ah,0buf byte 80 dup(?).codestart:writestring prompt1 readstring buflea edi,bufagain:mov al,[edi]cmp al,'#'jz donecmp al,'A'jb othercmp al ,'Z'jbe uppercmp al,'a'jb othercmp al,'z'jbe lowerjmp otherlower: inc lowercount inc edijmp againupper:inc uppercount inc edijmp againother: inc othercount inc edijmp againdone:writestring prompt2 writecrlfwritestring prompt3 writeUDecByte lowercount writecrlfwritestring prompt4 writeUDecByte uppercount writecrlfwritestring prompt5 writeUDecByte othercount retend start实验结果结果1结果22、编写程序从键盘输入一系列有符号数,找出其中的最大数和最小数,显示运行结果。
程序设计实践实验报告
程序设计实践实验报告《程序设计实践实验报告》在程序设计课程中,学生们经常需要完成各种实践实验,以加深对编程语言和算法的理解,并提高实际编程能力。
本次实验报告将介绍我们在程序设计实践中所进行的实验内容和实验结果。
实验一:基本语法和数据类型在这个实验中,我们学习了编程语言的基本语法和数据类型,包括变量的声明和赋值、条件语句、循环语句以及各种数据类型的使用。
通过编写简单的程序,我们掌握了如何正确地使用这些语法和数据类型,并且能够编写出简单的程序来解决实际问题。
实验二:数组和函数在这个实验中,我们学习了数组的定义和使用,以及函数的声明和调用。
我们通过编写程序来实现对数组的各种操作,比如查找最大值、最小值、求和等。
同时,我们也学会了如何编写函数来实现特定的功能,并且能够正确地调用这些函数。
实验三:面向对象编程在这个实验中,我们学习了面向对象编程的基本概念和语法,包括类的定义和对象的创建。
我们通过编写程序来实现面向对象的思想,比如定义一个学生类,然后创建多个学生对象,并对这些对象进行各种操作。
实验四:算法设计与实现在这个实验中,我们学习了一些常用的算法,比如排序算法、搜索算法等。
我们通过编写程序来实现这些算法,并且对它们进行测试和分析,以便更好地理解这些算法的原理和性能。
通过这些实验,我们不仅加深了对编程语言和算法的理解,还提高了实际编程能力。
我们相信,在今后的学习和工作中,这些实验经验将会对我们产生积极的影响。
希望通过这份实验报告,能够让更多的人了解到程序设计实践的重要性,以及它对我们的学习和成长所带来的益处。
分支指令实验报告
一、实验目的1. 理解分支指令的概念及其在程序设计中的作用。
2. 掌握分支指令的使用方法,包括条件分支和无条件分支。
3. 通过实际编程,加深对分支指令的理解和应用。
二、实验环境1. 操作系统:Windows 102. 编程语言:C语言3. 编译器:MinGW三、实验内容1. 分支指令的概念和分类2. 条件分支指令(if语句)3. 无条件分支指令(goto语句)4. 分支指令的应用实例四、实验步骤1. 分支指令的概念和分类(1)分支指令的概念:分支指令是程序设计中的基本结构,用于根据条件判断执行不同的代码块。
(2)分支指令的分类:根据分支指令的作用,可以分为条件分支指令和无条件分支指令。
2. 条件分支指令(if语句)(1)语法结构:if (条件表达式) {// 条件为真时执行的代码块} else {// 条件为假时执行的代码块}(2)实例:```c#include <stdio.h>int main() {int a = 10;int b = 20;if (a > b) {printf("a 大于 b\n"); } else {printf("a 不大于 b\n"); }return 0;}```3. 无条件分支指令(goto语句)(1)语法结构:goto 标签;(2)实例:```c#include <stdio.h>int main() {int i = 0;while (i < 5) {printf("i 的值为:%d\n", i); i++;if (i == 3) {goto end;}}end:printf("循环结束\n");return 0;}```4. 分支指令的应用实例(1)判断一个数是奇数还是偶数:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d 是偶数\n", num);} else {printf("%d 是奇数\n", num); }return 0;}```(2)计算两个数的最大值:```c#include <stdio.h>int main() {int a, b, max;printf("请输入两个整数:");scanf("%d %d", &a, &b);if (a > b) {max = a;} else {max = b;}printf("最大值为:%d\n", max); return 0;}```五、实验结果与分析1. 通过实验,我们掌握了分支指令的概念和分类,了解了条件分支指令(if语句)和无条件分支指令(goto语句)的使用方法。
程序设计c语言 循环控制的实验报告
{
int n=1,m;
float x,y=0;
scanf("%f,%d",&x,&m);
do
{
y=y+(x/n);
n++;
x=x*x;
}
while(n<=m);
printf("%f",y);
return 0;
}
2)保存源程序,文件名为do….while语句求值1
3)运行程序,输出结果如下:
printf("%f",y);
return 0;
}
2)保存源程序,文件名为for语句求值1:
3)输入、输出结果如下:
3.编写程序,输入x和n,用while求y=x+x*x/2+x*x*x/3+…。
1)打开MinGW32集成开发环境,编写程序代码如下:
#include<stdio.h>
include<stdio.h>
5.综上所述:收益匪浅。
1. 通过程序一,主要是让我们区分while,for,do…while三者的用法,及其特点。
2. 通过第二个程序,了解和掌握了当语句需要精确到几位小数点之后的while,for,do…while三者的用法,及其特点。
3. 通过编写第三个程序,掌握了更为复杂的语句用法,而且还学会了分行输出数据。
4.通过第四个程序,我主要是了解了关于数学方法中对于阶乘的求法。
2.编写程序,输入m和n,计算m!+n!.
3.编写程序,输出100~200之间所有的素数,每行输出8个。
三、实环境
MinGW32系统。
四、实验步骤和结果
分支与循环程序设计实验报告汇总
分支与循环程序设计实验-报告汇总————————————————————————————————作者:————————————————————————————————日期:ﻩ实验名称 分支与循环程序设计实验指导教师 罗志祥专业班级 光电1406 姓名 段昳晖 学号 U2014*****联系电话 137********一、任务要求1. 设有8bits符号数X存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。
264/2106410X X Y X X X X ⎧≥⎪=<<⎨⎪≤⎩ 当 当 当 2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P 1、P 2端口输出(以压缩BCD 码的形式)。
P3.0为低电平时开始计时,为高电平时停止计时。
设计1s 延时子程序(延时误差小于10us,晶振频率12MHz)。
二、设计思路1. 设有8bi ts符号数X存于外部R AM单元,按以下方式计算后的结果Y 也存于外部RA M单元,请按要求编写完整程序。
264/2106410X X Y X X X X ⎧≥⎪=<<⎨⎪≤⎩ 当 当 当 将外部单元1000H 中的X ,通过分支判断,分别执行不同的语句,三条语句分别为标记为L 1、L2、L3,先比较X 与64的大小关系,再判断X 与10的大小关系,主要利用比较转移指令C JNE,以及执行CJNE 指令后的进位位CY,进一步比较大小,分别跳转至对应语句。
将结果存于外部单元的1001H以及1002H 。
2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P 1、P2端口输出(以压缩BCD 码的形式)。
P3.0为低电平时开始计时,为高电平时停止计时。
设计1s 延时子程序(延时误差小于10us,晶振频率12MHz)。
主程序设计三层循环,分别对应时、分、秒,最内层安放一秒延时程序。
【实验指导书】实验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。
实验四 分支和循环程序设计实验(设计性实验)
内存0770:0000到0007存有字节型字符串,0008中的值07H就是字符串的长度; 0009到0015存有字型字符串,0017中的05H是该字符串的长度;
五、心得体会
这次实验内容所用到的方法基本是在之前实验中就有用到过的,只不过在学习了循环之
后再编得得程序相比之前的实验程序更加简练,逻辑性更强。通过这次练习,我对这些跳转 指令也运用的更加熟练和灵活。用熟这些指令我认为是编好汇编程序的基础,毕竟一个像样 的程序是少不了使用循环的。合理的运用才能编出好程序。
INC CMP JNZ MOV MOV MOV DEC DEC DEC L2:
SI STRING1[SI],'$' ;判断字符是否为'$' L1 LENGTH1,CX ;循环结束时CX为字符串个数 SI,0 CX,0 CX SI SI
INC CX INC SI INC SI CMP STRING2[SI],'$' ;判断字符是否为'$' JNZ L2 MOV LENGTH2,CX ;循环结束时CX为字符串个数 MOV AH,4CH INT 21H CODES ENDS END START 程序结果:
MOV AL,NB IMUL NB MOV BX,AX MOV AL,NA IMUL NC MOV CX,4 IMUL BX CMP BX,AX JS NONE INC TAG MOV AL,TAG NONE: MOV AH,4CH INT 21H CODES ENDS END START 运行结果:
JMP SHURU DA: MOV DL,DAXIE MOV AH,2 INT 21H JMP SHURU XIAO: MOV DL,XIAOXIE MOV AH,2 INT 21H JMP SHURU FINISH: MOV AH,4CH INT 21H CODES ENDS END START 程序结果:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分支与循环程序设计实验-报告————————————————————————————————作者: ————————————————————————————————日期:实验名称 分支与循环程序设计实验指导教师 罗志祥专业班级 光电1406 姓名 段昳晖 学号 U2014*****联系电话 137********一、任务要求1. 设有8bits 符号数X 存于外部RA M单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。
264/2106410X X Y X X X X ⎧≥⎪=<<⎨⎪≤⎩ 当 当 当 2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。
P3.0为低电平时开始计时,为高电平时停止计时。
设计1s 延时子程序(延时误差小于10us ,晶振频率12MHz)。
二、设计思路1. 设有8bit s符号数X存于外部R AM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。
264/2106410X X Y X X X X ⎧≥⎪=<<⎨⎪≤⎩ 当 当 当 将外部单元1000H 中的X ,通过分支判断,分别执行不同的语句,三条语句分别为标记为L1、L2、L3,先比较X 与64的大小关系,再判断X与10的大小关系,主要利用比较转移指令C JNE,以及执行C JNE 指令后的进位位CY,进一步比较大小,分别跳转至对应语句。
将结果存于外部单元的1001H以及1002H 。
2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。
P3.0为低电平时开始计时,为高电平时停止计时。
设计1s延时子程序(延时误差小于10us,晶振频率12MHz )。
主程序设计三层循环,分别对应时、分、秒,最内层安放一秒延时程序。
利用R 0、R1、R2计数,R3保存分钟数、R4保存小时数,最内层循环60次,中循环循环1次,中循环60秒,外循环循环1次,外循环循环24次,清零。
其中对端口显示的秒数、分钟数、时间数,进行二进制修正。
利用循环来设计延时程序,合理计算语句长度,以及循环次数。
程序运行时修正P3.0的值,可以实现暂停计数和继续的功能。
提高部分(选做):1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。
利用P 3.7状态选择加、减计数方式。
2)利用P3口低四位状态控制开始和停止计数,控制方式自定。
初始化P 1、P2,,计数循环中插入一秒延时程序。
R 1存千百位、R2存个十位,P 3.7=0时,进行加1计数,取出R2中的数存于A ,对A 加1,同时进行十进制修正,存于P2,达到99,则进位对千百位进行加1。
P 3.7=1时,进行减一操作,取出R1中的数存于A,对A 减1,同时进行十进制修正,存于P1,达到0,则对P 2,对R2进行减一。
计数循环前判断P3.0的值,当P3.0=1时,开始计数,P3.0=0时,原地循环,停止计数,直到P3.0=1,可以实现随时停止与开始。
三、资源分配1. 设有8bi ts 符号数X存于外部RA M单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。
264/2106410X X Y X X X X ⎧≥⎪=<<⎨⎪≤⎩ 当 当 当X存于片外1000HY 存于片外1001H 、1002H其中,求平方时,低位存于1001H,,高位存于1002H除二时,商存于1001H,,余数存于1002H2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。
P 3.0为低电平时开始计时,为高电平时停止计时。
设计1s 延时子程序(延时误差小于10us ,晶振频率12MHz )。
P0输出小时数P1输出分钟数P2输出秒数R0小时循环计数R 1分钟循环计数R2秒循环计数R3保存分钟数R4保存小时数提高部分(选做):1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。
利用P3.7状态选择加、减计数方式。
2)利用P3口低四位状态控制开始和停止计数,控制方式自定。
P1输出千百位P2输出个十位P 3.0 计数开始与停止控制P3.7 加1减1计数切换R 1存千百位R2存个十位四、流程图1. 设有8bits 符号数X 存于外部R AM 单元,按以下方式计算后的结果Y 也存于外部R AM 单元,请按要求编写完整程序。
264/2106410X X Y X X X X ⎧≥⎪=<<⎨⎪≤⎩ 当 当 当2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。
P3.0为低电平时开始计时,为高电平时停止计时。
设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。
提高部分(选做):1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。
利用P3.7状态选择加、减计数方式。
2)利用P3口低四位状态控制开始和停止计数,控制方式自定。
五、源代码 (含文件头说明、语句行注释)1. 设有8bit s符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。
264/2106410X X Y X X XX ⎧≥⎪=<<⎨⎪≤⎩ 当 当 当 : ta sk 1.asm Desc ripti on: 对8bits 符号数X,对于不同的X进行不同的运算操作Da te: 2016.10.13Designed by:Source used: 1000H: 存X 的值1001H 、1002H: 存Y的值1001H:平方运算所得低位;除法运算所得商1002H:平方运算所得高位;除法运算所得余数ORG 0000HLJM P MAINﻩ O RG 0100HMAIN : MOV DPT R,#1000H ;X 存于1000HMOV A,#-1 ;给X 赋值MO V B,#0MOVX @DPTR,Aﻩﻩ ;正负判断ﻩ JB ACC .7,L3 ;X<0,L3ﻩﻩ ;X>0ﻩ CJNE A,#64,L2 ;A!=64,L 2ﻩ SJMP L1L1: M OV B ,A ;X >=64M UL ABSJMP STO RE ;低位存于1001H,¸高位存于1002HﻩL2: JNC L1 ;X>64,L1CJNE A,#10,L4 ;A!=10,L4SJM P L3 ;X=10,L3L4: JC L3 ;X<10,L3MOV B,#2DIV AB ;X>10SJM P S TORE ;商存于1001H,余数存于1002HﻩL3: CPL A ;X<=10STORE: INC DPTR ;结果存于1001HMOVX @DPTR,AﻩINC DPTRMOV A,BMOVX@DPTR,AﻩSJMP $END2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。
P3.0为低电平时开始计时,为高电平时停止计时。
设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。
3.: task2.asmDescription:24小时制电子时钟Date: 2016.10.13Designedby: DYHSource used:P0:输出小时数P1:输出分钟数P2:输出秒数R0:小时循环计数R1:分钟循环计数R2:秒循环计数R3:保存分钟数R4:保存小时数ORG 0000HLJMP MAINﻩﻩORG 0100HMAIN:MOV SP,#40HMOV P0,#0MOV P1,#0MOVP2,#0MOV R3,#0 ;保存小时MOV R4,#0;保存分钟;设定循环MOV R0,#24;小时外循环·24MOVR1,#59 ;分钟中循环·60MOVR2,#59;秒内循环·60CLRAﻩLOOP:JNB P3.0,$ ;p3.0=0,结束计数LCALL DELAY ;延时1sﻩADD A,#1ﻩDAAMOVP2,ADJNZR2,LOOPﻩMOV A,R3 ;分钟开始计数将分钟赋给AﻩADD A,#1 ;分钟+1DA AﻩMOVR3,AMOV P1,ACLR A ;秒清零MOV R2,#59 ;重置内循环·ﻩDJNZ R1,LOOP ;R1!=0,中循环MOV R3,#0 ;分钟清零,小时计数ﻩMOV A,R4ADD A,#1ﻩDA AﻩMOV R4,AMOV P0,AMOV R2,#59;重置中循环ﻩMOVR1,#59 ;重置外循环ﻩDJNZ R0,LOOPDONE:SJMP $DELAY:MOV R7,#11 ;n==((201*5+5)*90+9)*11+2=1000001DELAY3: MOVR6,#90 ;t=1.000001sDELAY2: MOV R5,#201ﻩDELAY1: NOPﻩNOPﻩﻩNOPﻩDJNZ R5,DELAY1NOPNOPﻩDJNZ R6,DELAY2ﻩﻩNOPﻩNOPﻩNOPﻩﻩﻩNOPﻩNOPﻩﻩﻩNOPﻩDJNZ R7,DELAY3ﻩRETﻩEND提高部分(选做):1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。
利用P3.7状态选择加、减计数方式。
2)利用P3口低四位状态控制开始和停止计数,控制方式自定。
Description: 实现4位十进制加、减1计数Date: 2016.10.13Designed by: DYHSource used:P1输出千百位P2输出个十位P3.0 计数开始与停止控制P3.7 加1减1计数切换R1存千百位R2存个十位ORG 0000HﻩﻩMOV P1,#0 ;输出千百位MOV P2,#0 ;输出个十位ﻩMOV R1,#0;存千百位ﻩMOV R2,#0 ;存个十位LJMPMAINﻩﻩORG 0100HMAIN:ﻩJB P3.0,$;计数开始与停止控制JNB P3.7,ADD1 ;加1减1,模式选择SUB1:MOV P1,#99ﻩMOV P2,#99ﻩﻩMOV R1,#99LOOP2: MOV R2,#99LOOP1:JB P3.0,$JNB P3.7,LOOP3MOV A,R2LCALL DELAYﻩDEC AMOV R2,Aﻩﻩ MOVP2,R2ﻩ CJNE R2,#0H,LOOP1ﻩMOV A,R1ﻩ DEC AﻩﻩMOV R1,Aﻩﻩ MOV P1,R1ﻩ CJNE R1,#0H,LOOP2ﻩﻩ SJMP$ADD1:MOV P1,#0ﻩﻩMOV P2,#0MOVR1,#0LOOP4: MOVR2,#0LOOP3: JB P3.0,$JBP3.7,LOOP1MOV A,R2LCALL DELAYﻩINCAMOV R2,AMOVP2,R2CJNER2,#99H,LOOP3ﻩﻩMOV A,R1ﻩ INC AﻩMOVR1,AﻩMOV P1,R1CJNE R1,#99H,LOOP4ﻩﻩ MOV R1,#0ﻩSJMP$DELAY: MOV R7,#11 ;n==((201*5+5)*90+9)*11+2=1000001 DELAY3:MOV R6,#90;t=1.000001sDELAY2: MOV R5,#201ﻩDELAY1:NOPﻩNOPﻩNOPﻩﻩﻩDJNZ R5,DELAY1ﻩNOPNOPﻩﻩDJNZ R6,DELAY2ﻩNOPﻩﻩNOPﻩﻩNOPﻩﻩﻩNOPﻩﻩﻩ NOPﻩ NOPDJ NZ R7,DELA Y3ﻩ RETE NDﻩ六、程序测试方法与结果1. 设有8bit s符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部R AM 单元,请按要求编写完整程序。