1.基本问题说明
一般地,根据题设已知条件,要求画出实现可解决某类问题的程序框图,此即为本文所论述的‘程序框图’基本问题。
从历年算法初步的考查来看,由于考试评分客观性方面的考虑,高考时往往是针对已给定的程序框图来进行设问,其中“框图+循环”是常见的题设背景。
常见的设问类型包括输出结果、填空补全、(对整个算法的作用和意义的)直观理解等,可能的题型有:
1) 设问算法功能:已知程序框图和条件,设问算法功能、用途等;
2) 设问输出结果:已知程序框图和条件,设问输出结果的值;
3) 设问输入参量:已知算法输出结果,设问输入参量;其思考过程则与设问输出结果刚好相反 – 即需要倒推出输入参量的值。但分析方法和思路是一样的。
4) 补全算法(填空):根据已知条件,补全不完整的程序框图,包括输出(中间)结果、判断条件、处理算法等。
提示:有时,程序框图题还会与其它模块如概率、数列等结合在一起出题,详见综合应用篇的相关例题。
拓展说明:
① 从学习知识的角度,我们需要掌握画一个完整的程序框图的所有基础知识和基本技能。
② 从未来工作角度来看,程序框图是与软件有关专业的毕业生必须掌握的一门技能,因为相对于软件代码,程序框图具有简洁、直观、易读、易理解、易沟通的优点。
比如,在写软件代码之前的构思、设计阶段,一般利用不同抽象程度的程序框图来进行思考、分析、讨论、设计等,大大提高了有关效率和效果。
③ 而且,即使不从事软件有关的工作,几乎所有人都或多或少会涉及流程图,比如各种业务流程图(各种过程或步骤本质也是一种‘程序’)。
④ 总之,对将来而言程序框图可能是高中数学中最实用的基本技能之一,所以希望大家对这块内容认真学习、熟练掌握,不要因为在查角度中,这块知识不算重点、难点内容,就轻视它。
2.解决问题的一般方法
1) 画程序框图要点
① 理解和熟记算法、程序框图的相关概念;
② 理解和熟记程序框图符号及其作用、使用要求和规则、以及程序框图的构成等;
③ 熟知画程序框图的相关要求。
2) 分析和/或补全程序框图
① 一般地,读图过程为:读懂一行 -> 读懂小块 -> 读懂整图
在能理解各个程序框(即一行)含义的基础上,从起始框开始,按顺序读图——一小块一小块读图,理解每块所表示的功能;然后再把每小块的功能依次串起来(成“大块”),边串边理解串在一起后的功能或用途,直至读懂整个图。
提示:高中阶段学的程序框图比较简单,所以很多同学不按套路或许也能看懂有些框图。但未来工作中程序框图(如真正的软件算法)将复杂得多,必定离不开这种“分而治之”的思想。所以,大家还是要养成良好得思维方法和习惯。
② 解题:理解整个程序框图后,根据题目要求进行作答,如推断出程序框图得功能、求出输出结果、补全算法等。
3.典型例题
例1如图是一个算法的程序框图,则该程序框图所表示的功能是__?
解:利用算法相关知识可知,这个程序框图所表示的功能是求a,b,c三个数中的最小值。
讲解:
① 这类已知程序框图求解算法意义或输出结果的题型,其一般方法是:
a) 在能理解各程序框含义的基础上,从起始框开始,按顺序读图——一小块一小块读图,理解每块所表示的功能
b) 然后再把每小块的功能依次串起来,边串边理解它们串在一起后的意义
c) 最后得出程序框图所表示的功能,并根据题目要求求解或作答问题
② 提示:这里提到的“一小块”与文章中出现的段或其它场合出现的模块概念有相通之处——即把大问题或复杂问题“分而治之”。尤其当程序框图比较复杂时,如果不知道这么处理,一定会把自己整得晕头转向,甚至解决不了问题。
“小块”可以理解为一起完成某个小功能的m个相关程序框(当m=1时,该小块就只有一个程序框)。比如,上图的红框或蓝框内的部分就可看作一个小块——“使a保存两输入数中较小那个数”(以供后续框图使用或输出)。
“小块”的划分可按需和程序结构特征进行,比如循环体的一个分支可以看作一个“小块”,其根本目的 使为了又快又好地看懂算法。
③ 从上图可知,红框和蓝框部分完全一样的,属于重复结构。这里只是重复了一次,问题不大。但当重复三次或以上时,为了使程序框图更简捷、更易阅读,一般需要利用循环结构来避免重复。
④ 提示:达成某个功能的算法实现不唯一,如本题“求a,b,c三个数中的最小值”的算法设计也可以用下面程序框图来表示:
提示:实际中,一般会选择时间效率和/或空间效率更高的算法,而不是随便地选择一种算法实现。
例22006年1月份开始实施的《个人所得税法》规定:全月总收入不超过1600元的免征个人工资、薪金所得税,超过1600元部分需征税.设全月总收入金额为x元,前三级税率如下左表所示:
当工资薪金所得不超过元,计算个人所得税的一个算法框图如图
则输出①、输出②分别为( ).
A.0.05x; 0.1x B.0.05x; 0.1x-185
C.0.05x-80; 0.1x D.0.05x-80; 0.1x-185
解:设全月总收入金额为x元, 所得税额为y元,则y与x之间的函数关系为:
y=0 (0
y=(x-1600)×5% (1600
y=25+(x-2100)×10% (2100
所以答案为D。
例3如果执行右边的程序框图,输入正整数N(N≥2)和实数a1,a2,……,an,输出A,B,则( )
A. A+B为a1,a2,……,an的和
B. (A+B)/2为a1,a2,……,an的算术平均数
C. A和B分别是a1,a2,……,an中最大的数和最小的数
D. A和B分别是a1,a2,……,an中最小的数和最大的数
解:分析程序中各变量、各语句的作用,再根据流程图所示的顺序,可知:
该程序的作用是“求出a1,a2,…,an中最大的数和最小的数,其中A为a1,a2,…,an中最大的数,B为a1,a2,…,an中最小的数”
故选C
讲解:
① 上例和本题属于“算法填空补全”题型,一般涉及到补全“输出结果”、判断条件、处理算法等。解答这类题的一般方法:
a) 首先仍然是要把图读懂无误(具体读图思路见前述讲解以及图上的彩色提示——最主要原则就是懂得并善于分而治之)
b) 再根据已知条件和推出的算法功能,顺推和/或反推出空格的内容。
② 在这类题型种,常用工具是(列表)分析法,即依次列出所需步骤的结果,并通过分析其内在的联系来推出空格所应填内容;在循环结构中,当不易找到头绪时,可能时可将几次或所有循环相关信息列表,以便更清晰观察出其中规律。
温馨提示:本文为高中数学必修3第5讲。关注百家号“轻快学习课堂”,可便捷地查阅所有文章。
举报/反馈