实验四 循环控制
汇编语言实验4详细讲解

汇编语言实验4详细讲解一、引言汇编语言是一种底层的计算机语言,它直接操作计算机的硬件。
在汇编语言实验4中,我们将深入了解汇编语言的一些重要概念和技巧。
本文将详细讲解汇编语言实验4的内容,帮助读者更好地理解和应用汇编语言。
二、实验目的汇编语言实验4的主要目的是学习和掌握在汇编语言中使用条件和循环结构的方法。
通过实验,我们将能够编写能够根据条件执行不同操作的程序,并实现循环执行一定次数的功能。
三、实验内容1. 条件结构条件结构是根据条件的真假来执行不同的操作。
在汇编语言中,我们可以使用条件跳转指令来实现条件结构。
条件跳转指令根据条件寄存器的值来决定是否跳转到指定的地址执行。
常用的条件跳转指令有JZ、JNZ、JC、JNC等。
2. 循环结构循环结构是重复执行一段代码的结构。
在汇编语言中,我们可以使用循环指令来实现循环结构。
循环指令根据计数器的值来判断是否继续执行循环体,并在每次循环结束后更新计数器的值。
常用的循环指令有LOOP、LOOPE、LOOPZ、LOOPNE、LOOPNZ等。
四、实验步骤1. 定义和初始化计数器在循环结构中,我们首先需要定义一个计数器,并对其进行初始化。
计数器可以使用DX寄存器或AX寄存器来保存。
2. 执行循环体在循环结构中,我们需要执行的代码放在循环体中。
循环体的代码将会被重复执行,直到计数器的值为0或满足其他条件。
3. 更新计数器的值在每次循环结束后,我们需要更新计数器的值。
可以使用INC或DEC指令对计数器进行加1或减1操作。
4. 判断是否继续执行循环在每次循环结束后,我们需要判断是否继续执行循环。
可以使用循环指令来实现此功能。
根据计数器的值或其他条件来判断是否继续执行循环。
五、实验示例下面是一个简单的实验示例,演示了如何使用条件和循环结构来实现一个简单的程序:```MOV CX, 10 ; 初始化计数器为10MOV AX, 0 ; 将AX寄存器清零LOOP_START:ADD AX, CX ; 将CX的值加到AX中LOOP LOOP_START ; 循环执行,直到CX的值为0MOV BX, AX ; 将AX的值保存到BX寄存器中```在上面的示例中,我们首先将CX寄存器初始化为10,然后将AX 寄存器清零。
实验报告二厦门理工学院C语言选修课上机实验实验4循环结构

《高级语言程序设计》实验报告实验序号:2 实验项目:数据类型、运算符和表达式09机制2 学号232 姓名叶志伟专业、班级实验地点1-511 指导教师胡亮实验时间 3.15一、实验目的及要求1.掌握C基本数据类型的基本概念、基本属性。
2.学会如何书写一个整型、字符型、实型常量。
3.掌握C算术运算符的基本概念、基本属性、运算规则。
二、实验设备(环境)及要求使用Visual C++ 6.0;windows系列操作系统的环境。
三、实验内容与步骤1.输入下列源程序,进行修改、编译、连接和运行。
程序:main ( ){ char c1,c2;c1=97;c2=98;printf("%c,%c\n",c1,c2);printf("%d,%d\n",c1,c2);}运行结果是:两行结果的不同是由什么引起的:程序定义了输出的类型,第一个输出字符型,另一个输出整型。
2.输入并运行下面的程序:#include<stdio.h>void main(){char c1,c2,c3;c1=getchar();c3=getchar();putchar(c1);putchar(c2);putchar(c3);}观察以下不同输入时的输出,分析不同输出的原因。
(↙表示回车)(1)123↙(2)12↙(3)1↙2↙运行结果是:分析运行结果:getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.3.把以上程序改写如下,用于上面相同的输入运行,分析不同输出的原因。
位置控制自动往返实训

实验四位置控制和自动往返控制线路一、组织教学:1、提前10分钟进入课室绘制电路图,准备好演示所用的安装板、导线、仪表、电工工具等。
2、〔课前安全纪律教育〕(5分钟)(1)清点学生出勤情况填写考勤记录,巡查学生工作服、鞋等是否符合安全要求。
(2)强调课堂纪律,安装时佩带好电工工具。
(3)不允许用电工工具开玩笑。
(4)通电时电工工具要放好,手不允许乱指。
(5)通电完毕后,检查所有开关断开后方可离开。
3、宣布今天的实习内容:位置控制和自动往返控制线路4、工时:安装接线4小时,检修1小时。
5、需选用工具:“一”字起选规格150、50mm,“十”字选6~8mm。
万用表选500型,使用时注意选择档次。
二、教学回顾(5分钟)上课题学过的按钮、接触器双重联锁正反转控制的内容,对实习操作的具体情况进行总结,表扬或鼓励做得较好的,讲出好在什么地方,并指出上课题问题, 应如何改进。
检查学生实习进度,是否按文明生产要求清扫现场地。
三、入门指导[导入新课题](10分钟)1、结合上课题讲解新课题位置控制和自动往返控制。
2、在生产过程中,常遇到一些生产机械运动部件的行程要受到限制,如行车升降机等就经常有这样的控制要求。
那么实现这种控制要求所依靠的主要电器就是位置开关。
这种控制线路就是位置控制线路。
3、用行程开关进行自动往返控制有些生产机械,如万能铣床等要求工作台在一定距离内能自动往返,以便对工件连续加工四、目的要求:使学生了解、掌握位置控制和自动往返控制控制线路的工作原理、安装步骤及接线方法。
五、重点难点:1、掌握识图、绘图、安装接线工艺2、位置控制和自动往返控制过程和原理3、检修第一部分位置控制一、用提问法:(10分钟)1、什么是位置开关?它的结构由几部分组成?它的用途是什么?2、车间里的行车,每当走到轨道尽头时,都象长了眼睛一样能自动停下来,而不会朝墙撞上去。
这是为什么?二、电路特点:(10分钟)位置控制电路图如下(图一),工厂车间里的行车升降机常采用这种线路,右下角是行车运动示意图,行车的两头终点处各安装了一个位置开关SQ1和SQ2,将这两个位置开关的常闭触头分别串接在正转控制电路和反转控制电路中。
实验四 循环结构程序设计

#include "stdio.h"
void main( )
{
}
2.从整数1开始向上找,直至m和n中较小的数,每找到一个能同时被m和n整除的整数,将其存入一个变量中,当循环结束时,变量中存放的即为最大公约数。设n为m和n中较小的数,则如下程序段可实现:
for(k=1; k<=n; k++) if(m%k==0 && n%k==0) x=k;
}
2.字符常量’0’与数值常量0是不同的。
(六)下面程序的功能是:计算1到100之间的奇数之和及偶数之和,并输出。请在程序中的横线上填入适当的内容,将程序补充完整并运行。
/* c4-6.c */
/* 计算1到100之间的奇数之和及偶数之和 */
#include "stdio.h"
void main( )
六、思考题
(一)求两个正整数x和y的最大公约数,请填空。
/* 求最大公约数程序 */
#include "stdio.h"
void main( )
{ int x,y,t,i;
printf("请输入两个数:");
scanf("%d,%d",&x,&y); /*注意scanf语句中间用“,”隔开*/
if(x > y){t = x; x = y; y = t;}
程序的基本结构如下:
/* c4-9.c */
/* 按条件求数列和 */
#include "stdio.h"
void main( )
{定义变量;
变量赋初值;
c语言上机实验题及参考答案

5、两个乒乓球队进行比赛,各出3人,甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和X比,C说他不和X、Z比。请编程序找出3队赛手的名单。(C语言源程序文件名为45.c,本程序运行结果:A--Z B--X C--Y)
2 14 14
5 10 15
8 6 16
11 2 17)
2、编写程序:输入两个正整数,求其最大公约数和最小公倍数。(如输入12和8,则最大公约数为4,最小公倍数为24)(C语言源程序文件名为42.c。要求求最大公约数用欧几里得的辗转相除法实现)。
3、编写程序实现以下功能:输入一个正整数,打印出它是否素数。(C语言源程序文件名为43.c)
例如:有定义int a=3;执行输出语句:printf(“a=%3d”,a);则输出结果显示为:a= 3(3左边有两个空格)
n(代表一个正整数)
对实数,表示输出n位小数。
例如:有定义float x=1.2;执行输出语句:printf(“x=%6.2f”,x);则输出结果显示为:x= 1.20(数字左边有两个空格)。
三、附加题:
9、编程实现:从键盘上输入一个三位正整数m,输出将m的个位,十位,百位反序而成的三位数(例如:输入m的值123,则输出m的值为321)(要求:文件名为15.c,提示:可用算术运算符“/”和“%”先分离出m的各个位数,再重新组合成新的数,例如用表达式“123%10”就能求出123的个位数3)。
三、实验题目:
if语句基本形式:if(条件){语句一;}
(新)实验四循环伏安法测定亚铁氰化钾的电极反应过程

(新)实验四循环伏安法测定亚铁氰化钾的电极反应过程循环伏安法测定亚铁氰化钾的电极反应过程⼀、实验⽬的(1) 学习固体电极表⾯的处理⽅法; (2) 掌握循环伏安仪的使⽤技术;(3) 了解扫描速率和浓度对循环伏安图的影响⼆、实验原理铁氰化钾离⼦[Fe(CN)6]3--亚铁氰化钾离⼦[Fe(CN)6]4-氧化还原电对的标准电极电位为[Fe(CN)6]3- + e -= [Fe(CN)6]4- φθ= 0.36V(vs.NHE) 电极电位与电极表⾯活度的Nernst ⽅程式为φ=φθ+ RT/Fln(C Ox /C Red )-0.20.00.20.40.60.8-0.0005-0.0004-0.0003-0.0002-0.00010.00000.00010.00020.0003i pai pcI /m AE /V vs.Hg 2Cl 2/Hg,Cl-在⼀定扫描速率下,从起始电位(-0.20V)正向扫描到转折电位(0.80 V)期间,溶液中[Fe(CN)6]4-被氧化⽣成[Fe(CN)6]3-,产⽣氧化电流;当负向扫描从转折电位(0.80V)变到原起始电位(-0.20V)期间,在指⽰电极表⾯⽣成的[Fe(CN)6]3-被还原⽣成[Fe(CN)6]4-,产⽣还原电流。
为了使液相传质过程只受扩散控制,应在加⼊电解质和溶液处于静⽌下进⾏电解。
在0.1MNaCl 溶液中[Fe(CN) 6]4-]的扩散系数为0.63×10-5cm.s -1;电⼦转移速率⼤,为可逆体系(1MNaCl 溶液中,25℃时,标准反应速率常数为5.2×10-2cm·s -1)。
溶液中的溶解氧具有电活性,⽤通⼊惰性⽓体除去。
三、仪器与试剂MEC-16多功能电化学分析仪(配有电脑机打印机);玻碳圆盘电极(表⾯积0.025 cm 2)或铂柱电极;铂丝电极;饱和⽢汞电极;超声波清洗仪;电解池;氮⽓钢瓶。
容量瓶:250 mL 、100mL 各2个,25 mL 7个。
实验报告4

实验四:循环结构程序设计班级:学生姓名:学号:一、实验目的1、理解循环的概念2、理解并掌握循环结构相关语句的含义、格式及使用3、学会循环的应用及控制,包括:①掌握使用循环输入多个数据的方法②掌握在多个数据中有选择地输出数据的方法③掌握在多个数据中对某种数据进行计数的方法④掌握求多个数据中最大值、最小值的方法⑤掌握使用break、continue语句终止循环4、掌握循环的嵌套二、知识要点1、循环变量、循环条件、循环体的概念2、三种循环语句的一般格式、执行过程3、理解选择结构与循环结构中“条件表达式”之不同含义4、二重循环的执行过程三、实验预习(要求做实验前完成)1、循环变量的主要用途是:2、用循环求多个数的和之前,先要把和的初始值赋为:3、用循环求多个数的乘积之前,先要把乘积的初始值赋为:4、字符变量能否作为循环变量?5、循环过程中,如果循环条件成立,但需要结束循环,可采用什么办法?6、什么叫循环的嵌套?四、实验内容(要求提供:①算法描述或流程图②源程序)1. 编程,利用循环计算以下表达式的值:(5+52)*(4+42)*(3+32)*(2+22)*(1+12)*(1/2+1/3+1/4+1/5)(for循环)include <stdio.h>#include <stdlib.h>int main(){int a;double sum=1,sum1=0;for(a=1;a<=5;a++)sum=sum*(a+a*a);printf("结果为%lf\n",sum);for(a=2;a<=5;a++)sum1=sum1+(1.0/a);printf("%lf\n",sum1);printf("结果为%lf\n",sum*sum1);return 0;}2. 编程,从键盘输入若干个整数,当输入0时,输入停止。
C语言实验报告 实验四 参考答案

实验四循环结构程序设计2(参考答案)(1)编写程序sy4-1.c,输入n,计算并输出如下多项式的值:S n=1+1/2!+1/3!+1/4!+…+1/n!。
例如输入n为15时,输出1.718282。
算法分析:第一项可以看成1/1!,用循环控制累加n个分式,分式的分母是i!,分子固定为1。
参考答案:# include <stdio.h>void main(){double s=0,p=1;int i,n;scanf("%d",&n);for(i=1;i<=n;i++){p = p * i ; //计算分母i!s = s + 1 / p ; //累加}printf("s=%lf\n",s);}运行结果:(2)编写程序sy4-2.c,输入n,根据以下公式计算s:,例如当n=11时,结果为1.833333。
算法分析:该多项式的分母是累加。
参考答案:# include <stdio.h>void main(){double sn=0,s=0;int i,n;scanf("%d",&n);for(i=1;i<=n;i++){s = s + i ; //计算分母1~i的累加和sn = sn + 1 / s ;}printf("sn=%lf\n",sn);}运行结果:(3)编写程序sy4-3.c,计算3~n之间所有素数的平方根之和,要求:输入n,输出结果。
例如,输入n 的值是100,则输出结果是148.874270。
注意n应在2~100之间。
算法分析:穷举3~n之间的数找素数,若是素数则累加她的平方根。
参考答案:# include <stdio.h># include <math.h>void main(){int i,j,n,flag;double s=0;scanf("%d",&n);for(i=3;i<n;i++) //穷举3~n之间找素数{flag=1; //假设当前的i是素数,标志变量设为1for(j=2;j<i;j++) //穷举要判断是否是素数的i的除数,范围2~i-1if(i%j==0) //若i能被j整除,则不是素数{ flag=0; break; } //标志变量改为0,并终止循环if( flag == 1 )s = s + sqrt( i ); //若i是素数,则累加sqrt(i)}printf("s=%f\n",s);}运行结果:(4)编写程序sy4-4.c,根据以下公式求p的值,(m与n为两个正整数且m>n)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Eg4-7:素数问题:把100~2000之间的素数输出。
Eg4-8:闰年问题:判断1000-2000年之间所有的闰年。
Eg4-9:用牛顿迭代法求下面方程在1.5附近的根:
2x3-4x2+3x-6=0
在能力所及的情况下完成扩展内容的算法分析,程序编写,并利用实验时间上机调试完成运行,并将其运行过程及结果在实验报告中体现。
再输入时,使m<n,观察结果是否正确。
修改程序,不论m和n为何值(包括负整数),都能得到正确结果。
Eg4-6:【兔子问题】把费波拉契(Fibonacci)数列的前50个数输出。
实验报告要求根据题目要求设计解决问题的算法,画出其流程框图,写出满足C语言规范的源程序,在VC++环境下调试运行,对照运行结果分析产生该结果现象的原因。
Eg4-3:分别用while、do-while、for语句编程,求数列前20项之和:2/1,3/2,5/3,8/5,13/8„
Eg4-4:一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高?
Eg4-5:输入两个正整数m和n,求它们的最大公约数和最小公倍数。
广州城市职业学院
学生实验(训)报告
教学单位
信息与汽车工程学院
专业/班级
姓名
学号
指导教师
陈晓柱
实验(训)名称
循环控制
时间
地点
学时数
2
实验(训)内容要求
一、实验目的
1、熟练掌握for语句、while语句、do-while语句实现循环的方法;
2、理解循环嵌套及其使用方法;
3、掌握break语句与continue语句的使用;
4、掌握用循环实现一些常用算法(如穷举、迭代、递推等)。
学生实验(训)报告
二、实验内容一(验证及程序分析)
Eg4-1:输入一组整数,统计其中奇数偶数个数,直到遇到回车为止。
(1)算法分析:可设一整型变量x,循环的输入整数的值,若x%2==0即为偶数,否则是奇数。
提示:循环条件可在while语句后的括号中出现,也可以用break语句控制。
【小结】3种循环的异同点?能否相互转换?for循环控制单元的表达式与while循环中表达式是如何对应的?
(此表可从校园:此表适用于课内实验、实训;学生每完成一个完整的实验(训)内容,填写一份报告,交指导教师批改。课程结束后,实验(训)报告作为教学文件由教学单位保存。
(1)算法分析:
最大公约数和最小公倍数可以利用如下3条性质实现:
性质1:如果a>b,则a和b的最大公约数与a-b和b的最大公约数相同;
性质2:如果a<b,则a和b的最大公约数与a和b-a的最大公约数相同;
性质3:如果a=b,则a和b的最大公约数与a和b的值相同;
(2)编程
(3)运行
在运行时,输入的值m>n,观察结果是否正确。
(2)根据分析结果写出源程序
(3)在VC++编辑环境下编辑源程序。17
(4)编译直到没有错误。
(5)运行。因不需输入,故此程序运行时仅是屏幕闪一下就又回到编辑环境了。
(6)查看结果。输出题目要求的图案。
实验报告要求对照各程序运行结果分析以上各程序的算法(框图表示),解释产生该结果现象的原因。
四、实验内容二(综合及设计类)
(2)根据分析结果写出源程序。
程序一:
程序二:
(3)在VC++编辑环境下编辑源程序。
(4)编译直到没有错误。
(5)运行并输入:
13 16 7 23 68 99 86 \0↙
(6)查看结果
Eg4-2:打印如下图案
可用双重循环控制整个图案的输出。若用循环变量i,j分别控制外层,内层循环,则i的取值从1到4,表示行数,在每行中要确定前面空格个数和星号个数,空格个数是4-i,星号个数是2*i-1。