邳州市铁富高级中学(数学苏教版必修三)
i?0
S?0
While S?20
S?S?i
i?i?1 End while
Print i
End
(第3题图①)
i?0 S?0 While S?20 i?i?1S?S?i End while Print i End I?1
WhileI?8
I?I?2S?2I?3 End while Print S End
(第3题图②) (第4题图)
3.在上面的两个伪代码中,①的运行结果为 ,②的运行结果为 . 4.根据如图所示的伪代码,可知道输出的结果S为 .
二 提高题
5.输入三个数a,b,c,如果这三个数能作为一个三角形的三边长, 那么输出
6.设计一个计算1?
第 31 页 共 102 页
1(a?b?c),否则提示重新输入,试用算法语句表示上述过程. 211111??????的算法,并画出流程图,写出伪代码. 23499100邳州市铁富高级中学(数学苏教版必修三)
7.青年歌手大奖赛有10名选手参加,并请了12名评委.为了减少极端分数的影响,通常去掉一个最高分和一个最低分后再求平均分.请用算法语句表示:输入12名评委所打的分数ai(i?1??,a12)和Min(a1,a2,??,a12)分,?2,??,?12),用函数Max(a1,a2,别求出ai(i?1,??2,???,??12)中的最大值和最小值,最后输出该歌手的成绩. 总 课 题 分 课 题 教学目标 算法案例 算法案例 总课时 第 9 课时 分课时 第 1 课时 通过了解中国古代算法案例,体会中国古代数学对世界数学发展的贡献. 重点难点 通过案例分析,体会算法思想,熟练算法设计. ?例题剖析 【案例1】
韩信是秦末汉初的著名军事家,据说有一次汉高祖刘邦在卫士的簇拥下来到练兵场,刘邦问韩信有什么办法,不要逐个报数,就能知道场上士兵的人数.
韩信先令士兵排成3列纵队,结果有2人多余;接着他立刻下令将队形改为5列纵队,这一改,又多出3人;随后他又下令改为7列纵队,这一次又剩下2人无法成整行.韩信看此情形,立刻报告共有士兵2333人.
众人都愣了,不知韩信用什么办法清点出准确人数的.
这个故事是否属实,已无从查考,但这个故事却引出一个著名的数学问题,即闻名世界的“孙子问题”.
这种神机妙算,最早出现在我国《算经十书》之一的《孙子算经》中,原文是:“今
第 32 页 共 102 页
邳州市铁富高级中学(数学苏教版必修三) 有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?答曰:二十三.”
所以人们将这种问题的通用解法称为“孙子剩余定理”或“中国剩余定理”.
【算法设计思想】
?m?3x?2?“孙子问题”相当于求关于x,y,z的不定方程组?m?5y?3的整数解.
?m?7z?2?设所求的数为m,根据题意,m应同时满足下列三个条件: (1)m被3除后余2,即Mod(m,??3)?2;
??5)?3; (2)m被5除后余3,即Mod(m,??7)?2; (3)m被7除后余2,即Mod(m,首先,从m?2开始检验条件,若3个条件中有任何一个不满足,则m递增1,当m同时满足3个条件时,输出m.
【流程图】 【伪代码】
【案例2】
写出求两个正整数a,b(a?b)的最大公约数的一个算法.
公元前3世纪,欧几里得介绍了求两个正整数a,b(a?b)的最大公约数的方法,即求出一列数:a,b,r1,r2,?,rn?1,rn,??0,这列数从第三项开始,每一项都是前两项相除所得的余数(即rn?Mod(rn?2,rn?1)),余数等于0的前一项rn,即是a和b的最大公约数,这种方法称为“欧几里得辗转相除法”.
【算法设计思想】
欧几里得展转相除法求两个正整数a,b的最大公约数的步骤是:计算出a?b的余数r,若r?0,则b即为a,b的最大公约数;若r?0,则把前面的除数b作为新的被除数,把余数r作为新的除数,继续运算,直到余数为0,此时的除数即为a,b的最大公约数.
求a,b(a?b)的最大公约数的算法为:
S1 输入两个正整数a,b;
S2 如果Mod(a,b)?0,那么转S3,否则转S6; S3 r?Mod(a,b); S4 a?b;
S5 b?r,转S2; S6 输出b.
【流程图】 【伪代码】
第 33 页 共 102 页
邳州市铁富高级中学(数学苏教版必修三)
【案例3】
3写出方程x?x?1?0在区间[1 ,??1.5]内的一个近似解(误差不超过0.001)的一个算法.【算法设计思想】
如下图:如果设计出方程f(x)?0在某区间?a,b?内有一个根x?,就能用二分搜索求得符合误差限制c的近似解.
算法步骤可表示为:
S1 取?a,b?的中点x0?1(a?b),将区间一分为二; 2S2 若f(x)?0,则x0就是方程的根,否则判断根x?在x0的左侧还是右侧;
若f(a)f(x0)?0,则x??(x0,b),以x0代替a; 若f(a)f(x0)?0,则x??(a,x0),以x0代替b;
S3 若a?b?c,计算终止,此时x??x0,否则转S1.
【流程图】 【伪代码】
?巩固练习
1.下面一段伪代码的目的是______________________________________________.
Read m,n f(b)?0 y?f(x) mm?Int() While
nn
m c?m?n?Int()
nx0 a m?n
x? O b n?c
End While
Print n
f(a)?0 注明:案例3的图 第 34 页 共 102 页
邳州市铁富高级中学(数学苏教版必修三)
x2.在直角坐标系中作出函数y?2x和y?4?x的图像,根据图像判断方程2?4?x的解的范围,再用二分法求这个方程的近似解(误差不超过0.001),并写出这个算法的伪代码,画出流程图.
???????
?课堂小结
通过案例分析,体会算法思想,熟练算法设计,进一步理解算法的基本思想,在分析案例的过程中设计规范合理的算法.
?课后训练
一 基础题
1.一种放射性物质不断变化为其它物质,每经过一年剩留下来的物质的质量约为原来,那么,约经过多少年,剩留的质量是原来的一半?试写出运用二分法计算这个近似值的伪代码.
2.设计一个算法,计算两个正整数a,b的最小公倍数.
二 提高题
3.判断某年份是否为闰年,要看此年份数能否被4整除.若不能被4整除则是平年,2月是28天;若能被4整除但不能被100整除,则该年是闰年,2月是29天;若能被4整除又能被100整除,还要看能否被400整除,若能则为闰年,否则为平年. 画出上述算法的流程图,并写出伪代码.
4.我国古代劳动人民对不定方程的研究作出过重要贡献,其中《张丘建算经》中的“百
第 35 页 共 102 页