(B)条件语句中可以没有END IF
(C)条件语句中可以没有ELSE,但是必须有END IF (D)条件语句中可以没有END IF,但是必须有ELSE 3、右面的程序执行后,若
INPUT a IF a<10 THEN y=2a ELSE y=a*a END IF PRINT y END INPUT a,b,c m=a IF b>m THEN m=b END IF IF c>m THEN m=c END IF PRINT m END 输入a=3,输出的结果为。
4、程序:
若执行程序时输入10、12、8,则输出的结果为。
5、下列算法:①求和1?2?3???100;②已知两个数求它们的商;③已知函数定义在某个区间上,将区间十等分求端点及各分点处得函数值;④已知三角形的一边及此边上的高,求其面积。其中可能要用到循环语句的是( ) (A)①② (B) ①③ (C) ①④ (D)③④ 6、运行下面的程序,执行后输出的s的值是( ) (A)11 (B)15 (C)17 (D)19 i=1 WHILE i<6 i=i+2 s=2*i+1 WEND PRINT s END 7、(1)程序1运行后输出的结果是;
(2)程序2是一个求20个数的平均数的程序,在横线 处应填充的语句为。
22228、画出计算1?3?5???999的程序框图,
1.3.1 辗转相除法与更相减损法、秦九韶算法 【学习目标】
1、通过案例,进一步体会算法的思想;
2、理解辗转相除法、更相减损法、秦九韶算法的原理。 理解辗转相除法与更相减损术求最大公约数的方法。
3、把辗转相除法与更相减损术的方法转换成程序框图与程序语言
4、了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质。 【预习指导】
预习课本P34到P39关于“算法案例”的相关内容,完成下列问题: 1、辗转相除法:
(1)辗转相除法,又叫欧几里得算法,是一种求两个正整数的的古老而有效的算法。 (2)辗转相除法的算法步骤:第一步,给定。第二步,计算。第三步,。第四步,若r=0,则m、n的最大公约数等于;否则,返回。
2、更相减损术:
第一步,任意给定两个正整数,判断它们是否都是。若是,用;若不是,执行。
第二步,以的数减去的数,接着把所得的差与的数比较,并以大数减去小数,继续这个操作,直到所得的数为止,则这个数(等数)或这个数与约简的数的乘积就是所求的最大公约数。 3、秦九韶算法:
把一个n次多项式f(x)?anxn?an?1xn?1???a1x?a0改写成如下形式:
f(x)?(?((anx?an?1)x?an?2)x???a1)x?a0
求多项式的值时,首先计算一次多项式的值,
即v1?,然后由内向外逐层计算一次多项式的值。这样求n次多项式f(x)的值就转化为求n个一次多项式的值。
【课堂探究】 1.教材P34例
求两个正数8251和6105的最大公约数。 思维指导:
①本题的问题是求两个正数8251和6105的最大公约数。 解决方法:辗转相除法。 第一,辗转相除法是什么? 8251=6105×1+2146
显然8251的最大公约数也必是2146的约数,同样6105与2146的公约数也必是8251的约数,所以8251与6105的最大公约数也是6105与2146的最大公约数。
6105=2146×2+1813 2146=1813×1+333 1813=333×5+148 333=148×2+37 148=37×4+0
则37为8251与6105的最大公约数。
以上我们求最大公约数的方法就是辗转相除法。也叫欧几里德算法,它是由欧几里德在公元前300年左右首先提出的。
第二,利用辗转相除法求最大公约数的步骤如下:
第一步:用较大的数m除以较小的数n得到一个商q0和一个余数r0;
第二步:若r0=0,则n为m,n的最大公约数;若r0≠0,则用除数n除以余数r0得到一个商q1和一个余数r1;
第三步:若r1=0,则r1为m,n的最大公约数;若r1≠0,则用除数r0除以余数r1得到一个商q2和一个余数r2;
??
依次计算直至rn=0,此时所得到的rn-1即为所求的最大公约数。
练习:利用辗转相除法求两数4081与20723的最大公约数(答案:53)
2.更相减损术:教材P36例1
用更相减损术求98与63的最大公约数.
①本题的问题是求两个正数98与63的最大公约数。 解决方法:更相减损术。 第一,更相减损术是什么?
注意,首先需要判断两个数是不是同时是偶数。 思考:如果两个数同时是偶数,怎么处理?
由于63不是偶数,把98和63以大数减小数,并辗转相减,即:98-63=35
63-35=28 35-28=7 28-7=21 21-7=14 14-7=7
所以,98与63的最大公约数是7。
第二,利用辗转相除法求最大公约数的步骤如下:
我国早期也有解决求最大公约数问题的算法,就是更相减损术。
更相减损术求最大公约数的步骤如下:可半者半之,不可半者,副置分母·子之数,以少减多,更相减损,求其等也,以等数约之。翻译出来为:
第一步:任意给出两个正数;判断它们是否都是偶数。若是,用2约简;若不是,执行第二步。
第二步:以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数。继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数。
练习:用更相减损术求两个正数84与72的最大公约数。(答案:12)
注意:比较辗转相除法与更相减损术的区别
(1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显。
(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到。 3.教材P37例2
已知一个5次多项式为f(x)?5x?2x?3.5x?2.6x?1.7x?0.8 用秦九韶算法求这个多项式当x?5时的值。 解:略 思考:(1)计算时需要多少次乘法计算?多少次加法计算?
(2)在利用秦九韶算法计算n次多项式当x?x0时需要多少次乘法计算和多少次加法计算?
(3)为什么要采用秦九韶算法? 减少计算数量。 【巩固练习】
54321、用更相减损术求294和84的最大公约数时,需做减法的次数是( ) (A)5 (B) 4 (C) 3 (D)2 2、1037和425的最大公约数是( ) (A)51(B)17 (C)9(D)3
3、用秦九韶算法计算多项式f(x)?2x6?5x5?4x4?3x3?2x2?x?7在x=4时的值时,需做加法和乘法的次数的和为( ) (A)8 (B) 9 (C) 10 (D)12
4、已知f(x)?x5?2x3?3x2?x?1,应用秦九韶算法计算x=3时的值时,v3?。 5、(1)用辗转相除法求779和209的最大公约数; (2)用更相减损术求248和352的最大公约数。
6、用秦九韶算法计算多项式f(x)?x6?12x5?60x4?160x3?240x2?192x?64当x=2时的值。
1.3.2 进位制 【学习目标】 1、了解进位制的概念;
2、会进行不同进位制之间的相互转化。 【预习指导】
预习课本P40到P44关于“算法案例——进位制”的相关内容,完成下列问题: 1、进位制
进位制是人们为了计算和运算方便而约定的记数系统,“满几进几”就是几进制,几进制的基数就是几。
2、不同进位制之间的互化:
(1)k进制化为十进制的方法:anan?1?a1a0(k)?;(其中an,an?1,?,a1,a0?N,0?an?k,
0?an?1,?a1,a0?k)
(2)十进制化为k进制的步骤:
第一,将给定的十进制整除以基础k,余数便是等值的k进制的最低位。 第二,将上一步的商再除以基数k,余数便是等值的k进制的次低位。