●王红权 沈 浩 (杭州市第十四中学 浙江杭州 310006)
算法思想是现代人应该具备的一种数学素养.学习算法的关键是了解算法的含义、算法的思想及其构建过程,理解程序框图的3种基本逻辑结构:顺序结构、条件结构和循环结构.从考题设计方式上看:一种是给出缺损循环结构流程图,要求学生补充完整;另一种是让学生读框图写结果.一般都以选择题、填空题等形式出现.
翻阅近3年新课改省份的文、理科试卷发现,考题题型基本相同,笔者对这3年的试卷进行了分析,如表1.
表1 近3年算法考题统计
循环是计算机工作最主要的方式,其结构与传统高中数学的其他教学内容有很大的区别,是算法所特有的内容,因此也可以作为判断学生对算法掌握程度的试金石.但这并不意味着另外2种结构就不重要,3者常常同时出现,相辅相成,这也许就是今后命题的一个方向.
比较2009年与前2年的试题可以发现:程序框图已从单一结构向结构嵌套发展;题型也从单一的选择题向选择题与填空题这2种题型并存发展;考查的内容从单一的算法向通过算法考查其他知识发展,即简单综合化.
笔者通过研究近3年算法在以上10个省、市的命题来看,主要有2种考查形式:一种读框图理解算法含义写出运算结果;另一种是读框图补全残缺算法,考查的都是对框图的理解.
算法复习的主线是算法的逻辑结构,复习的重点是框图.特别是要注意新出现的综合现象.下面用具体的例子说明这2种命题形式的思路和解题策略.
单一的考查条件结构只有在2008年海南、宁夏数学高考试题和2009年上海市数学高考试题中出现过,条件结构的框图常常和分段函数结合来考查.
例1 某算法的程序框如图1所示,则输出量y与输入量x 满足的关系式是_______.
(2009年上海市数学高考试题)
点评框图中的赋值符号“=”也可以写成“←”或“:=”.
循环结构是2009年数学高考考查的重点,仍将会是2010年各省、市数学高考中程序和框图考查的重点.
图1
例2 执行程序框图(如图2),输出的T= _______.(2009年山东省数学高考试题)
解很明显,本题考查的是循环结构.当T≤S时,进行循环;当T>S时,结束循环.
程序框图依次执行:
第1 步:S=5,n=2,T=2;
第2 步:S=10,n=4,T=2+4=6;
第3 步:S=15,n=6,T=6+6=12;
第4 步:S=20,n=8,T=12+8=20;
第5 步:S=25,n=10,T=20+10=30 >S,输出 T=30.
点评解决循环结构的程序框图问题一般都可以进行反复的运算直到满足条件后结束.本题涉及到3个变量,注意写出每个变量在每一步运行后的结果.
从2009年的全国各地数学高考试题看,循环结构与条件结构的嵌套已渐渐成为一种趋势.这类题目给出的程序框图比较复杂,往往内层为判断语句,外层为循环语句,判断条件比较多,在解题时需要把每一步所得到的参数值按循环次序写出,这样就不容易出错.
图2
例3 如果执行图3中的程序框图,输入x=-2,h=0.5,那么输出的各个数的和等于 ( )
A.3 B.3.5 C.4 D.4.5
(2009年海南、宁夏数学高考试题)
解第 1 步:y=0,x=-1.5;
第2 步:y=0,x=-1;
第3 步:y=0,x=-0.5;
第4 步:y=0,x=0;
第5 步:y=0,x=0.5;
第6 步:y=0.5,x=1;
第7 步:y=1,x=1.5;
第8 步:y=1,x=2;
图3
第9步:y=1,退出循环.
可得输出各数和为:0.5+1+1+1=3.5.故选 B.
点评这类考题中的循环次数不会很多,写出每一步得到的相应参数的值是解题的关键.另外,本题要求的是“输出的各个数的和”,而不是最终的输出结果,千万不要忽视这一点.
在2008年和2009年的数学高考试题中出现了部分补全程序框图的试题,这类试题在用算法与程序框图表明推理过程中隐去了框图逻辑结构中的某一部分(往往是判断条件).
例4 某店一个月的收入和支出总共记录了n个数据a1,a2,…,an,其中收入记为正数,支出记为负数.如果该店用下边的程序框图计算月总收入S和月净盈利V,那么在图4中空白的判断框和处理框中,应分别填入下列4个选项中的 ( )
(2009年辽宁省数学高考试题)
图4
解本题考查的是条件结构,第1个判断框判断的是收入还是支出,第2个判断框判断的是这n个数据是否输入完毕,最后输出总收入S和月净盈利V.ak表示收入或支出数据.若ak>0,则这些正数据的和为月总收入S,故在图中空白的判断框填A>0,否则为月总支T,故月净盈利V=S+T,处理框中填V=S+T.故选C.
点评本题的综合性比较强,涉及的数据比较多,在历年高考此类试题中是属于比较难的,但只要弄清各个字母所代表的意义,以及他们的正负,再结合4个选项便可轻松解题.
例5 如图所示的流程图5和流程图6都具有计算“1+2+3+… +k”的功能,则流程图 5中的(a)处应填写_______;流程图6中的(b)处应填写_______.
(2008年浙江省杭州市统测试题)
解循环结构中有“先判断条件后执行”与“先执行后判断条件”两种,要注意两者的区别.框图5先判断条件再执行累加,故应填入:i<=k(或i<k+1);框图6是先执行累加后再判断条件是否成立,故应填入:i>k(或i>=k+1).
其他知识与程序框图结合,就是将其他数学知识算法化,这可能是计算机时代的一个思维特征.
图5
图6
例6 随机抽取某产品n件,测得其长度分别为a1,a2,…,an,则如图7所示的程序框图输出的S= ________,S 表示的样本的数字特征是_______.
(2009年广东省数学高考试题)
解根据题意写出前若干次循环的S值:
图7
点评程序框图作为实施新课标后高考的一种必考题目类型,在今后高考试题中将会更多地结合数列、不等式、函数等知识,命题空间会富有更多的想象.
精题集粹
1.某程序框图如图8所示,该程序运行后输出的k的值是 ( )
A.4 B.5 C.6 D.7
(2009年浙江省第1次调研试题)
2.如图9给出了一个算法流程图,该算法流程图的功能是 ( )
A.求3个数中最大的数 B.求3个数中最小的数 C.按从小到大排列 D.按从大到小排列
图8
图9
图10
图11
4.图11是某算法的程序框图,该算法可表示分段函数,则其输出的结果所表示的分段函数为f(x)=_______.
5.在如图12所示的程序框图中,输入f0(x)=cosx,则输出的是 .
图12
6.按图13所示的程序框图运算,若输入x=8,则输出k = _______.
图13
参考答案
1.D 2.B