循环结构程序
循环结构程序设计(C语言实验报告)
循环结构程序设计(C语言实验报告)实验目的:1. 掌握循环结构程序设计流程2. 熟悉while、do-while和for循环语句的使用3. 掌握循环语句的嵌套应用实验原理:循环结构是一种非常重要的程序设计结构,其目的是为了让程序可以重复执行一段代码块,从而达到省去大量代码重复编写的目的,也可以是让程序能够按照用户的需求反复执行一段代码块。
在C语言中,常用的循环结构有while、do-while和for三种,这三种循环语句的基本语法结构是:while(循环条件){循环体语句;}其中,while循环和do-while循环的区别在于:while循环条件成立时,不一定会执行一次循环体,但do-while循环条件成立时,会先执行一次循环体,然后判断循环条件是否成立;至于for循环,则是将循环条件、循环初值和循环增量三个要素集成在一起,使用比较方便。
另外,循环结构也可以进行嵌套应用,即在循环体内部再嵌套一个循环,这样可以实现多个变量的循环控制。
应用实例包括如下:1. 打印九九乘法表2. 对一个数组进行排序3. 多重循环实现字谜游戏实验内容:1. while循环:目的是求出1~100的整数和,并在程序运行过程中输出1~100的所有整数。
目的是输入若干个数字,计算它们的平均值。
3. for循环:目的是输入一个数n,求1~n中可以被3或5整除的所有整数和。
4. 循环嵌套:目的是打印九九乘法表。
实验总结:本次实验通过三种常用的循环结构,并结合实例进行学习掌握,同时还熟悉了循环嵌套的应用。
相信这对于日后的程序设计和代码优化应用会非常有帮助。
C语言程序设计_05循环结构程序设计
5.2 DO…WHILE循环结构 5.2.1 DO…WHILE语句的格式 DO…WHILE语句的一般格式为: DO 语句 WHILE(表达式); DO…WHILE语句中的表达式表示循环的条件,可 以是任何表达式,常用的是关系表达式和逻辑表达 式。表达式必须加圆括号。语句是重复执行的部分, 称作循环体。
由亍循环体在表达式2乊后表达式3乊前执行所以把循环体语句放在表达式3的开头循环体语句不原来的i构成逗号表达式作为循环语句新的表达式3从而也就没有循环体语句了
第5章 循环结构程序设计
5.1 WHILE循环结构 5.2 DO…WHILE循环结构 5.3 FOR循环结构 5.4 与循环有关的控制语句 5.5 3种循环语句的比较 5.6 循环的嵌套 5.7 循环结构程序举例 本章小结
图5-6 FOR语句执行过 程
FOR语句的执行过程如图5-6所示。具体由以下几步 完成: (1)求表达式1。 (2)求表达式2,并判定其值为0或非0。若值为非0, 转步骤(3);否则结束FOR语句。 (3)执行语句,然后求表达式3。 (4)转向步骤(2)。 由FOR语句的执行流程可知,表达式1的作用是为循 环控制的有关变量赋初值,表达式2是循环控制条件, 表达式3用于修正有关变量,语句是重复执行部分。
【例5.7】输入20个数,求出其中的最大值与最小值。
5.3.3 FOR语句的各种变形 1.在FOR语句中省略表达式 FOR语句中的3个表达式可以部分或全部省略,下面 给出语句的4种基本变形。 (1)表达式1移至FOR语句前,但它后面的分号必 须保留。这时FOR语句的形式为: 表达式1; FOR(; 表达式2; 表达式3) 语句
(2)表达式3移至循环体语句之后,但它前面的分 号必须保留。FOR语句的形式为: FOR(表达式1; 表达式2;) { 语句; 表达式3; } 对于求P=5!的程序段,省略表达式3,将其放在循环 体中,则程序段写成:
汇编语言程序设计第七章 循环结构程序
2. LOOPE/LOOPZ 条件重复控制指令
指令汇编格式: LOOPE/LOOPZ AGAIN
操作: (1) CX CX-1
(2) 若CX≠ 0且ZF=1,则使控制转到AGAIN 标识的循环入口处,继续下一次循环,否则退出循 环体,执行后续指令。
例 比较两个字符串是否相等。
STR1 DB
‘12345’
DSEG SEGMENT
DATA DB
10,20,30,80,100,90,120
CNT DW 7
ADR DW 0FFFFH
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG,ES:DSEG
START: MOV AX,DSEG MOV DS,AX
DATA1 00H
01H 00H 02H
: :
SI DATA2 00H
10H
50
00H
个
20H
字
单
:
元
:
DI SUM 00H
BX
00H
50
00H 50
个
00H
个
字 单
:
字 单
元
:
元
00H
00H
例7.1 设内存DATA1和DATA2开始分别存放50个无符 号字数据,编制程序将两个存储区对应字数据求和并存 入SUM开始的单元。
存储器中仅由字节或字组成的一组数据称为数据串。由字节组 成的数据串称为字节数据串,简称字节串;由字组成的数据串称为 字数据串,简称字串。一个数据串的长度最长不能超过64KB。
数据串操作指令的寻址方式为数据串寻址:
(1)指令中要处理的两个数据串应分别在数据段和附加段中定义。 (2)数据段中定义的数据串要用SI作指针;
第五讲循环结构(for、while与repeat语句)
第四章第3节循环结构的程序设计For循环在实际应用中,会经常遇到许多有规律性的重复运算,这就需要掌握本章所介绍的循环结构程序设计。
在Pascal语言中,循环结构程序通常由三种的循环语句来实现。
它们分别为FOR循环、当循环和直到循环。
通常将一组重复执行的语句称为循环体,而控制重复执行或终止执行由重复终止条件决定。
因此,重复语句是由循环体及重复终止条件两部分组成。
一、计数循环(for/to/do)语句的一般格式for <控制变量>:=<表达式1> to <表达式2> do <语句>;for <控制变量>:=<表达式1> downto <表达式2> do <语句>;其中for、to、downto和do是Pascal保留字。
表达式1 与表达式2的值也称为初值和终值。
二、For语句执行过程①先将初值赋给左边的变量(称为循环控制变量);②判断循环控制变量的值是否已"超过"终值,如已超过,则跳到步骤⑥;③如果末超过终值,则执行do后面的那个语句(称为循环体);④循环变量递增(对to)或递减(对downt o)1;⑤返回步骤②;⑥循环结束,执行for 循环下面的一个语句。
三、说明①循环控制变量必须是顺序类型,初值和终值可以是常量、变量、表达式,且与控制变量类型一致。
例如,可以是整型、布尔型、字符型等,但不能为实型。
②循环控制变量的值递增或递减的规律是:选用to则为递增;选用downto则递减。
③所谓循环控制变量的值"超过"终值,对递增型循环,"超过"指大于,对递减型循环,"超过"指小于。
④循环体可以是一个基本语句,也可以是一个复合语句。
⑤循环控制变量的初值和终值一经确定,循环次数就确定了。
但是在循环体内对循环变量的值进行修改,常常会使得循环提前结束或进入死环。
第四章 循环结构程序设计
while(i<=100)
{ i++;
程序运行结果: sum=5050
sum=sum+i;
}
6
4.3 do-while语句
do-while语句的结构 do 语句 while(表达式);
例如: do
x-=1; while(x>0);
功能:
1)执行“语句”。 2)计算“表达式”的值。如果值为非0,转1);否则转3)。
}
8
4.3 do-while语句
1)循环体如果包含一个以上的语句,要用复合语句表示。 2)在循环体中应有使循环趋于结束的语句。 3)while语句的特点是先执行循环体,然后判断表达式的值。 4)一般情况下,用while语句和用do-while语句处理同一 个问题时,若二者的循环体部分一样,其结果也一样。但如
18
4.7 goto语句以及用goto语句构成循环结构
goto语句的一般格式:
goto 语句标号;
例如: goto loop;
功能:程序执行到goto语句时,将程序流程转到语句标号指定的 语句去执行。
有标号的语句的格式:
语句标号: 语句
例如: loop: sum=sum+i;
19
4.7 goto语句以及用goto语句构成循环结构
【例4-9】用goto语句实现求1~100累加和。
#include <stdio.h>
main() { int n=1, sum=0; loop: sum += n; n++;
if(n<=100) goto loop;
printf("sum=%d\n",sum); }
第5章 循环结构程序设计
运行结果:
printf("%d\n",sum);
sum = 5050
}
while语句和用do-while语句的比较:
一般情况,用while循环语句和用do -while循环语句处理问 题时,若循环体部分一样,结果也一样。但是如果while循 环语句循环条件一开始为“假”,则循环结果不同。while 循环语句一次也不执行,而do -while循环语句不论条件是 否成立,先执行一次循环体语句。
循环变量不增值。无终止地执行循环体。
例5-7用for语句求1 + 2 + 3 + … + 100
#include <stdio.h> void main() {
int i,sum=0; /*将累加器sum初始化为0*/ for(i=1; i<=100; i++) sum += i;/*实现累加*/ printf("sum=%d\n",sum); } 程序运行的结果为: sum=5050 解析:先执行变量赋初值,然后判定循环继续条件, 如果为“真”,执行循环体语句,i 为运算项目和循 环变量,执行完一次,增加一次,最后累加和。
if(n%3!=0) /*循环体*/
printf("%5d",n);
}
§5.4 多重循环
• 当循环中的内嵌语句是循环语句时,称为循 环的嵌套使用。内嵌的循环中嵌套循环,称 为多重循环。
C语言程序设计技术基础
第5章 循环结构程序设计
第5章 循环结构程序设计
5.1 while 循环语句 5.2 do while循环语句 5.3 for循环语句 5.4 多重循环 5.5 break语句与continue语句 5.6 几种循环语句的比较 5.7 循环结构程序举例
循环结构流程图
Print "abc"
Next I
例2:增量为负
For i=1 to 2 step -1
Print " abc”"
Next I
3、分析程序 For i=1 to 1 step 0
Print " abc "
Next I
4、分析程序:
For i=2 to 2 step 1
Next I
Print I
9、分析程序: For i=2 to 2 step -1
Print I
Next I
10、分析:
For i=2 to 2 step 1
i=i+2
Next I
Print I
11、分析程序
For i=2 to 2 step -1
i=i-2
Next I
Print I
12、分析程序: For i=1 to 5 step 1 Print " * " Next I
语句与next语句必须成对出现而且它们中间的循环变量必须是同一个变量如本例中均为i当循环变量增量为正时循环变量超过终值是指循环变量的值大于终值若为负则是指循环变量的值小于终值
2.3.3 循环结构
1、for/next 循环语句
2、do循环语句
循环结构定义: 运行程序时重复执行某一段程序代码称为 循环结构
Print " abc "=2 to 2 sep -1
Print " abc "
Next i
6、分析程序 For i=2 to 2 step 1
Print I
Next I
C语言程序设计循环结构程序设计
假
体现式
真
语句
假如体现式旳值一开始就为0,则语 句一次也不会被执行。
上一页
下一页
while语句举例
问题: 求学生旳平均成绩,以输入负数成绩为结束
算法分析:
1. 定义变量score存储学生成绩,定义s=0存储累加旳成绩,
定义n=0统计录入旳成绩数目。
2. 输入第一种学生旳score
3. 若score>=0,执行第4步,不然执行第7步
上一页
下一页
例: 求 1+2 +…+99
分析:用变量i从1到99循环, 把i旳值累加到变量s中,最 终输出s旳值。
程序如下:
#include<stdio.h> main( ) { int i,s=0;
for(i=1;i<=99;i++) s=s+i;
printf(“s=%d”,s); }
上一页
下一页
在某些情况下,for语句中旳体现式1、2、3都能够 省略,而改用其他旳方式来实现这些功能。我们还用 上面旳例子阐明for语句省略体现式旳情形。
上一页
下一页
1.省略体现式1: #include<stdio.h> main( ) { int i=1,s=0;
for(;i<=99;i++) s=s+i;
因为do-while语句至 少要被执行一次,特
别要注意n和s旳取值 问题!
s=s+score;
}while(score>=0);
if(n>1) printf (“ \n %f” ,(s-score)/(n-1));
else printf(“no student score!”);
《循环结构程序设计》课件
for循环结构的执行流程
总结词
详细描述for循环结构的执行流程,包括初始化、条件判断、循环体执行和更新四个步 骤。
详细描述
for循环结构的执行流程包括四个步骤。首先,进行初始化操作,设置循环变量的初始 值。然后,进行条件判断,检查是否满足循环继续的条件。如果条件满足,执行循环体 内的语句。最后,进行更新操作,修改循环变量的值,然后再次进行条件判断,重复执
while循环结构的注意事项
总结词
关键点全覆盖
详细描述
使用while循环结构时需要注意以下几点,首先,条件表达式必须保证在某个时刻变为假,否则循环 将无限进行下去;其次,在循环体内应包含使条件表达式最终变为假的操作;最后,应避免在循环体 内使用使条件表达式永远为真的操作。
04
do-while循ห้องสมุดไป่ตู้结构
do-while循环结构的语法
总结词:简洁明了
详细描述:do-while循环结构的语法包括"do"关键字、"while"关键字、循环体和条件表达式。语法 格式为"do {循环体} while (条件表达式);"
do-while循环结构的执行流程
总结词:逻辑清晰
详细描述:do-while循环结构的执行流程是先执行一次循环 体,然后判断条件表达式,如果条件表达式为真,则再次执 行循环体,否则退出循环。循环体会一直执行直到条件表达 式不再满足为止。
循环结构的应用实例
用for循环计算1到100的累加和
总结词:简单明了
详细描述:通过使用for循环,我们可以轻松地计算从1到 100的所有整数的累加和。在每次循环中,我们将当前数 字添加到总和中,直到我们达到100。
循环结构程序代码
循环结构程序代码循环结构是计算机编程中经常使用的一种结构,可以让程序重复执行某段代码。
常见的循环结构包括for循环和while循环。
下面将分别介绍这两种循环结构,并给出一些实例代码。
1. for循环for循环是一种常用的循环结构,可以让程序按照设定的次数执行一段代码。
for循环一般由三个部分组成:初始化、判断条件和循环体。
其中初始化部分只会在循环开始时执行一次,而循环体部分则会被重复执行多次,直到判断条件为假为止。
下面是一个简单的示例,演示了如何使用for循环打印1~10之间的所有整数:```for (int i = 1; i <= 10; i++) {System.out.println(i);}```上面的代码中,变量i被初始化为1,然后在每次循环开始时,判断i是否小于等于10,如果是,则执行循环体部分,即打印i的值,然后将i的值加1。
这个过程会一直持续到i不再小于等于10为止。
除了可以按照次数循环执行,for循环还可以按照一个集合或数组中的元素执行。
例如,下面的代码演示了如何使用for循环遍历一个数组并打印数组中每个元素的值:2. while循环while循环是另一种常用的循环结构,它会根据一个条件来重复执行某段代码,直到条件为假为止。
while循环一般由一个条件和循环体组成。
除了可以按照条件循环执行,while循环还可以用来读取用户输入的数据,例如,下面的代码演示了如何使用while循环读取用户输入的数字,并打印出输入的数字之和:```Scanner scanner = new Scanner(System.in);int sum = 0;int num;while ((num = scanner.nextInt()) != 0) {sum += num;}System.out.println("和为:" + sum);```上面的代码中,我们使用了Scanner类来读取用户输入的数字,然后通过while循环来不断读取输入值,并将每个数字累加到sum变量上。
程序循环结构实验报告(3篇)
第1篇实验名称:程序循环结构实验实验日期:2023年4月10日实验地点:计算机实验室实验目的:1. 理解循环结构在程序设计中的作用。
2. 掌握不同循环结构(如for循环、while循环、do-while循环)的语法和应用。
3. 能够根据实际问题选择合适的循环结构进行编程实现。
4. 提高编程实践能力。
实验环境:1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm实验内容:一、实验一:for循环结构1. 实验目的了解for循环的语法和使用方法,掌握其基本操作。
2. 实验步骤(1)编写一个程序,使用for循环打印1到10的整数。
(2)编写一个程序,使用for循环计算1到100的整数之和。
3. 实验代码```python打印1到10的整数for i in range(1, 11):print(i)计算1到100的整数之和sum = 0for i in range(1, 101):sum += iprint("1到100的整数之和为:", sum)```4. 实验结果程序成功运行,打印出1到10的整数和1到100的整数之和。
二、实验二:while循环结构1. 实验目的了解while循环的语法和使用方法,掌握其基本操作。
2. 实验步骤(1)编写一个程序,使用while循环计算1到10的整数之和。
(2)编写一个程序,使用while循环判断一个数是否为素数。
3. 实验代码```python计算1到10的整数之和sum = 0i = 1while i <= 10:sum += ii += 1print("1到10的整数之和为:", sum)判断一个数是否为素数num = 29is_prime = Truei = 2while i i <= num:if num % i == 0:is_prime = Falsebreaki += 1if is_prime:print(num, "是素数")else:print(num, "不是素数")```4. 实验结果程序成功运行,打印出1到10的整数之和以及29是否为素数。
循环结构流程图
循环结构定义:
运行程序时重复执行某一段程序代码称为 循环结构
一、格式
for/next 循环语句
For 循环变量 = 初值 To 终值 [Step 步长值] <循环体>
Next [循环变量]
二、流程图
1、步长为正:超过 指的是大于 2、步长为负:超过 to 2 step -1 Print " abc”" Next I
3、分析程序 For i=1 to 1 step 0 Print " abc " Next I
4、分析程序: For i=2 to 2 step 1 Print " abc " Next i
5、分析程序 For i=2 to 2 sep -1 Print " abc " Next i
Next [循环变量]
三、执行过程
For/Next 循环的执行过程是:
①循环变量取初值; ②循环变量与终值比较,没有超过终值转③,否则 循环结束,接着执行循环语句的后继语句; ③执行一次循环体; ④循环变量增加一个步长; ⑤重复步骤②~④。
说明:
①、循环变量的初值、终值、步长都是数值型。其 中要重复执行的操作称为循环体,步长可正可负, 如果没有设置 Step,则增量的缺省值为1。
问题二:步长为正数的循环,什么情况下结束循环? 答:当初值大于终值时。
问题三:步长为负数的循环,什么情况下执行循环体? 答:当初值大于等于终值时。
问题四:步长为负数的循环,什么情况下结束循环? 答:当初值小于终值时。
例1:增量为正 For I = 2 To 1 Step 1 Print "abc" Next I
12循环结构程序设计(for循环举例)
如果一个数恰好等于它的所有因子(包括1,但是不 包括自身)之和,则称为“完数”
6
1
2
3
14
课堂小结
在用循环解决问题时,要正确计算循环的次数,并 设计出循环表达式。
一般情况下,3种循环可以互相代替 for语句完全可以代替while语句
15
____ __
16
printf("*"); i++; }
int i; i=0; do {
printf("*"); i++; }while(i<9);
3
? ********* ********* ********* ********* ********* 如何编程实现?
i=0
当i<=9时
输出*
i=i+1
4
********* ********* ********* ********* *********
运行程序1210-3
循环应用举例
编程打印如下所示九九乘法表的图案
输入程序12-4 11 验证结果
循环应用举例
打印如下所示九九乘法表的图案
输入程序12-5 12 验证结果
课后练习
打印如下所示九九乘法表的图案
13
课后练习
求出1000以内的所有完数的和,并按照下列格式输出
。 完数1+完数2+…….+完数n=和
《C语言程序设计》
循环嵌套
1
学习目标
➢ 熟练使用while、do~while、for语句实现循环 ➢ 使用循环嵌套实现复杂问题求解
2ห้องสมุดไป่ตู้
知识回顾
循环程序基本结构
循环程序基本结构循环程序是计算机程序中最常用的结构之一,也是实现重复性任务的有效方法。
它可以让计算机反复执行一段代码,直到满足某个条件才停止。
循环程序通常由三部分组成:循环控制变量的初始化、循环条件的判断和循环控制变量的更新。
在本篇文章中,我们将详细介绍循环程序的基本结构。
一、while循环while循环是最基本的循环结构之一。
它的结构如下:while(循环条件){循环体语句;循环控制变量的更新;}其中,循环条件是一个布尔表达式,只有当它的值为true时,循环才会继续执行。
循环体语句是需要重复执行的代码,循环控制变量的更新是每次循环后改变循环条件的值。
这种循环结构适用于循环次数不确定的情况。
二、for循环for循环是另一种常用的循环结构。
它的结构如下:for(循环控制变量的初始化;循环条件;循环控制变量的更新){循环体语句;}其中,循环控制变量的初始化是在循环开始前执行的语句。
循环条件是一个布尔表达式,只有当它的值为true时,循环才会继续执行。
循环控制变量的更新是在每次循环结束后执行的语句。
for循环通常用于循环次数已知的情况。
三、do-while循环do-while循环与while循环的区别在于循环条件的判断是在循环体语句执行后进行的。
它的结构如下:do{循环体语句;循环控制变量的更新;}while(循环条件);其中,循环条件是一个布尔表达式,只有当它的值为true时,循环才会继续执行。
循环体语句是需要重复执行的代码,循环控制变量的更新是每次循环后改变循环条件的值。
do-while循环适用于至少要执行一次循环体语句的情况。
四、嵌套循环嵌套循环是指在一个循环结构中嵌入另一个循环结构。
它可以实现更加复杂的重复性任务。
例如,下面的代码可以输出一个九九乘法表:for(int i=1;i<=9;i++){for(int j=1;j<=i;j++){System.out.print(j+"*"+i+"="+i*j+" ");}System.out.println();}其中,外层循环控制行数,内层循环控制列数。
循环结构程序
三、典型循环程序的一般组成:四个主要部分组成 1、初始化部分
为循环程序做准备,如规定循环次数、各给变量和地址指针 预设初值等。即根据已知条件转换成指令。
2、处理部分
为循环程序的主体,在这里对数据进行实际的处理。
3、循环控制部分
为修改循环变量和部分
为主要是循环程序的结果进行分析、处理和存放。
五、课堂小结
• 1、什么时候用循环结构程序? • 2、循环程序的分类? • 3、循环结构程序的组成部分及每部分的作用?
六、作业
已知内部RAM的30H单元开始存放的20个数据,试变成 程序将其传送到外部RAM的1000H单元开始的存储区。
循环结构程序
一、循环结构程序定义
• 在解决实际问题的过程中,往往需要在一定 的条件下重复某些相同的操作,即对某一部 分程序进行循环执行。我们把能够完成循环 操作的程序称为循环结构程序。
二、循环程序的基本结构
• 一种是“先执行,后判断”即“直到型”循环。该种结构的循环 至少执行一次循环体。(已知循环次数) • 另一种是“先判断,后循环”,即“当型”循环。该种结构的循 环先判断条件,如果条件满足循环结束条件,则直接跳出循环, 一次也不执行循环体,即循环次数为0。(一般用CJNE判断) • 如果能确保至少执行一次循环,则采用以上任何一种循环结构都 可以,否则采用后一种循环结构为宜。
四、例题分析(先执行,后判断)
• 编写程序将外部数据存储器8000H单元开始的连续50个单元的内 容清零。
ORG 1000H CLEAR: CLR A ;对累加器A清零 MOV DPTR,#8000H;设置首地址 MOV R7,#50;设置循环次数 CLEAR1:MOVX @DPTR,A;地址的内容清零 INC DPTR;修改地址指针 DJNZ R7,CLEAR1;判断是否结束 SJMP $;动态停机 END;结束
C语言-循环结构程序设计
while循环
01
示例代码
02
```c
int i = 0;
03
while循环
while(i < 10) {
printf("%dn", i);
while循环
• i;
while循环
} ```
do-while循环
总结词
do-while循环是一种先执行循环体再检查条件的循环结构, 至少会执行一次循环体。
循环结构程序设计的重要性
提高代码复用性
通过使用循环结构,可以将重复 执行的代码块抽象出来,减少代
码冗余,提高代码复用性。
简化复杂问题
对于一些复杂的问题,使用循环 结构可以简化问题的解决过程, 提高代码的可读性和可维护性。
提高程序效率
循环结构可以减少重复计算和 操作,提高程序的执行效率。
实现迭代算法
03
避免在循环条件中直接使用赋值语句,以免造成无 限循环或死循环。
05
循环结构与其他结构的结合使用
循环结构与条件结构的结合
循环结构与if条件结构的结合
在循环体内使用if条件语句,根据条件判断是否执行某段代码。
while循环与if条件结构的结合
在while循环中嵌套if条件语句,根据条件判断是否继续循环。
发生。
循环变量的初始化与更新
确保循环变量在使用之前已经初始化,以避免 未定义的行为。
在循环体内更新循环变量的值,以确保循环能 够正常结束。
使用合适的类型和范围来声明循环变量,以避 免溢出或越界的问题。
循环条件的设定与修改
01
根据实际需求合理设定循环条件,确保循环能够正 确执行。
02
在循环体内适时修改循环条件,以控制循环的次数 和流程。
循环结构的程序
条件循环语句
例统计一个班某科考试的平均分。
分析:设输入分数为 X,班总分为 S,人数为 R,问题可转化为以 输入的 X>=0 为循环条件输入考试分数并累加 (S=S+X),计人数 (R=R+1),否则终止循环后求平均分(S/R)。程序如下:
S=0 :R=0 INPUT X DO WHILE X>=0
赋初值给循环变量 记下终值和步长
S=S+X
NEXT PRINT END 答案: S=10 X “S=”;S
循环变量值超过终值 Y
N
顺序执行循环体 NEXT的下一语句 循环变量增加一个步长
循环结构的程序
二、计数循环语句
5.写出下列程序的运行结果: 2)T=1 FOR K=1 TO 5
循环变量值超过终值 Y 赋初值给循环变量 记下终值和步长
二、计数循环语句
4.循环程序设计
例1:在屏幕上连续打印自然数1—1000。
分析: 如果我们每次打印一个自然数,则需要1000个PRINT语句,显然写这 样的程序实在太…… 而如果我们让计算机自动重复这“打印一个自然数”1000次,则程序 变得相当容易。 即我们要构造一个循环,让PRINT N这一句重复1000次。其中N从 一到1000,每次增加1即可。 程序如下: 问:如果要打印1-100的整数 FOR N=1 TO 1000 STEP 1 的算术平方根和平方数呢? 循环体 PRINT N; 答:需要修改的地方:循环的 NEXT N 终值改为100、循环体内的输出 END 内容改为SQR(N),N*N
循环结构的程序
二、计数循环语句 2.功能: 根据FOR语句设定的循环次数重复执行循环体。 其具体执行过程可用下图来表示: 赋初值给循环变量 记下终值和步长 循环变量值超过终值 N 顺序执行循环体 步长为正,大于终值 步长为负,小于终值
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DJNZ
RET
R5,DELAY0
(2)循环体。重复执行的程序段。
(3)循环修改。在单片机中,一般用一个工作寄存器Rn作 为计数器,并给这个计数器赋初值作为循环的次数,运行程序 时,每循环一次,则对该计数器进行修改。 (4)循环控制。判断循环控制变量(保存循环次数的变量
)是否满足终止值的条件,如果满足则结束循环,顺序执行循
环短一些的程序;如果不满足,则继续重复执行循环的工作部 分,直到达到循环结束条件(死循环除外)。
【例4.4】延时10ms子程序(设晶振的频率为6MHz)。 在知道系统的晶振频率之后,延时时间主要与两个因素有关 :一是内循环中指令的执行时间;二是外循环时间常数(内循 环的循环次数)的设置。在本例中,已知晶振频率为6MHz,
则可得一个机器周期为0.5μs,执行一条 DJNZ Rn,rel的指令
的时间为两个机器周期即1μs,10ms的延时子程序设计如下: DELAY: DELAY0: DELAY1: MOV R5,#100 MOV DJNZ R4,#100 R4,DELAY1
循环结构程序
在程序设计过程中,常常遇到反复执行某一段程 序的情况,这种情况下采用循环程序结构,构,可以 缩短程序代码的长度,提高程序的质量和运行效率。 循环的这四个部分有两种情况,如图4- 3所示。
图4- 3 循环结构程序流程图
循环结构程序一般包括以下几个部分: (1)置初值。置初值是设置用于循环过程工作单元的初始 值,例如设置循环次数计数器、地址指针初值、存放变量的单 元的初值。
程序清单如下: ORG 0100H MOV R5,23H CLR A MOV R6,#00H MOV R4,#01H LOOP:ADD A,@R4 JNC NEXT INC R6 NEXT:INC R4 DJNZ R5,LOOP MOV 23H,R6 MOV 24H,A END
;R5←N ;A清零 ;R6清零 ;R4赋值 ;求和 ;CY=0即总和小于256,则转移 ;总和高位加工 ;修改指针 ;未完,重复加 ;保存总和的高位 ;保存总和的低位
【例4.3】求1、2、3…N之和(N<256)。 这是一个简单的重复相加的问题。设R2为加数指针, R5为循环次数计数器,R6为加数总和的加数总和的高位字节和低
位字节分别存入23H和24H中。程序流程图如图4- 4所示。
图4- 4 例4.3程序流程图