第13课时5.4 算法案例 重点难点 重点:理解区间二分法的意义;学会分析类似的问题;通过案例分析,体会算法思想, 难点:理解二分法的算法思想和算法表示 学习要求 1.理解区间二分法的意义,二分法主要是采用了循环结构处理问题要会分析类似的问题。 2.能由流程图分析出期所含有的结构并用为代码表示出相应的算法. 3.GoTo语句的认识及其他语句的进一步熟悉。 【课堂互动】 问题:用区间二分法写出方程在区间[1,1.5]内的一个近似解(误差不超过0.001)的一个算法。 算法设计思想: 令函数.如图,如果估计出方程在某区间内有一个根,就能用二分法搜索求得符合误差限制的近似解.  取[a,b]的中点,如果f()=0,则就是方程的根;否则判断根在的左侧还是右侧,如果在左侧,就用[a,]代替区间 [a,b]。如果在右侧,就用[,b]代替区间[a,b],如此循环下去,直到|a-b|<(c是约定的误差范围,本例中为0.001)时终止,此时≈。 算法步骤: S1 取[a,b]的中点,将区间一分为二; S2 若,则就是方程的根;否则判断根在的左侧还是右侧: 若>0,则,以代替a; 若<0,则,以代替b; S3 若p Print m 思考运用 2. 设计求解不定方程 ()的一个算法,(提示:可用循环语句或条件语句) 3.判断某年是否为闰年,要看此年份数能否被4整除,但又不能被100整除;或者看此年份数能否被400整除。画出上述算法的流程图,并写出伪代码。 4.函数与有三个交点(x1,y1),(2,4),(4,16),其中-1<x1<0。试用二分法求出x1近似值(误差不超过0.01)。 5、求满足不等式:1×2×3×┅×I<10000的最大正整数I,写出代码。 6、求出平方数小于1000的所有正整数的和,并写出代码。 探究拓展: 7. 要判断一个数x是否为质数,我们可以把它分别除以从2到x-1的每一个整数,如果都除不尽,则x为质数。要判断a是否能被b整除,只要看a/b是否等于Int(a/b),若相等则能整除。 下面是寻找3~100之内质数的一个算法的伪代码: 10 For x From 3 To 100 20 For I From 2 To x-1 30 If Int(x/i)=x/i Then GoTo 10 40 End For 50 Print x 60 End For 实际上,上述算法的运算次数较多,可以加以改进,首先,偶数不可能是质数,因此第1行的步长可改为2,其次,第2行中的x-1可以改为(为什么?)。 写出改进后的伪代码,你有寻找质数更好的方法吗? 8. 满足方程的一组正整数称为勾股数或商高数,试设计一个满足a≤30,b≤40,c≤50的勾股数的算法(写出算法步骤,画出流程图)。 9、输入一个数,将该数反向输出(如1234→4321)。写出一个解决该问题的算法,并用伪代码表示。 w.w.w.k.s.5.u.c.o.m

【点此下载】