布吉高级中学2014-2015学年第一学期 高一数学
先执行 ,再对 .如果条件不符合,则继续执行 ;然后再检查上述条件,如果条件仍不符合,则再次执行 ,直到条件符合为止.这时,计算机将不执计算机将不执行 ,而执行UNTIL语句之后的语句。
知识探究(二):当型(WHILE型)循环语句 对比直到型循环结构,想想当型循环结构的程序框图是什么?写出该循环结构对应的循环语句的一般格式设定:
程序框图: 算法语句:
思考:你觉得WHILE型语句与UNTIL型语句之间有什么区别呢?
※ 典型例题
例1、计算1+2+3+?+100的值有如下算法: 第一步,令i=1,S=0.
第二步,计算S+i,仍用S表示. 第三步,计算i+1,仍用i表示.
第四步,判断i>100是否成立.若是,则输出S,结束算法;否则,返回第二步. 你能利用UNTIL语句写出这个算法对应的程序吗?
练习、用While语句编写计算机程序来计算1+2+?+100的值
三、小结
四、练习
2
1.根据你画出的用二分法求方程x-2=0的 近似根的程序框图,写出相应的程序语句。
2.下面的程序:
这一秒不放弃,下一秒就有希望!坚持下去才可能成功!
21
布吉高级中学2014-2015学年第一学期 高一数学
执行完毕后a的值为 A.99
( )
B.100 C.101
D.102
( )
3.下列程序运行后输出的结果为
A.17 B.19 C.21 D.23
1.3 算法案例
班级________ 姓名_________
知识点1:用辗转相除法求最大公约数
(1)辗转相除法求最大公约数的步骤如下: 第一步:用较大的数m除以较小的数n得到一个商q0和一个余数r0;
第二步:若r0?0,则n为m,n的最大公约数;若r0?0,则用除数n除以余数r0得到一个商q1和一个余数r1;
第三步:若r1?0,则r1为m,n的最大公约数;若r1?0,则
这一秒不放弃,下一秒就有希望!坚持下去才可能成功!
22
布吉高级中学2014-2015学年第一学期 高一数学
用除数r0除以余数r1得到一个商q2和一个余数r2;??
依次计算直至rn?0,此时所得到的rn?1即为所求的最大公约数. (2)辗转相除法的算法步骤: 第一步,给定两个正整数m,n. 第二步,计算m除以n所得的余数r. 第三步,m=n,n=r.
第四步,若r=0,则m,n的最大公约数等于m;否则返回 第二步. (3)辗转相除法的流程图如右图所示:
例1.求两个正数8251和6105的最大公约数.
(分析:8251与6105两数都比较大,而且没有明显的公约数,如能把它们都变小一点,根据已有的知识即可求出最大公约数)
解:8251=6105×1+2146
显然8251和的2146最大公约数也必是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年左右首先提出的.
跟踪练习1、用辗转相除法求288与123的最大公约数.
知识点2:更相减损术
我国早期也有解决求最大公约数问题的算法,就是更相减损术.
更相减损术求最大公约数的步骤如下:可半者半之,不可半者,副置分母之数,以少减多,更相减损,求其等也,以等数约之. 翻译出来为:
第一步:任意给出两个正数;判断它们是否都是偶数.若是,用2约简;若不是,执行第二步.
第二步:以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数
这一秒不放弃,下一秒就有希望!坚持下去才可能成功!
23
布吉高级中学2014-2015学年第一学期 高一数学
减小数.继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数.
例2. 用更相减损术求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的最大公约数.
跟踪练习3、用辗转相除法求80和36的最大公约数,并用更相减损术检验所得结果.
比较辗转相除法与更相减损术的区别
(1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显.
(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到. 知识点3:进位制
概念:人们为了计数和运算方便而约定的计数系统,“满k进一”就是k进制,k是基数(其中k是大于1的整数).k进制的数可以表示为一串数字连写在一起
这一秒不放弃,下一秒就有希望!坚持下去才可能成功!
24
布吉高级中学2014-2015学年第一学期 高一数学
的形式为anan-1?a1a0(k)(an,an-1,?,a1,a0∈N,0
第一步,给定十进制正整数a和转化后的数的基数2. 第二步,求出a除以a所得的商q,余数r. 第三步,将得到的余数依次从右到左排列.
第四步,若q≠0,则a=q,返回第二步;否则,输出全部余数r排列得到的二进制数b.
例:3:把十进制数89化为二进制数.
[解析] 1.根据“满二进一”的原则,可以用2连续去除89或所得商,然后取余数—即除2取余法.用竖式表示为(如右图):
∴89=1×26+0×25+1×24+1×23+0×22×0×21+1×20=1011001(2)
例4:把二进制数1110011(2)化为十进制数.
[解析] 1.先把二进制数写成不同位上数字与2的幂的乘积之和的形式,再按照十进制数的运算规则求出结果
1110011(2)=1×26+1×25+1×24+0×23+0×22+1×21+1=115.
跟踪练习4、把45化为二进制数
这一秒不放弃,下一秒就有希望!坚持下去才可能成功!
25