算法与程序框图
教学目标:明确算法的含义,熟悉算法的三种基本结构。
教学重点:算法的基本知识与算法对应的程序框图的设计.
教学难点:与算法对应的程序框图的设计及算法程序的编写.
教学过程:
1.算法的定义:广义的算法是指完成某项工作的方法和步骤,现代意义的算法是指可以用计算机来解决的某一类问题的程序和步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成.
2.流程图的概念:流程图是用一些规定的图形、指向线及简单的文字说明来表示算法几程序结构的一种图形程序.它直观、清晰,便于检查和修改.其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,带箭头的流程线(指向线)表示操作的先后次序.
构成流程图的图形符号及其作用
3.规范流程图的表示:
①使用标准的框图符号;
②框图一般按从上到下、从左到右的方向画,流程线要规范;
③除判断框外,大多数框图符号只有一个进入点和一个退出点.
④在图形符号内描述的语言要非常简练、清楚.
4、算法的三种基本逻辑结构:
课本中例题的讲解得出三种基本逻辑结构:顺序结构、条件结构、循环结构
(1)顺序结构:顺序结构描述的是是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的。
例1:已知一个三角形的三边分别为2、3、4,利用海伦公式设计一个算法,求出它的面积,并画出算法的程序框图。
算法分析:这是一个简单的问题,只需先算出p的值,再将它代入公式,最后输出结果,只用顺序结构就能够表达出算法。
解:程序框图:
点评:顺序结构是由若干个依次执行的步骤组成的,是任何一个算法都离不开的基本结构。
(2)条件结构:根据条件选择执行不同指令的控制结构。
例2:任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在,画出这个算法的程序框图。
算法分析:判断分别以这3个数为三边边长的三角形是否存在,只需要验收这3个数当中任意两个数的和是否大于第3个数,这就需要用到条件结构。
程序框图:
(3)循环结构:在一些算法中,经常会出现从某处开始,按照一定条件,反复执行某一处理步骤的情况,这就是循环结构,反复执行的处理步骤为循环体,显然,循环结构中一定包含条件结构。
循环结构分为两类:
(1)一类是当型循环结构,如图(1)所示,它的功能是当给定的条件P1成立时,执行A框,A框执行完毕后,再判断条件P1是否成立,如果仍然成立,再执行A框,如此反复执行A框,直到某一次条件P1不成立为止,此时不再执行A框,从b离开循环结构。
(2)另一类是直到型循环结构,如图(2所示,它的功能是先执行,然后判断给定的条件P2是否成立,如果P2仍然不成立,则继续执行A框,直到某一次给定的条件P2成立为
b b
当型循环结构直到型循环结构
两种循环结构有什么差别?
当型:先判断后执行
先判断指定的条件是否为真,若条件为真,执行循环条件,条件为假时退出循环。直到型;先执行后判断
先执行循环体,然后再检查条件是否成立,如果不成立就重复执行循环体,直到条件
课后练习:
1.下列关于算法的描述正确的是( )
A .算法与求解一个问题的方法相同
B .算法只能解决一个问题,不能重复使用
C .算法过程要一步一步执行
D .有的算法执行完以后,可能没有结果
2.计算下列各式中的S 值,能设计算法求解的是( )
①S =1+2+3+…+100;②S =1+2+3+…+100+…;③S =1+2+3+…+n (n ≥1,n ∈N)
A .①②
B .①③
C .②③
D .①②③
3.下列关于算法的说法正确的是( )
A .一个算法的步骤是可逆的
B .描述算法可以有不同的方式
C .算法可以看成按照要求设计好的有限的确切的计算序列并且这样的步骤能解决当前问题
D .算法只能用一种方式显示
4.下列各式中T 的值不能用算法求解的是( )
A .T =12+22+32+42+…+1002
B .T =12+13+14+15+…+150
C .T =1+2+3+4+5+…
D .T =1-2+3-4+5-6+…+99-100
5.下列四种叙述能称为算法的是( )
A .在家里一般是妈妈做饭
B .做米饭需要刷锅、淘米、添水、加热这些步骤
C .在野外做饭叫野炊
D .做饭必须要有米
6.关于一元二次方程x 2-5x +6=0的求根问题,下列说法正确的是( )
A .只能设计一种算法
B .可以设计两种算法
C .不能设计算法
D .不能根据解题过程设计算法
7.对于解方程x 2-2x -3=0的下列步骤:
①设f (x )=x 2-2x -3
②计算方程的判别式Δ=22+4×3=16>0
③作f (x )的图象
④将a =1,b =-2,c =-3代入求根公式
x =-b ±Δ2a
,得x 1=3,x 2=-1. 其中可作为解方程的算法的有效步骤为( )
A .①②
B .②③
C .②④
D .③④
8.解决某个问题的算法如下:
第一步,给定一个实数n (n ≥2).
第二步,判断n 是否是2,若n =2,则n 满足条件;若n >2,则执行第三步.
第三步,依次从2到n -1检验能不能整除n ,若都不能整除n ,则n 满足条件. 则满足上述条件的实数n 是( )
A .质数
B .奇数
C .偶数
D .约数
9.如下图所示的程序框图,其功能是( )
A .输入a ,b 的值,按从小到大的顺序输出它们的值
B.输入a,b的值,按从大到小的顺序输出它们的值
C.求a,b的最大值
D.求a,b的最小值
10.给出如图的程序框图,那么输出的S等于( )
A.2450 B.2550 C.5050 D.4900
第9题图第10题图
11.已知数字序列:2,5,7,8,15,32,18,12,52,8.写出从该序列中搜索18的一个算法.
第一步,输入实数a.
第二步,________.
第三步,输出a=18.
12.求1×3×5×7×9×11的值的一个算法是:
第一步:求1×3得到结果3.
第二步:将第一步所得结果3乘5,得到结果15.
第三步:________________________________________________________________.
第四步:再将105乘9得到945.
第五步:再将945×11,得到10395,即为最后结果.
11.输入3个实数按从大到小的次序排序。
12.给出50个数,1,2,4,7,11,…,其规律是:第1个数是1,第2个数比第1个数大1,第3个数比第2个数大2,第4个数比第3个数大3,…,以此类推. 要求计算这50个数的和. 将上面给出的程序框图补充完整.
(1)_____________________
(2)_____________________
(第12题图)