高一数学必修三算法初步(知识总结++高考真题讲练).资料

更新时间:2023-03-08 04:54:54 阅读量: 高中教育 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

试题提供:www.0839bx.cn

第十一章 算法初步与框图

一、知识网络

算法概念 算法与程序框图 框图的逻辑结构 输入语句 顺序结构 循环结构 条件结构 算法初步循环语句 算法语句 条件语句 输出语句 赋值语句 算法案例

二、考纲要求

1.程序框图

(1)了解算法的含义,了解算法的思想.

(2)理解程序框图的三种基本逻辑结构:顺序、条件分支、循环.

2.基本算法语句

理解几种基本算法语句――输入语句、输出语句、赋值语句、条件语句、循环语句的含义.

三、复习指南

本章是新增内容,多以选择题或填空题形式考查,常与数列、函数等知识联系密切.考查的重点是算法语句与程序框图,以基础知识为主,如给出程序框图或算法语句,求输出结果或说明算法的功能;或写出程序框图的算法语句,判断框内的填空等考查题型.难度层次属中偏低.

※知识回顾

1.算法的概念:算法通常是指按一定规则解决某一类问题的明确和有限的步骤. 2.程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形.

3.程序框图的三种基本逻辑结构是顺序结构、条件结构、循环结构. 4.算法的描述方式有:自然语言、程序框图、程序语言.

5.算法的基本特征:①明确性:算法的每一步执行什么是明确的;②顺序性:算法的“前一步”是“后一步”的前提, “后一步”是“前一步”的继续;③有限性:算法必须在有限步内完成任务,不能无限制的持续进行;④通用性:算法应能解决某一类问题.试题提供:www.0839bx.cn

1

第一节 算法与程序框图

试题提供:www.0839bx.cn

※典例精析

例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的最小值

解析:为了正确地理解程序框图表示的算法,可以将执行过程分解,分析每一步执行的结果.可以看出程序框图中含有当型的循环结构,故分析每一次循环的情况,列表如下: 第一次:S?1?3,i?5; 第二次:S?1?3?5,i?7;

第三次:S?1?3?5?7,i?9,此时S?100不成立,输出结果是7,

程序框图表示的算法功能是求使1×3×5×?×n?100成立时n的最小值. 选D.

评注:通过列表,我们能清楚了解程序的每一步中的各个变量是怎样变化的,这正是程序运行的本质所在.本题若要求编写求使1×3×5×?×n?100成立时n的最小值的程序框图或程序时,很容易弄错输出的结果,应注意.

例3.在音乐唱片超市里,每张唱片售价为25元,顾客如果购买5张以上(含5张)唱片,则按九折收费,如果购买10张以上(含10张)唱片,则按八折收费,请设计算法步骤并画出

2

试题提供:www.0839bx.cn

程序框图,要求输入张数x,输出实际收费y(元).

?25x(x?5)?分析:先写出y与x之间的函数关系式,有y??22.5x(5?x?10),再利用条件结构画程序框图.

?20x(x?10)?解: 算法步骤如下:

第一步,输入购买的张数x,

第二步,判断x是否小于5,若是,计算y?25x;

否则,判断x是否小于10,若是,计算y?22.5x;否则,计算y?20x. 第三步,输出y. 程序框图如下:

评注:凡必须先根据条件做出判断,然后再决定进行哪一个步骤的问题,在画程序框图时,必否 x?27? 须引入判断框,采用条件结构设计算法.如果变

是 量分三级(或以上)时,就需要用到条件结构的嵌

套,不能忽视结果中“是”、“否”的书写,否则不输出X 知道执行哪一条路径.一般地,分n段的分段函数,需要引入n?1个判断框.条件结构有以下两i?i?1 种基本类型. 否

i?11?

111例4.画出求1?2?2???的值的程序框223100图.

分析:这是一个有规律的数列求和问题,每次都进行了相同的运算,故应用循环结构进行算法设计.

解:程序框图如下:

(1)当型循环 (2)直到型循环

3

试题提供:www.0839bx.cn

评注: (1) 解题关键是选择好计数变量i和累加变量S的初始值,并写出用i表示的数列的通项公式是 ;

(2)循环结构主要用在一些有规律的重复计算的算法中,如累加求和,累乘求积等问题.在循环结构中,要注意根据条件,设计合理的计数变量、累加(积)变量以及它们的初始值等,特别要注意循环结构中条件的表述要恰当、精确,以免出现多一次或少一次循环.

(3)循环结构分为两类:一类是当型循环结构,如下左图所示;另一类是直到型循环结构,如下右图所示.

111变式训练画出求1?2?2???的值的程序框图. 247100解:程序框图如下:

4

试题提供:www.0839bx.cn

例5.某工厂2005年的生产总值为200万元,技术改进后预计以后后每年的年生产总值都比上一年增长5%.设计一个程序框图,输出预期年生产总值超过300万元的最早年份及2005年到此年份之前(不包此年份)的年生产总值的和.

分析:本例可用循环结构来实现. (1) 确定“循环体”:设a为某年的年生产总值,n为年份,S为

年产值的总和,则循环体为

S?S?a,

a?a?0.05a,

n?n?1.

(2)初始化变量:n的初始值为2005,a的初始值为200,S的初始值为0. (3)设定循环控制条件:a?300 解: 程序框图如下:

评注:本问题的关健是设计好循环体,注意S?S?a与n之间的对应关系.本题若将S?S?a放在n?n?1之后,则输出时须重新赋值n?n?1,否则n的值为超过300万的年份的下一年.本题也可用当型循环结构来表示.

变式训练:设计一个程序框图,求使S?1?2?3???n?5000的最小n的值,并输出此时S的值. 解:程序框图如下: ※基础自测 一、选择题

1.下列说法正确的是( )

A.算法就是某个问题的解题过程; B.算法执行后可以产生不同的结果;

C.解决某一个具体问题算法不同结果不同; D.算法执行步骤的次数不可以很大,否则无法实施. 解析:选项A ,算法不能等同于解法;选项B,例如:判断一个正整数是否为质数,结果为“是质数”和“不是质数”两种;选项C,解决某一个具体问题算法不同

结果应该相同,否则算法构造的有问题;选项D,算法可以为很多次,但不可以无限次.选B.

2、如图所示的程序框图中,则第3个输出的数是( )

35A.1 B. C.2 D.

2232.解析:前3个分别输出的数是1,,2.故选C. 2 5

试题提供:www.0839bx.cn

开始 A?1 2N?1 1A?A? 2输出A N?N?1 N?4? 是 结束 否 11113.如图给出的是求???????的值的一个程序框图,

24620其中判断框内应填入的条件是 ( ) A.i>10? B.i<10? C.i>20? D.i<20?

6

试题提供:www.0839bx.cn

开始 S?0,n?2,i?1 S?S?1 nn?n?2 i?i?1 是 输出S 否 结束 3.解析:通过列表,我们能清楚了解程序的每一步中的各个变量

1是怎样变化的, 第一次:i?1,S?,n?4,

211第二次:i?2,S??,n?6,…依此可知循环的条件是i>10?.选A

24

4.(2007年高考山东卷)阅读右边的程序框图,若输入的n是100,则输出的变量S和T的值依次是( ) A.2550,2500 B.2550,2550 C.2500,2500 D.2500,2550

7

试题提供:www.0839bx.cn

开始 输入n S?0,T?0 n?n?1 T?T?n n?n?1 S?S?n n?2? 否 输出S、T 是 结束 4.解析:依据框图可得

S?100?98?96?...?2?2550,T?99?97?95?...?1?2500.选A.

5.2006年1月份开始实施的《个人所得税法》规定:全月总收入不超过1600元的免征个人工资、薪金所得税,超过1600元部分需征税.设全月总收入金额为x元,前三级税率如下左表所示:

级数 全月应纳税金额x?1600 税率 1 2 3 …… 不超过500元部分 超过500至2000元部分 5% 10% 超过2000至5000元部分 15% …… …… 8

试题提供:www.0839bx.cn 开始 输入x 0

A.0.05x;0.1x B.0.05x;0.1x?185 C. 0.05x?80;0.1x; D.0.05x?80;0.1x?185 5.解析: 设全月总收入金额为x元, 所得税额为y元,则y与x之间的函数关系为

?0(0?x?1600)?y??(x?1600)?5%(1600?x?2100)选D. ?25?(x?2100)?10%(2100?x?3600)? 二、填空题

6.(2008年高考山东卷)执行右边的程序框图,若p=0.8,则输出的n=________..

111?0.8,此时n=2;第二次循环后,S???0.8,此时n?3;224111第三次循环后,S????0.8,此时n?4,输出,故填4.

2487.(2008年江苏卷)某地区为了解70?80岁的老人的日平均睡眠时间(单位:h),随机选择了50位

6.解析:第一次循环后,S?老人进行调查,下表是这50位老人睡眠时间的频率分布表:

9

试题提供:www.0839bx.cn [4,5)4.5 0.12 1 6 [5,6) 0.20 2 10 5.5 [6,7) 0.40 3 20 6.5 [7,8) 0.20 4 10 7.5 [8,9] 0.08 8.5 5 4 在上述统计数据的分析中一部分计算见算法流程图,则输出的S的值为 ▲ 解析:由流程图

序号i 分组 (睡眠时间) 频数 频率(Fi) (人数) 组中值(Gi) S?G1F1?G2F2?G3F3?G4F4?G5F5

?4.5?0.12?5.5?0.20?6.5?0.40?7.5?0.2?8.5?0.08 ?6.42 故填6.42.

开始 S=0 i=1 输入Gi,Fi i= i+1 N S= S+Gi·Fi i≥5? Y 输出S 结束

8.如果执行右面的程序框图,那么输出的S?

8.解析:S?2?4?6???100?2550 三、解答题

10

试题提供:www.0839bx.cn

9.请阅读下面程序框图,说明此程序的功能

解:程序功能是求s的值. s?1?2?22?...?26,并输出s

?(x?2)2(x?0)?(x?0),请画出程序框图,要求输入自变量x的值, 10.已知函数y??4?(x?2)2(x?0)?输出函数值y. 10.解:

?100的程序框图. 11.画出一个计算1?5?10?15??11解:程序框图如下

11

试题提供:www.0839bx.cn

12、甲、乙两位同学为解决数列求和问题,试图编写一程序.两人各自编写的程序框图分别如图1和如图2.(Ⅰ)根据图1和图2,试判断甲、乙两位同学编写的程序框图输出的结果是否一致?当n =20时分别求它们输出的结果;

(Ⅱ)若希望通过对图2虚框中某一步(或几步)的修改来实现“求首项为2,公比为3的等比数列的前n项和”,请你给出修改后虚框部分的流程图.

12

试题提供:www.0839bx.cn

开始 输入n 开始 i=1 输入n S=0 i=0 a=2 S=0 S=S+a i=i+1 a=a+2 S=S+2 i=i+1 i≤n? 否

是 i>n是 输出S 输出S 否 结束 图1

结束

图2

12、解:(Ⅰ)输出结果一致. 当n=20时, 图1的结果为2+4+6+…+38+40=2×(1+2+3+…+20)=420 图2的结果为2+4+6+…+38+40=2×(1+2+3+…+20)=420 (Ⅱ)修改后虚框部分的流程图为

S=S+a a=3﹡a i=i+1

第二节 算法的基本语句及算法案例

13

试题提供:www.0839bx.cn

※知识回顾

1.任何一种程序设计语言都包含五种基本的算法语句, 它们是输入语句 , 输出语句, 赋值语句,条件语句,循环语句 2.输入语句的一般格式是INPUT\提示内容\变量; 输出语句的一般格式是PRINT\提示内容\表达式; 赋值语句的一般格式是变量?表达式;

IF条件THENIF条件 条件语句的一般格式是THEN或ELSE语句体1语句体ENDIFDO;

语句体2ENDIFWHILE条件. 循环语句的一般格式是循环体LOOPUNTIL条件和, 循环体WEND输入语句、 输出语句、 赋值语句基本对应于程序框图中的顺序结构;条件语句、循环语句分别用来表达程序框图中的条件结构和循环结构.

3.常用符号

运算符号:加_+_,减-__,乘*__,除/__,乘方a^b,整数取商\\,求余数MOD. 逻辑符号:且AND,或OR,大于>,等于=,小于<,大于等于>=,小于等于<=,不等于<>. 常用函数:绝对值ABS,平方根SQR,取整INT. 4.算法案例

(1)辗转相除法和更相减损术

辗转相除法和更相减损术都是求两个正整数的最大公约数的方法.

(1)辗转相除法就是对于给定的两个正整数,用大数除以小数,若余数不为0,则将小数和余数构成新的一对数,继续上面的除法,反复执行此步骤,直到大数被小数除尽,则这时较小的数就是原来两个数的最大公约数.

(2)更相减损术就是对于给定的两个正整数,若它们都是偶数,则将它们反复除以2(假设进行了k次),直到它们至少有一个不是偶数后,将大数减小数,然后将差和较小的数构成一对新数,继续上面的减法,反复执行此步骤,直到差和较小的数相等,此时相等的数再乘以原来约简的2k即为所求两数的最大公约数. (2)秦九韶算法

秦九韶算法是求多项式值的优秀算法. 设f(x)?anxn?an?1xn?1???a1x?a0, 改写为如下形式: f(x)?(?(anx?an?1)x?an?2)x??a1)x?a0. 设v0?an,v1?v0x?an?1

14

试题提供:www.0839bx.cn

v2?v1x?an?2v3?v2x?an?3?vn?vn?1x?a0

这样求n次多项式f(x)的值就转化为求n个一次多项式的值.当多项式中有些项不存在时,可将这几项看做0?xn,补齐后再利用秦九韶算法进行计算.对于一个n次多项式,只需做n次乘法和n次加法运算即可. (3)进位制

K进制数的基数为k,k进制数是由0?k?1之间的数字构成的. 将十进制的数转化为k进制数的方法是除k取余法. 把k进制数anan?1?a1a0(0?an?k,0?an?1,?a1,a0?k)化为十进制数的方法为

anan?1?a1a0(k)?ankn?an?1kn?1???a1k?a0. ※典例精析

11111例1.写出用循环语句描述求S?1???????的值的算法程序.

23499100解:算法程序如下: (1)当型循环 (2)直到型循环 S?1S?1 i?2i?2 WHILEi??100DO S?S?(?1)^(i?1)/iS?S?(?1)^(i?1)/i i?i?1i?i?1 WENDLOOPUNTILi?100 PRINT\S?\SPRINT\S?\S ENDEND 评注: 在编写算法的程序时,可先画出程序框图,抓住程序框图表示算法这个核心.注意分别用当型循环和直到型循环语句编写的程序中,循环条件的区别与联系. INPUTm IFm??50THEN y?13?m例2、某市对排污水进行综合治理,征收污水处理费,系ELSE统对各厂一个月内排出的污水量m吨收取的污水处理费IFm??100THENy元,运行程序如下所示: y?50?15*(m?50) ELSE y?150?25?(m?100) ENDIF ENDIFEND15

试题提供:www.0839bx.cn

请写出y与m的函数关系,并求排放污水150吨的污水处理费用. 解: 这个程序反映的是一个分段函数 ?13m(m?50)? y??50?15(m?50)(50?m?100) ?150?25(m?100)(m?100)?

因为m?150?100,所以y?150?25(150?100)?1400,故该厂应缴纳污水处理费1400元. 评注: 解决分段函数要用条件语句来处理.本题可画出程序框图帮助理解. 例3. 求三个数72,120,168的最大公约数. 解法1:用辗转相除法

先求120,168的最大公约数,

因为168?120?1?48,120?48?2?24,48?24?2

所以120,168的最大公约数是24. 再求72,24的最大公约数, 因为72?24?3,所以72,24的最大公约数为24, 即72,120,168的最大公约数为24. 解法2:用更相减损术 先求120,168的最大公约数, 168-120=48,120-48=72,72-48=24,48-24=24 所以120,168的最大公约数为24. 再求72,24的最大公约数, 72-24=48,48-24=24 72,24的最大公约数为24, INPUTm,n即72,120,168的最大公约数为24. 评注: 辗转相除法与更相减损术均是求两个正整数的最大公S?m?n约数的方法,要理解和掌握它们的操作步骤. DO r?mMODn变式:试写出求正整数m,n(m?n)的最小公倍数的算法程序. m?nn?rLOOPUNTILr?0S?S/mPRINTSEND 解: 16 或

INPUTm,ni?1DOa?m*ir?aMODn i?i?1LOOPUNTILr?0PRINTaEND试题提供:www.0839bx.cn 例4.用秦九韶算法求多项式f(x)?x5?2x4?3x3?4x2?5x?6在x?2时的值. 分析:先改写多项式,再由内向外计算.

解:f(x)?x5?2x4?3x3?4x2?5x?6

?((((x?2)x?3)x?4)x?5)x?6v0?1,v1?v0x?2?4v2?v1x?3?11v3?v2x?4?26 v4?v3x?5?57v5?v4x?6?120评注: 用秦九韶算法求多项式值,关健是正确将多项式改写,然后由内向外计算求得. 本题也可简写为下式:

1222345682252114

4112657120

例5.完成下列进制的转化

(1)10202(3)?____(10)(2)101(10)?__________(8)

解: (1)10202(3)?1?34?2?32?2?30?101(10)

(2)用8反复去除101,直到商为0止,所得的余数(从末位读起)就是十进制数101的 8进制表示 88101余数12810541 所以101(10)?145(8) 评注:将k进制的数转化为k?进制的数的方法是先将k进制的数转化为十进制的数,再将这个数转化为k?进制的数.

17

试题提供:www.0839bx.cn

变式训练:下面是把二进制数11111(2)化为十进制数的一个程序框图,判断框内应填入的条件是 ( )

A.i?5?B.i?4?C.i?4?D.i?5?

解: 11111(2)?1?24?1?23?1?22?1?2?1,故判断框内应填入的条件i?4.选C. ※ 基础自测 一、选择题

1.下列给出的赋值语句中正确的是( )

A 4?M B M??M C B?A?3 D x?y?0

1. 解析:赋值语句的功能.选 B

2 当x?2时,下面的程序输出的结果是 ( )

i?1

s?0 INPUTx WHILEi??4

s?s?x?1

i?i?1 WEND PRINTs

END

A 3 B 7 C 15 D 17

2解析: 0?2?1?1,1?2?1?3,3?2?1?7,7?2?1?15. 选 C

INPUTm,nDOr?mMODnm?nn?rLOOPUNTILr?0PRINTmEND

3.运行下列程序:

18

试题提供:www.0839bx.cn

当输入56,42时,输出的结果是

A.56 B.42 C.84 D.14

3.解析:该程序的功能是用辗转相除法求正整数m,n(m?n)的最大公约数,故选D 4下边程序运行后输出的结果为( )

a?0

j?1 WHILEj??5

a?(a?j)MOD5

j?j?1 WEND

PRINTa

END

A 50 B 5 C 25 D 0

4.解析:j?1,a?1;j?2,a?3;j?3,a?1;j?4,a?0;j?5,a?0.选 D 二、填空题

15 三个数324,243,的最大公约数是_________________

5 解析:324?243?1?81,135?81?1?54,81?54?1?27,54?27?2.填27 6.

阅读下列程序:

19

试题提供:www.0839bx.cn INPUTxIFx?100ANDx?1000THENa?x\\100b?(x?a?100)\\10c?xMOD10x?100?c?10?b?aPRINTxENDIFEND 当程序输入x值为123时,问运行的结果是_____________.

6.解析:算术运算符\\和MOD分别用取商和余数.该程序的功能是把一个三位数各位上的数字颠倒过来.所以运行的结果是321.

nn?17.(2005年高考北京卷理14)已知n次多项式P???an?1x?an,如果在一n(x)?a0x?a1x种算法中,计算x0k(k=2,3,4,…,n)的值需要k-1次乘法,计算P3(x0)的值共需要9次运算(6次乘法,3次加法),那么计算P10(x0)的值共需要 次运算.下面给出一种减少运算次数的算法:P.利0(x)?a0,Pk?1(x)?xPk(x)?ak?1(k=0, 1,2,…,n-1)用该算法,计算P3(x0)的值共需要6次运算,计算P10(x0)的值共需要 次运算. nn?17.解析:秦九韶算法适用一般的多项式P???an?1x?an的求值问题.直接法n(x)?a0x?a1x(n?1)n乘法运算的次数最多可到达,加法最多n次.秦九韶算法通过转化把乘法运算的次数2减少到最多n次,加法最多n次.答案:65;20. 8.下面程序运行后输出的结果为_______________ x?5

y??20

IFx?0THEN

x?y?3

ELSE

y?y?3 ENDIF

PRINTx?y,y?x

END

8.解析: 22,-22

20

试题提供:www.0839bx.cn

三、解答题

9.用秦九韶算法求多项式f(x)?3x5?4x4?15x3?76x2?7x?8在x??2时的值.

9.解:f(x)?3x5?4x4?15x3?76x2?7x?8?((((3x?4)x?15)x?76)x?7)x?8v0?3,v1?v0x?4??2v2?v1x?15??11v3?v2x?76?98v4?v3x?7??189v5?v4x?8?386

11110.设计程序,求出满足1??????10的最小的正整数n.

23n10.解: S?0 i?1 DO

S?S?1/i i?i?1

LOOPUNTILS?10

PRINTi?1

END 11

若a?111111(2),b?210(6),c?85(9),试判断a,b,c的大小关系,并将c化为7进制的数.

6.解析: a?63(10),b?78(10),c?77(10)?b?c?a

777771110余数041 ?c?(140)712.某电信公司规定:拨打市内电话时,如果不超过3分钟,则收取话费0.2元;如果通话时间超过3分钟,则超出部分按每分钟0.1元收取通话费,不足一分钟按一分钟计算.设通话时间为t(分钟),通话费用y(元),如何设计一个程序,计算通话的费用. (提示:INT(x)表示不大于x最大整数,如INT(3.2)=3)

21

试题提供:www.0839bx.cn 12.解:算法分析: 数学模型实际上为:y关于t的分段函数.关系是如下: ?0.2,(0?t?3)?y??0.2?0.1(t?3),(t?3,t?Z) ?0.2?0.1([t?3]?1),(t?3,t?Z)?其中[t-3]表示取不大于t-3的整数部分. 算法步骤如下: 第一步:输入通话时间t; 第二步:如果t≤3,那么y = 0.2;否则判断t∈Z 是否成立, 若成立执行y= 0.2+0.1× (t-3);否则执行y = 0.2+0.1×( [t-3]+1). 第三步:输出通话费用c . 算法程序如下: INPUT\t?\t IFt??3THEN y?0.2 ELSE IFINT(t)?tTHEN y?0.2?0.1?(t?3) ELSE y?0.2?0.1?(INT(t?3)?1) ENDIF ENDIF PRINT\y?\y END

22

本文来源:https://www.bwwdw.com/article/ysg.html

Top