程序流程图-循环结构

合集下载

1.1.2程序框图的概念(循环结构)(高中数学人教版必修三)

1.1.2程序框图的概念(循环结构)(高中数学人教版必修三)

计数变量:用于记录循环次数,同时还用 于判断循环是否终止. 累加变量:用于输出结果,一般与计数变 量同步执行,累加一次,计数一次.
i i 1
循环终止条件
循环体
S Si
Y
i 100?
N
输出 S 结束
练习
1、下面3个图是为计算1 2 3 100 的值而绘制的 程序框图,其中正确的是 C 开始 开始 开始 S=0 S=1 i=2 i=1 i=2 S =1
i=i+1 i≥n-1或r=0?
是 否 否
r=0?

n不是质数
结束
n是质数
开始
语言描述
第一步,给定大于2的整数n。
输入n i=2
简单流程
第二步,令i=2。 求n除以i的余数r 第三步,用i除n,得到余数r。 第四步,判断r=0是否成立, 若是,则n不是质数,结束 算法;否则,将i的值增加 1,仍用i表示。 第五步,判断i >(n-1) 是否成立。若是,则n是 质数,结束算法;否则, 返回第三步. i=i+1 i>n-1或r=0?
1. 画流程图时一定要清晰,用铅笔和直尺画, 要养成有开始和结束的好习惯; 2. 画流程图时拿不准的时候可以先根据结构特 点画出大致的流程,反过来再检查,比如:遇到 判断框时,往往临界的范围或者条件不好确定, 就先给出一个临界条件,画好大致流程,然后检 查这个条件是否正确,再考虑是否取等号的问题 ,这时候也就可以有几种书写方法了; 3. 在输出结果时,如果有多个输出,一定要用 流程线把所有的输出总结到一起,一起终结到结 束框。
如果一个计算过程,要重复一系列的 计算步骤若干次,每次重复的计算步骤完 全相同,则这种算法过程称为循环过程。

循环结构程序

循环结构程序

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

流程图——循环结构

流程图——循环结构

试画出算法2的流程图 该算法为何结构 试画出算法 的流程图.该算法为何结构 的流程图 该算法为何结构?
算法2流程图: 开始 T←1 I←2 T←T×I I←I+1 I>5 Y 输出T
结束
思考: 思考 此流程图使用那 一种循环结构? 如何用当型循环 来描述同样问题?
开始 当型循环 T←1 I←2 I←I+1 T←T×I
S ←0
S ← S + 400
S ≥ 10000
Y
N
开始
开始
S ←0
S ← S + 400
S ←0
S ← S + 400
S<10000 N 结束
问题: 问题:
Y
S ≥ 10000
Y 结束
N
仔细观察上述两个算法,有何区别与联系? 仔细观察上述两个算法,有何区别与联系?
像这种需要重复执行同一操作 重复执行同一操作的结构称为循环结构 循环结构. 重复执行同一操作 循环结构 那么这两个循环结构有什么区别呢?
N
X ← S / 10

输出 X

结束
结束
小结
1.本节课主要讲述了算法的循环结构。算法的 基本逻辑结构有三种,即顺序结构、条件结构和 循环结构。其中顺序结构是最简单的结构,也是 最基本的结构,循环结构必然包含条件结构,所 以这三种基本逻辑结构是相互支撑的,它们共同 构成了算法的基本结构,无论怎样复杂的逻辑结 构,都可以通过这三种结构来表达 。 2.循环结构要在某个条件下终止循环,这就需要 条件结构来判断。因此,循环结构中一定包含条件 结构,但不允许“死循环”。
N
I≤5 N 输出T
结束
Y
延伸、设计一个计算 , , , 的平均数的算法. 延伸、设计一个计算1,2,3,﹍,10的平均数的算法 的平均数的算法 分析:先设计一个循环依次输入 分析 先设计一个循环依次输入1-10,再用一个变量存 先设计一个循环依次输入 , 放这些数的累加和,最后除以10。 放这些数的累加和,最后除以 。 解: S1 S2 S3 S4 S5 S←0 I←1 S←S+I I←I+1 如果I大于 大于10,转 否则返回 否则返回S3. 如果 大于 转S6,否则返回

程序框图及逻辑结构——循环结构

程序框图及逻辑结构——循环结构

为了方便有效地表示上述过程,我 们引进一个变量S来表示每一步 的计算结果,i表示第i步运算
方法1:算法设计:
开始
第一步,令i=1,S=0. 第二步,计算S=S+i, 第三步,计算i=i+1, 第四步,判断i>100是否成立
i=1 S=0
S=S+i
i=i+1 否
. 若是,则输出S,结束算法; 否则,返回第二步.
算法分析:
第一步,输入2005年的年生产总值. 第二步,计算下一年的年生产总值. 第三步,判断所得的结果是否大于300. 若是,则输出该年的年份;否则, 返回第二步.
循环结构:
(1)循环体:设a为某年的年生产总值, t为年生产总值的年增长量,n为年份,则 t=0.05a,a=a+t,n=n+1.
(2)初始值:n=2005,a=200.


在每次执行循环 体前,对条件进 行判断,当条件 满足时,就执行 循环体,否则终 止循环.
这种循环结构称为当型循环结构,你能指出 当型循环结构的特征吗? 先判断后执行
两种循环结构异同:
循环体
循环体 满足条件?

满足条件?



直到型
当 型
注意:循环结构不能是永无终止的“死循 环”,一定要在某个条件下终止循环,这 就需要条件结构来作出判断,因此,循环 结构中一定包含条件结构.
某些循环结构用程序框图可以表示为:
循环体
满足条件?


在执行了一次循环 体后,对条件进行 判断,如果条件不 满足,就继续执行 循环体,直到条件 满足时终止循环.
这种循环结构称为直到型循环结构,你能指出直 到型循环结构的特征吗? 先执行后判断

程序框图(循环结构)

程序框图(循环结构)

开始 i=0,Sum=1 i = i + 1 Sum=Sum*i 否 i>=100? 是
输出Sum
结束
P20练习 设计一个用有理指数幂逼近无理数指数幂 5 的算法,并估计 5 2 的近似值,画出算法的 程序框图. 算法步骤:
2
第一步,给定精确度d,令i=1. 第二步,取出 2 的到小数点后第i位的不足 近似值,记为a.再取出它的到小数点后第i位 的过剩近似值,记为b. b a 第三步,计算 5 5 . a 第四步,若m<d,则得到所求的近似值为 5 ; 否则,将i的值增加1,返回第二步. a 2 的近似值 第五步,得到 5 5
y 1.9 x 4.9
P.21习题A组第2题

1 2 99 100 的值
2 2 2 2
算法步骤: 第一步,令i=1,s=0. 第二步,若成立,则执行第三步,否则, 输出s. 第三步,计算s=s+i2 第四步,计算i=i+1,返回第二步.
开始
i=1
S=0 i=i+1 S=S+i2 i≤100? 否 输出S
1.2x, 0 x 7; y= 1.9x - 4.9,x > 7.
算法步骤:
第一步,输入用户每月用水量x.
第二步,判断输入的x是否不超过7,若是, 则计算y=1.2x,若不是,则计算y=1.9x-4.9.
三、输出用户应交纳的水费y.
开始 输入用水量 否
0 x 7?
是 y =1.2x 输出水费y 结束
第二步,输入一个成绩r,判断r与6.8的大小, 若r≥6.8,则执行下一步;若r<6.8,则输 出r,并执行下步. 第三步,令n=n+1.
第四步,判断计数变量n与成绩个数9的大小, 若n≤9,则返回第二步,若n>9,则结束算 法.

1.1.2程序框图10(循环结构)

1.1.2程序框图10(循环结构)
主页
§1.1.2程序框图
2.设计一个计算 12+22+32+…+1002 的一个程序框图.
P.21A2
开始
i=1
Sum=0
i=i+1
i≤100? 否
Sum=sum+i2

输出sum
结束
主页
§1.1.2程序框图
开始
sum=0 i=1
sum=sum+i2
i=i+1

i >100?

输出mul 结束
主页
i=i+1
i≤9? 否
结束
主页
ri 为第i名同 学的成绩
§1课.1.2堂程序练框习图 P.12B2
开始
n=1
输入r
r≥6.8? 是
n=n+1
是 n≤9? 否
结主束页

输出r
是 满足条件?

语句
基本形式1
主页
§1.1.2程序框图
2.循环结构的算法流程图


循环体

环 结
满足条件? Y
构 N
当型循环结构在每次执行循环体前对控制循 环条件进行判断,当条件满足时执行循环体,不 满足则停止.
主页
§1.1.2程序框图
直 到 型 循 环 结 构
循环体
条件 N Y
直到型循环执行了一次循环体之后,对控 制循环条件进行判断,当条件不满足时执行循 环体,满足则停止.
§1.1.2程序框图
例2.画出
1
2
1
2
1
2
1
2 1
2 1
2

29.程序框图之循环结构7.28

29.程序框图之循环结构7.28

开始
练习
1.写出1×2×3×……×100的一个算法
开始
S=1,i=2 S=S×i
开始
S=1,i=2

i≤100?
i=i+1
i>100?

S=S×i

输出S

i=i+1
输出S
结束
结束
2.如果执行下面的程序框图 C ,那么输出的S=( ) A.7 C.11 B.9 D.13
对于i=1,S=1时,执 行i=i+1后,i=2,执行S=S+2后, S=3; 当i=2,S=3时,执行i=i+1后, i=3,执行S=S+2后,S=5;
算法
a 0 .0 5 a
第一步:输入2005年的年生产总值. 第二步:计算下一年的年生产总值. 第三步:判断所得结果是否大于300.若是,输出该年 年份;否则,返回第二步.
循环结构的设计步骤
a,n
a 200, n 2005
(1)确定循环结构的循环变量和初始条件; t 0 .0 5 a (2)确定算法中需要反复执行的部分,即循环体; a t a n n1 (3)确定循环的终止条件.
输出 n 结束
课堂小结
A
A
p
p
Y N Y
N
类型一
类型二
谢谢
例题3:设计算法流程图,求解方程x3+4x-10=0在区
间[0,2]内的解(精确至10-5)
开始
a=0,b=1
f((a+b)/2)=0 否 f(a)f((a+b)/2)>0 a=(a+b)/2 否 b-a<10-5 输出(a+b)/2 结束 b=(a+b)/2 是 是 否

程序框图循环结构

程序框图循环结构

A
成立
不成立
P
A
A
B
A
B P
不成立
成立
P 不成立
成立
变式训练. 下面的循环体执行的次数是
开始
i=2,s=0
s=s+i
i=i+2 否
i 100?

输出s
结束
例1.设计一个计 算 1+2+3+…+100 的程序框图.
开始 i=1 S=0
i=i+1
i≤100?

输出S
S=S+i

结束
例1.设计 一个计算 1+2+3+… +100的程 序框图.
S=S+i
开始 i=1 S=0
输出S
i=i+1
i≤100?

结束
S=S+i

变式训练(2):
编写程序求:1×3×5×7×……×101的值.
直到型 开始 如何修改?
开始
当型
i=1
SS==01
i=1
SS==01
SS==SS*+i i
ii==ii++21 否
i>i>110010??

输出S
i=ii=+i2+1
开始
开始
i=1 S=0
S=S+i
i=i+1
否 i>100?
是 输出S
i=1 S=0
i=i+1
i≤100? 否
输出S
S=S+i 是
结束
结束
设计:求1× 2++22+×23++3×24++45×2++…5×2++…10×+01的1000一02的个一算个法算法
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

19
下列程序段执行后,内存变量s1的值是
s1=”network” s1=stuff(s1,4,4,”BIOS”) ?s1
A) network B) netBIOS C)net D) BIOS
e:\yh-vfo\yh\2010\程序\2008-4-笔试-28.prg
可编辑ppt
20
练习2:任意给定一个年份,判断该年是否为闰年。 闰年的条件是:能被4整除但不能被100整除; 或者能被100和400整除的数就是闰年。
第三章 程序设计基础
本节要点
1. 流程控制(顺序,选择,循环结构) 2. 常用函数(asc,%,int,at) 3. 国考笔试题
可编辑ppt
1
A B 顺序结构
T 条件 F
A
B
条件 F T
A
选择(分支)结构
循环可结编构辑ppt
2
if 条件 A
else B
endif
T 条件 F
A
B
选择(分支)结构
可编辑ppt
clear input "请输入日期:" to a
if (int(a/4)=a/4 and int(a/100)<>a/100) or ; (int(a/100)=a/100 and int(a/400)=a/400) ?a,"年是闰年"
s=s+MOD(x,10) ___x_=_i_n_t_(_x_/_1_0_)_ ENDDO ?s SET TALK ON A)x=int(x/10) B)x=int(x%10) C)x=x-int(x/10) D)x=x-int(x%10)
可编辑ppt
17
e:\yh-vfo\yh\2010\程序\2007-9-笔试.prg"
……
输出结果:13
可编辑ppt
14
下列程序段的输出结果是 ACCEPT TO A IF A=[123456] S=0 ENDIF S=1 ?S RETURN
A)0
B)1
C)由A的值决定 可编辑Dpp)t 程序出错
15
执行下列程序,显示的结果是【KR1O0W】
one="WORK"
two=""
a=LEN(one)
A=4
i=a
DO WHILE i>=1
two=two+SUBSTR(one,i,1)
i=i-1
ENDDO ?two
①TWO=“K”
营销1
可编e:辑\yphp-tvfo\yh\2010\程序\2007-4-笔试.prg 16
下面程序计算一个整数的各位数字之和。在下划线处 应填写的语句是 SET TALK OFF INPUT "x=" TO x s=0 DO WHILE x!=0
默认为1 可以不写
可编辑ppt
循环结束
8
注:
开始
判断一个整数M能否被另一 个整数N整除,初始一化般S采用3种 方法: 判断MOD(M,N)是否等于0 INT(M/N)是否i等<=1于00M/N F M%N是否等于0,若等于,则 表明M能被N整T除。
如果i为奇数, S=S+i;
否则,S=S-i
计算1-2+3-4+…-100
SET EXACT ON s="ni"+space(2) IF s=="ni"
IF s="ni" ?"one"
ELSE ?"two"
ENDIF ELSE
IF s="ni" ?"three"
ELSE ?"four"
ENDIF ENDIF RETURN
下列程序的运行结果是
A) one B) two
√C)three D)four
跳到endscan 以后的语句
输出结果:电话线
可编辑ep:p\tyh-vfo\yh\2010\程序\2006-9-笔试.p1r3g
如下程序显示的结果是【8】。
s=1
i=0
s=1i=0
do while i<8 s=s+i i=i+2
enddo ?s
s=s+i=1+0=1 s=1 i=0+2=2 s=S+i=1+2=3 i=i+2=2+2=4
e:\yh-vfo\yh\2010\程序\2008-4-笔试.prg
可编辑ppt
18
下列程序段执行以后,内存变量y的值是
CLEAR x=12345 y=0 DO WHLIE x>0 y=y+x%10 x=int(x/10) ENDDO ?y
A) 54321 B)12345 C) 51 D)15
可编辑ppt
可编e辑:\yphpt-vfo\yh\2010\程序\2005-9-笔试.prg12
GO 2
SCAN NEXT 4 FOR LEFT(名称, 2) = "电"
IF RIGHT(名称, 2) = "线" EXIT
ENDIF ENDSCAN
1 电视机 2 计算机 3 电话线 4 电冰箱 5 电线
? 名称
s=s*i i=i+1
结束
enddo
可编辑ppt
10
如果在命令窗口输入并执行命令: “LIST 名称”后在主窗口中显示: 记录号 名称
1 电视机 2 计算机 3 电话线 4 电冰箱 5 电线 假定名称字段为字符型、宽度为6, 那么下面程序段的输出结果是
e:\yh-vfo\yh\可20编1辑0p\程pt 序\2005-9-笔试.prg
S=0
for i =1 to 100
Iiff ii%为2奇<>数0
S=S+i else
S=S-i endif endfor
结束
可编辑ppt
9
计算 10! 开始
初始化S
F
i<=10
T
S=S*i
累乘器s 初始值置为1
S=1
fio=r1i =1 to 10 DoSW=hSi*lie i<=10
endfor
S=0
F i<=100
T S=S+i
输出S
输出S
结束
可编辑ppt
结束
7
FOR 循环
FOR 变量=初值 TO 终值 [STEP 步长]
语句序列A
给变量i赋初值
ENDFOR | NEXT变量 只要变量的值小于等于终值,重
F 判断i<=终值
复执行循环体中的语句序列。
T
语句序列A i=i+步长
一般知道终值 用for循环
国贸6
11
GO 2
Scan循环 P68
SCAN NEXT 4 FOR LEFT(名称,2)="电"
IF RIGHT(名称,2)="线" 1 电视机
LOOP
2 计算机 3 电话线
ENDIF ?? 名称
4 电冰箱 5 电线
ENDSCAN
跳到endscan
A)电话线
√C)电冰箱电线
B)电冰箱 D)电视机电冰箱
3
计算1+2+3+…+100
累加器:s=0
s=0+1=s+1=1 s=1+2=s+2=3 s=3+3=s+3=6 s=6+4=s+4=10
s=0 For i=1 to 100
s=s+i Endfor ?” s=”,s
……
可设编辑为ppt i
6
计算1+2+3+…+100
开始
开始
初始化S 计算S=1+2+3+…+x
相关文档
最新文档