文档介绍:算法结构
西南大学数学系09级
在生活中,大家都一定泡过茶,请大家告诉我,你是按着怎样的步骤泡茶的呢?
洗茶杯
放茶叶
泡茶
烧开水
烧开水
洗茶杯
放茶叶
泡茶
开始
结束
例算法结构
西南大学数学系09级
在生活中,大家都一定泡过茶,请大家告诉我,你是按着怎样的步骤泡茶的呢?
洗茶杯
放茶叶
泡茶
烧开水
烧开水
洗茶杯
放茶叶
泡茶
开始
结束
例1 已知两个数分别为a,b,请设计一个算法求a-b的值,并画出程序框图。
算法步骤:
S1:输入a,b;
S2:计算c=a-b的值;
S3:输出c;
开始
输入a, b
c=a-b
输出c
结束
烧开水
洗茶杯
放茶叶
泡茶
开始
结束
开始
输入a, b
c=a-b
输出c
结束
顺序结构
顺序结构是由若干个按顺序依次执行的步骤组成的。
步骤 n
步骤n+1
A
B
例2
已知两个数a,b,请设计一个算法计算 a-b ,并画出程序框图。
算法步骤:
程序框图:
S1:输入a,b;
S2:若a>b,则计算c=a-b;
若a≤b,则计算c=b-a;
S3:输出c的值;
开始
输入a, b
a>b
是
c=a-b
否
c=b-a
输出c
结束
条件结构
条件结构是指在算法中通过对条件是否成立作出判断,再决定执行哪一种操作,从而使算法流程产生不同流向的结构。
阅读下面的程序框图,思考该程序框图的功能。
开 始
输入x
x<1
x<10
输出y
结束
否
否
是
是
嵌套的条件结构,处理判断条件的结果不止两个的情况。
例3 设计一个判断一元二次方程
在实数范围内根的情况的算法,并用程序框图表示出来.( )
算法步骤:
S1:输入 ;
S3:判断 ,则输出“方程无实根”,否则,则执行S4;
S2:计算 ;
S4:判断 ,则输“方程有两个相等的实根”,若不是,则输出“方程有两个不等的实根”.
开 始
输入
结 束
方程无实数根
否
是
否
方程有两个相等实根
方程有两个不等的实根
是
二选一
是
否
条件p
步骤A
步骤B
选或不选
条件p
步骤A
是
否
例4:设计一个算法求
并画出程序框图.
分析
根据加法法则,可以从左至右一个接一个往上加,先令S的值为0,再把1加到S上去,再把所得结果与1/2相加,依次进行下去,直到2012次加法后得出结果。
S1:
S=1+S
S=1
S=1/2+S
S=1+1/2=3/2
S=1/3+S
S=1+1/2+1/3=11/6
. . .
. . .
S=1/2011+S
S=1/2011+1/2010+…+1
S=1/2012+S
S=1/2012+1/2011+…+1
S2:
S3:
S4:
S2012:
S2013:
S=0
=
S1:
S=1+S
S=1/2+S
. . .
S=1/2011+S
S=1/2012+S
S2:
S3:
S4:
S2012:
S2013:
S=0
S=1/3+S
S=S+1/K
1≤K≤2012
K=K+1
算法步骤
s1:赋初值k=1,s=0;
s2:若k≤2012成立,则执行s3; 否则,则输出s,结束算法;
s3:赋值s=s+1/k,k=k+1.
开始
结束
S=0
k=1
S=S+1/k
k=k+1
k>2012
输出S的值
是
否
循环结构
在算法中,也经常会出现从某处开始,按照一定条件,反复执行某些步骤的结构,称作循环结构.
反复执行的步骤称为循环体.
循环结构中一定含有条件结构吗?为什么?
循环结构不能是永无终止的“死循环”,一定要在某个条件下终止循环,这就需要条件结构来作出判断,因此,循环结构中一定包含条件结构.
开始
结束
S=0
k=1
k≤2012
输出S的值
是
否
k=k+1
S=S+1/k
思考
s与k在程序框图有什么作用?
S为累加变量.
k计数变量.
反复执行循环体,
直到条件满足.
直到型循环
条件p
循环体
是
否
当条件满足时
反复执行循环体.
当型循环
否
是
条件p
循环体
练习:下边的程序框图,输出S= ?
开始
i=1
是
输出S