《高考数学第一轮复习课件》第58讲 基本算法语句与算法案例
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、基本算法语句 1.输入、输出语句和赋值语句: 输入语句格式:① INPUT “提示内容”;变量 ; 输出语句格式:② PRINT “提示内容”;表达式 ; 赋值语句格式:③ 变量名=表达式 . 2.条件语句: (1)框图:
(2)条件语句格式: IF 条件 THEN 语句1 ELSE 语句2 END IF 条 件 语 句 的 嵌 套 : 条 件 语 句 ④ 主要用于实现算法中的条件结构 ,当出现 3个或3个以上的判断点时,就要用到 ⑤ 程序嵌套 ,其一般格式为:
3.排序. 直接插入排序法:⑧从第一个数开始,依次. 把每个数插入到已排好序的适当位臵,直到 . 完成对最后一个数的操作 .
冒泡法的排序算法步骤:
第一步:用第1个数与第2个数比较,若 前者小则两个数不变,否则调整两数位臵. 第二步:按同样的规则,比较第2个数 与第3个数,……直到比较完最后两数,这 个过程称为“一趟”.
第三步:如果前一趟比较中交换次数为0, 说明排序已完成,否则返回第二步. 4.进位制. (1) 将 十 进 制 数 化 为 二 进 制 数 的 算 法 称 为 ⑨ 除2取余法 ;将十进制数化为k进制数的算法 称为⑩ 除k取余法 . (2)将k进制数化为十进制数的算法步骤为: 第一步:从左到右依次取k进制数anan-1 … a1a0(k)各位上的数字乘以k次幂,k从n开始取值, 每次递减1,递减到0,即an·n,an-1·n-1,…,a1· k k k, a0·0; k 第二步:把所有积加起来,就得到十进制数.
所以24=11000(2).
备选题
(1)用辗转相除法或更相减损术求三个 数324,243,135的最大公约数. (2)某工程的工序流程如图所示,现已 知工程总时数为10天,则工序c所需工时 为多少天?
(1)(方法一)辗转相除法:
324=243×1+81,
243=81×3+0,
则34与243的最大公约数是81.
二、算法案例
1.辗转相除法与更相减损术. (1)辗转相除法:⑥ 求两个正整数的最大 .
公约数的方法.用较大的数m除以较小的数 . n得到余数r ,反复操作,直到余数为0为 止,即m=nt+r(0≤r≤n).因此要用“后测试型” 循环语句表示,其程序如下:
INPUT m ,n DO
r=m MOD n
题型二 程序框图与程序的相互转化 例2某商场购物实行优惠措施,若
购物金额x在800元以上打8折;购物 金额x在500元以上打9折,否则不打 折.请设计程序框图,并根据框图编 写程序,要求输入金额x,输出实际 交款额.
根据题意,实际交款额y(元)与 购物金额x(元)的函数关系如下: x (0<x≤500) y= 0.9x (500<x≤800) 0.8x (x>800). 程序框图如下:
点评该题主要运用算法的条件结构
及条件语句正确表达算法,关键是 理解变量x的作用,用x来表示某学 生的分数,每循环一次输入一个x的 值,表示及格人数的变量t与表示学 生人数的变量i均加1.
题型三 算法案例
例3 用 秦 九 韶 算 法 求 多 项 式
f(x)=8x7+5x6+3x4+2x+1 当 x=2 时 的值.
典例精讲
题型一 基本算法语句及应用 例1 高一(2)班共有54名同学参加数
学竞赛,现已有这54名同学的竞赛分数, 请设计一个程序,求成绩优秀同学的平均 分(规定90分以上为优秀).由于涉及54 名同学的分数,因此,可以使用循环结构 控制输入分数,用条件结构来判断分数是 否高于90分,同时统计高于90分的成绩的 总和和人数,从而求平均分.
(2)循环语句主要用来实现算法 中的循环结构,处理一些需要反复执 行的运算任务,如在累加求和、累乘 求积等总是中常用到. (3)在用WHILE语句和UNTIL 语句编写程序解决问题时,一定要注 意它们的格式及条件的表述方法.
新课标高中一轮总复习
理数
第八单元
复数、算法初步
第58讲
基本算法语句与算法案例
1.理解输入语句、输出语句、赋 值语句、条件语句、循环语句这五 种算法语句的含义. 2.能准确地实现程序框图与算法 语句的互相转化。 3.了解秦九韶算法、辗转相除法 与更相减损术等特殊案例的算法思 想和算法语句.
1.某一程序中先后相邻的两个语句是:x=3*5, x=x+1,那么下列说法中正确的是( B ) ①x=3*5的意思是x=3×5=15,此式与算术 式中的意义是一样的; ②x=3*5是将数值15赋给x; ③x=3*5也可以写为3*5=x; ④x=x+1在执行时,赋值号右边的x值是15, 执行后左边的x值是16. A.①③ B.②④ C.①④ D.②③
变式 现给出某班50名同学的数学成绩,
60分以上为及格.要求统计及格人数和全 班同学的平均分,画出程序框图,并写 出程序语句.
程序框图如右图所示. 程序如下: i=1
S=0
t=0
DO
INPUT x
S=S+x
IF x>=60 THEN
t=t+1
END IF i=i+1 LOOP UNTIL i>50 p=S/50 PRINT p PRINT t END
变式 因庆期间,某超市实行购物
优惠活动,规定一次购物付款总额: ①若不超过200元,则不予优惠;② 若超过200元,但不超过500元,则 按标价价格给予9折优惠;③如果超 过500元,500元的部分按②优惠, 超过500元的部分给予7折优惠.编写 一个收款的相应程序.
程序如下:
INPUT x IF x≤200 THEN PRINT x ELSE IF x>200 AND x≤500 THEN y=0.9*x PRINTy ELSE y=0.9*500+0.7*(x-500) PRINT y END IF END IF END
变式 (1)将七进制数235(7)转化为十进
制的数;
(2)把五进制的数44(5)转化为二进制的数.
分析(1)把七进制数写成各位上
数字与7的幂的乘积之和的形式,再 按十进制的运算得到结果;(2)先 把五进制的数化为十进制的数,再 化为二进制的数.
(1)235(7)=2×72+3×71+5×70 =2×49+3×7+5 =124. (2)44(5)=4×51+4×50=24.
又135=81×1+54,
81=54×1+27,
54=27×2+0, 则81与135的最大公约数为27. 故三个数34,243,135的最大公约数为27.
(方法二)更相减损术: 因为(324,243)→(243,81)→(162,81)→(81,81), 又(135,81)→(81,54)→(54,27)→(27,27), 所以324,243,135的最大公约数为27. (2) 设 工 序 c 所 需 工 时 数 为 x 天 , 由 题 意 , a→c→e→g,需要工时数1+x+4+1=10,所 以x=4,即工序c所需工时数为4天.
3.把二进制数1011001(2)化为五进制数是 324(5) . 1011001(2)=1×26+1×24+1×23+1=89,
所以89=324(5).
4.程序如下:t=1
i=2 WHILE i≤4 t=t*i i=i+1 WEND PRINT t END
以上程序输出的结果是 24 .
由题意可知,它表示计算 1×2×3×…×n的算法,所以输出的 结果为1×2×3×4=24.
(3)条件语句可以嵌套,即条件语句 的THEN或ELSE后面还可以跟条件语句, 其一般形式是: IF 条件1 THEN 语句1 ELSE 外层 IF 条件2 THEN 语句2 条件 内层 ELSE 条件 语句 语句3 语句 END IF END IF
对应的程序框图如下图所示.
嵌套时,注意内外分层,避免逻辑混乱. 2.关于循环语句. (1)“循环体”是由语句组成的程 序段,能够完成一项工作,当使用 WHILE语句时,循环体内部应当有改 变循环的条件,否则会产生无限循环.
程序设计如下: S=0
M=M+1
END IF i=i+1 WEND P=S/M PRINT P END
M=0
i=1
WHILEi≤54
INPUT x
IF
x>90 THEN
S=S+x
点评在解决实际问题时,要正确
理解其中的算法思想,根据题目写 出其关系式,再写出相应的算法.在 循环语句中,也可能嵌套条件语句, 甚至是循环语句,此时需要注意嵌 套这些语句需要保证语句完整性, 否则就会造成程序无法执行.
m=n
n=r
LOOP UNTIL r=0
PRINT m
END
(2)更相减损术是⑦ 求两个正整数 . 的最大源自文库约数的算法 .
用较大数减去较小数,再用差数和 较小数构成一对新数,再用大数减去小 数,以同样的操作一直做下去,直到所 得的数相等为止.这一过程可由循环语句 表达算法,其程序如下:
INPUT a,b
2.运行如图所示的程序后,输出的结果为( C )
i=1 WHILE i<7 i=i+1 S=2*i-1 i=i+2 WEND PRINT S,i END
A.13,7 C.9,7
B.7,4 D.9,5
由程序知该算法循环了两次, 第一次,S=2×2-1=3,i=4;第二次, S=2×5-1=9 , i=7. 因 为 i≥7 , 循 环 结 束,输出S=9,i=7.
点评秦九韶算法是多项式求值的优秀算
法,其特点是:(1)化高次多项式求值为一 次多项式求值;(2)减少了运算次数,提高 了效率;(3)步骤重复执行,容易用计算机 实现.利用秦九韶算法计算多项式的值关键 是能正确地将所给多项式改写,然后由内 向外逐次计算,由于后项计算用到前项的结 果,故应认真、细心,确保中间结果的准确 性,若在多项式中有几项不存在,可将这些 项的系数看成0,即把这些项看做0×xn.
IF 表达式1 THEN 语句序列1;
ELSE
IF 表达式2 THEN
语句序列2
ELSE
语句序列3
END IF
END IF
3.循环语句: (1)WHILE语句的结构
WHILE语句的一般格式: WHILE 条件 循环体 END
(2)UNTIL语句的结构:
UNTIL语句的一般格式: DO 循环体 LOOP UNTIL 条件
方法提炼
1.关于条件语句. (1)“条件”是由一个关系表达式或逻辑 表达式构成的,其一般形式为“〈表达式〉 〈关系运算符〉〈表达式〉”,常用的运算 符有“>”(大于)、“<”(小于)、“>=” (大于或等于)、“<=”(小于或等于), 表达式的结果可取两个值,以“真”或“假” 来表示,“真”表示条件满足,“假”表示 条件不满足. (2)“语句”是由程序语言中所有语句构
程序如下:
INPUT x IF x>800 THEN y=0.8*x ELSE IF x>500 THEN y=0.9*x ELSE y=x END IF END IF PRINT y END
点评 解决分段函数的求值问题时,
一般采用条件结构设计算法.如果 变量分为三级(或以上),就需 要用到条件结构的嵌套.另外,不 能忽视结果中“是”和“否”的 书写,否则不知执行哪一条路径.
分析利用秦九韶算法一步一步
地代入运算,注意本题中有几项 不存在,此时在计算时,我们应 该将这些项加上,比如含有x3的 这一项可看做0·3. x
根据秦九韶算法,把多项式写成如下形式: f(x)=8x7+5x6+0·5+3x4+0·3+0·2+2x+1 x x x =((((((8x+5)x+0)x+3)x+0)x+0)x+2)x+1, v0=8 v1=8×2+5=21, v2=21×2+0=42, v3=42×2+3=87, v4=87×2+0=174, v5=174×2+0=348, v6=348×2+2=698, v8=698×2+1=1397. 所以当x=2时,多项式的值为1397.
WHILE a < > b
IF a>=b THEN
a=a-b
ELSE b=b-a
END IF
WEND PRINT a,b END
2.秦九韶算法. n次多项式
f(x)=anxn+an-1xn-1+…+a1x+a0
=(anxn-1+an-1xn-2+…+a1)x+a0
…
=(((…(anx+an-1)x+an2)x+…+a1)x+a0 得到递推公式 v0=an且vk=vk-1x+an-k,其中k=1,2,…,n. 其算法可用循环语句来实现.