一、复习回顾
1、什么是算法?
算法通常是指按照一定规则解决某一类问题的明确和有限的步骤。
①明确性 ②有限性
2、算法有哪些特征?
自然语言
3、怎么表示算法?
二、讲授新课
1、程序框图
(1)程序框图的概念
程序框图又称流程图,是一种用程序框、流程线及文字说明来准确、直观地表示算法的图形.
图形符号
名称
功能
终端框
(起止框)
输入、输出框
处理框(执行框)
判断框
表示一个算法的起始和结束
表示一个算法输入和输出的信息
赋值、计算
判断某一条件是否成立,成立时在出口处标明“是”或“Y”,不成立时标明“否”或“N”.
(2)构成程序框图的图形符号及其功能
流程线
连接程序框
连结点
连接程序框图的两部分
6
例:判断“整数n (n>2)是否是质数”的算法
算法步骤:
程序框图:
第一步,给定大于2的整数n.
第二步,令i=2.
第三步,用i除n,得到余数r.
第四步,判断“r=0”是否成立.若是,则n不是质数,结束算法;否则将i的值增加1,仍用i表示.
第五步,判断“i>(n-1)”是否成立.若是,则n是质数,结束算法;否则返回第三步.
开始
求n除以i的余数r
i=2
输入n
i>n-1?
r=0?
输出“n是质数”
是
i的值增加1,仍用i表示
否
输出“n不是质数”
是
结束
否
例:判断“整数n (n>2)是否是质数”的算法
算法步骤:
程序框图:
第一步,给定大于2的整数n.
第二步,令i=2.
第三步,用i除n,得到余数r.
第四步,判断“r=0”是否成立.若是,则n不是质数,结束算法;否则将i的值增加1,仍用i表示.
第五步,判断“i>(n-1)”是否成立.若是,则n是质数,结束算法;否则返回第三步.
开始
输入n
求n除以i的余数
i的值增加1,仍用i表示
i>n-1或r=0?
r=0?
n不是质数
n是质数
结束
否
否
是
是
i=2
结束
开始
输入n
i=2
n除以i的余数r
i=i+1
i>n-1或r=0?
n不是质数
n是质数
否
是
是
否
r=0?
终端框(起止框),
表示一个算法的起始和结束
结束
开始
输入n
i=2
n除以i的余数r
i=i+1
i>n-1或r=0?
n不是质数
n是质数
否
是
是
否
r=0?
输入、输出框
表示一个算法输入和输出的信息
结束
开始
输入n
i=2
n除以i的余数r
i=i+1
i>n-1或r=0?
n不是质数
n是质数
否
是
是
否
r=0?
处理框(执行框)
赋值、计算
结束
开始
输入n
i=2
n除以i的余数r
i=i+1
i>n-1或r=0?
n不是质数
n是质数
否
是
是
否
r=0?
判断框
判断某一条件是否成立,成立时在出口处标明“是”;不成立时标明“否”
结束
开始
输入n
i=2
n除以i的余数r
i=i+1
i>n-1或r=0?
n不是质数
n是质数
否
是
是
否
r=0?
流程线
连接点
开始
输入n
求n除以i的余数
i的值增加1,仍用i表示
i>n-1或r=0?
r=0?
n不是质数
n是质数
结束
否
否
是
是
i=2
顺序结构
循环结构
条件结构
问题:你能说出三种基本逻辑
结构的特点吗?
2、算法的三种基本逻辑结构
顺序结构、条件结构、循环结构。
(1)顺序结构
顺序结构是由若干个依次执行的步骤组成的。它是任何一个算法都离不开的一种基本算法结构。
步骤 n
步骤n+1
示意图
例3 已知一个三角形的三边长分别为a, b, c,利用海伦-秦九韶公式设计一个计算三角形面积的算法,并画出程序框图表示.
算法步骤:
第一步,输入三角形三边长 a,b,c
第二步,计算
第三步,计算
第四步,输出s.
程序框图:
结束
开始
输入a, b, c
输出s
算法步骤为:
第一步,输入圆的半径 r .
第二步,计算
第三步,输出s.
程序框图:
结束
开始
输入r
输出s
计算
练习1:任意给定一个正实数,设计一个算法求以这个数为半径的圆的面积,并画出程序框图表示.
练习2(1)写出图中程序框图的运行结果:
开始
a=2
b=4
S=a/b+b/a
输出S
结束
图中输出S= ;
5/2
(2)写出下列算法的功能。
开始
输入a,b
d=a2+b2
c=
输出c
结束
左图算法的功能
是 ;
求两数平方和的算术平方根
条件结构是指在算法中通过对某条件的判断,根据条件是否成立而选择不同流向的算法结构.
基本形式2
(2)条件结构
满足条件?
步骤A
否
是
满足条件?
步骤A
步骤B
是
否
基本形式1
例4 任意给定3个正实数,设计一个算法,判断分别以这三个数为三边边长的三角形是否存在.画出这个算法的程序框图.
例5 设计一个求解一元二次方程ax2+bx+c=0的算法,并画出程序框图表示.
算法步骤:
第一步,输入3个系数a,b,c.
第二步,计算△=b2-4ac.
第四步,判断△=0是否成立.若是,则输出 x1=x2=p,否则,计算x1=p+q,x2=p-q, 并输出x1,x2.
第三步,判断△≥0是否成立.若是,则计 算 ;否则,输出“方
称没有实数根”,结束算法.
开始
程序框图:
输入a,b,c
△= b2-4ac
△≥0?
△=0?
否
x1= p + q
输出x1,x2
结束
否
是
x2= p - q
输出x1=x2=p
是
输出“方程没有实数根”
开始
结束
输入x
x>3?
y=x-2
输出y
y=4-x
否
是
练习1、此为某一函数的求值程序图,若输入x的值为3,求输入的y值
例6、设计一个算法计算分段函数 , 的函数值,并画出程序框图。
第一步、输入x
第二步、判断“x<0”是否成立,若是,则输出y=0,否则执行第三步;
第三步、判断“x<1”是否成立,若是,则输出y=1,否则输出y=x。
练习2:设计一个算法计算分段函数 的函数值,并画出程序框图。
变形:设计一个算法计算分段函数 的函数值,并画出程序框图。
1、掌握程序框的画法和功能。
2、了解什么是程序框图,知道学习程序框图的意义。
3、掌握顺序结构、条件结构的应用,并能解决与这两种结构有关的程序框图的画法。
三、课时小结:
开始
i=1
S=0
i=i+1
S=S+i
i≤10?
输出S
结束
否
是
循环结构
问题:说一说循环结构的功能
循环结构——在一些算法中,也经常会出现从某处开始,按照一定条件,反复执行某一步骤的情况,这就是循环结构.
反复执行的步骤称为循环体.
注意:循环结构中一定包含条件结构.
循环结构定义
循环结构类型
反复执行的步骤称为循环体.
循环体
满足条件?
否
是
循环体
满足条件?
否
是
直到型
当型
第四步,判断“i>100”是否成立.
若是,则输出S,结束算法;
否则,返回第二步.
第一步,令i=1,S=0.
第二步,计算S+i,仍用S表示.
第三步,计算i+1,仍用i表示.
思考1:计算1+2+3+…+100的值的算法,并画 出程序框图。
算法分析:
知识探究(一):循环结构的程序框图
思考2:用直到型循环结构,上述算法的程序框图如何表示?
开始
i=1
i>100?
是
输出S
结束
S=0
i=i+1
S=S+i
否
思考3:用当型循环结构,上述算法的程序框图如何表示?
开始
i=1
结束
输出S
否
是
S=0
S=S+i
i≤100?
i=i+1
第二步,判断i≤100是否成立.
若是,则计算S=S+i,
i=i+1,重复此操作;
否则,输出S,结束算
法.
第一步,令i=1,S=0.
思考4:观察两个程序框图,直到型循环结构与当型循环结构如何转化?
开始
i=1
i>100?
是
输出S
结束
S=0
i=i+1
S=S+i
否
开始
i=1
结束
输出S
否
是
S=0
i≤100?
i=i+1
S=S+i
初始值
循环体
终止条件
说明:(1)一般地,循环结构中都有一个计数变量和累加变量.计数变量用于记录循环次数,同时它的取值还用于判断循环是否终止,累加变量用于输出结果.累加变量和计数变量一般是同步执行的,累加一次,记数一次.
(2)循环结构分为两种------当型和直到型.
当型循环在每次执行循环体前对循环条件进行判断,当条件满足时执行循环体,不满足则停止;(当条件满足时反复执行循环体)
直到型循环在执行了一次循环体之后,对控制循环条件进行判断,当条件不满足时执行循环体,满足则停止.(反复执行循环体,直到条件满足)
变式1: 右边的程序框图输出S=————?
开始
i=1
i>100?
是
输出S
结束
S=0
i=i+1
S=S+i
否
开始
i=1
i>3?
是
输出S
结束
S=0
S=S+i
i=i+1
否
9
变式2:右边的程序框图,
输出S=———?
开始
i=1
i>3?
是
输出S
结束
S=0
i=i+1
S=S+i2
否
题型一:程序框图的阅读与理解
14
题型二:程序框图的补充
1、求 的值。设计的算法框图如右,应该在空格位置填入什么条件?
分析:空格位置判断条件,应该考虑循环的终止条件是什么?
应该填入:i>10
例2 某工厂2005年的年生产总值为200万元,技术革新后预计以后每年的年生产总值都比上一年增长5%.设计一个程序框图,输出预计年生产总值超过300万元的最早年份.
第三步,判断所得的结果是否大于300. 若是,则输出该年的年份; 否则,返回第二步.
第一步, 输入2005年的年生产总值.
第二步,计算下一年的年生产总值.
算法分析:
(3)控制条件:当“a>300”时终止循环.
(1)循环体:设a为某年的年生产总值, t为年生产总值的年增长量,n为年份,则t=0.05a,a=a+t,n=n+1.
(2)初始值:n=2005,a=200.
循环结构:
开始
n=2005
a=200
t=0.05a
a=a+t
n=n+1
a>300?
结束
输出n
是
否
程序框图:
循环结构:
开始
n=2005
a=200
t=0.05a
a=a+t
n=n+1
输出n
结束
是
否
a≤300?
当型循环结构程序框图
思考1:用“二分法”求方程 的近似解的算法如何设计?
知识探究(二):混合逻辑结构的程序框图
第一步,令f(x)=x2-2,给定精确度d.
第二步,确定区间[a,b],满足f(a)·f(b)<0.
第三步,取区间中点 .
第四步,若f(a)·f(m)<0,则含零点的区间为[a,m];否则,含零点的区间为[m,b].将新得到的含零点的区间仍记为[a,b].
第五步,判断[a,b]的长度是否小于d或f(m)是否等于0.若是,则m是方程的近似解;否则,返回第三步.
思考2:该算法中哪几个步骤可以用顺序结构来表示?这个顺序结构的程序框图如何?
f(x)=x2-2
输入精确度d
和初始值a,b
思考3:该算法中第四步是什么逻辑结构?这个步骤用程序框图如何表示?
f(a)f(m)<0?
b=m
是
a=m
否
思考3:该算法中第五步是什么逻辑结构?这个步骤用程序框图如何表示?
|a-b|输出m
是
否
f(a)f(m)<0??
a=m
b=m
是
否
思考5:根据上述分析,你能画出表示整个算法的程序框图吗?
开始
结束
f(a)f(m)<0??
a=m
b=m
是
否
|a-b|输出m
是
否
f(x)=x2-2
输入精确度d
和初始值a,b
小结作业
3.设计一个算法的程序框图的基本思路:
第二步,确定每个算法步骤所包含的逻辑结构,并用相应的程序框图表示.
第一步,用自然语言表述算法步骤.
第三步,将所有步骤的程序框图用流程线连接起来,并加上两个终端框.
首先确定循环体,再根据循环体第一步确定初值,
最后一步确定循环终止条件。
1.循环结构三要素:
循环变量赋初值、循环体、循环终止条件
2.循环三要素确定过程: