教案算法初步算法与流程图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一部分算法与程序框图
※知识回顾
1.算法的概念:算法通常是指按一定规则解决某一类问题的明确和有限的步骤.
2.程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形.
3.程序框图的三种基本逻辑结构是顺序结构、条件结构、循环结构.
4.算法的描述方式有:自然语言、程序框图、程序语言.
5.算法的基本特征:①明确性:算法的每一步执行什么是明确的;②顺序性:算法的“前一步”是“后一步”的前提,“后一步”是“前一步”的继续;③有限性:算法必须在有限步内完成任务,不能无限制的持续进行;④通用性:算法应能解决某一类问题.
※典例精析
例1.如图所示是一个算法的程序框图,则该程序框图所表示的功能是
这类题型,有两种方法:
第一,代人特殊值法:具体带几个数进去看看它在干嘛?
第二,抽象的分析法:具体分析每个语句,看看这个程序在干嘛?
解析:首先要理解各程序框的含义,输入a,b,c三个数之后,接着判断a,b的大小,若b小,则把b赋给a,否则执行下一步,即判断a与c的大小,若c小,则把c赋给a, 否则执行下一步,这样输出的a是a,b,c 三个数中的最小值.所以该程序框图所表示的功能是求a,b,c三个数中的最小值.
评注: 求a,b,c 三个数中的最小值的算法设计也可以用下面程序框图来表示.
例2.下列程序框图表示的算法功能是( ) (1)计算小于100的奇数的连乘积 (2)计算从1开始的连续奇数的连乘积 (3)计算从1开始的连续奇数的连乘积, 当乘积大于100时,计算奇数的个数 (4)计算≥1×3×5××n 100成立时n 的最小值
这类题型,有自己的方法,这里是高考的重点,每年必考的题型。
这类题,具体步骤:
将程序运行;
----》把每一步都写成一行(注意,不要算值) ----》竖直方向我们找规律
----》找结束的时候的点,做最后项。
解析:为了正确地理解程序框图表示的算法,可以将执行过程分解,分析每一步执行的结果.可以看出程序框图中含有当型的循环结构,故分析每一次循环的情况,列表如下: 第一次:13,5S i =⨯=; 第二次:135,7S i =⨯⨯=;
第三次:1357,9S i =⨯⨯⨯=,此时100S <不成立,输出结果是7,程序框图表示的算法功能是求使
≥
1×3×5××n 100成立时n 的最小值.
选D.
评注:通过列表,我们能清楚了解程序的每一步中的各个变量是怎样变化的,这正是程序运行的本质所在.本题若要求编写求使≥1×3×5××n 100成立时n 的最小值的程序框图或程序时,很容易弄错输出的结果,应注意.
例3.在音乐唱片超市里,每张唱片售价为25元,顾客如果购买5张以上(含5张)唱片,则按九折收费,如果购买10张以上(含10张)唱片,则按八折收费,请设计算法步骤并画出程序框图,要求输入张数x ,输出实际收费y(元).
分析:先写出y 与x 之间的函数关系式,有25(5)22.5(510)20(10)x x y x x x x <⎧⎪
=≤<⎨⎪≥⎩
,再利用条件结构画程序框图.
解: 算法步骤如下: 第一步,输入购买的张数x
,
第二步,判断x
是否小于5,若是,计算25y x =; 否则,判断x 是否小于10,若是,计算22.5y x =;否则,计算20y x =.
第三步,输出y . 程序框图如下:
评注:凡必须先根据条件做出判断,然后再决定进行哪一个步骤的问题,在画程序框图时,必须引入判断框,采用条件结构设计算法.如果变量分三级(或以上)时,就需要用到条件结构的嵌套,不能忽视结果中“是”、“否”的书写,否则不知道执行哪一条路径.一般地,分n 段的分段函数,需要引入1n -个判断框.条件结构有以下两种基本类型.
例4.画出求22
2
111
123100+
+++
的值的程序框图.
分析:这是一个有规律的数列求和问题,每次都进行了相同的运算,故应用循环结构进行算法设计. 解:程序框图如下:
(1)当型循环 (2)直到型循环
评注: (1) 解题关键是选择好计数变量i 和累加变量S 的初始值,并写出用i 表示的数列的通项公式是 ; (2)循环结构主要用在一些有规律的重复计算的算法中,如累加求和,累乘求积等问题.在循环结构中,要注意根据条件,设计合理的计数变量、累加(积)变量以及它们的初始值等,特别要注意循环结构中条件的表述要恰当、精确,以免出现多一次或少一次循环.
(3)循环结构分为两类:一类是当型循环结构,如下左图所示;另一类是直到型循环结构,如下右图所示.
变式训练
画出求2
22
111
147
100
+
+++
的值的程序框图. 解:程序框图如下:
5.某工厂2014年的生产总值为200万元,技术改进后预计以后后每年的年生产总值都比上一年增长5%.设计一个程序框图,输出预期年生产总值超过300万元的最早年份及2014年到此年份之前(不包此年份)的年生产总值的和.
这类题型,有具体的算法:
第一步,写成数学式子;
第二步,把数学式子用自然语言表示;
第三步,按照描述顺序写流程图:
开始--》输入--》条件或者处理--》输出--》结束。
分析:本例可用循环结构来实现. (1) 确定“循环体”:设a 为某年的年生产总值,n 为年份,S 为年产值的总和,则循环体为
(2)初始化变量:n 的初始值为2005,a 的初始值为200,S 的初始值为0. (3)设定循环控制条件:300a > 解: 程序框图如下:
评注:本问题的关健是设计好循环体,注意S S a =+与n 之间的对应关系.本题若将S S a =+放在1n n =+之后,则输出时须重新赋值1n n =-,否则n 的值为超过300万的年份的下一年.本题也可用当型循环结构来表示.
变式训练:设计一个程序框图,求使1235000S n =⨯⨯⨯⨯>的最小n 的值,并输出此时S 的值.
,
0.05,1.S S a a a a n n =+=+=+