




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7课时基本算法语句(循环语句)【教法建议】1 循环语句的教学也应通过实例,结合循环结构的程序框图进行。2 教材中介绍了DO语句和WHILE语句两种循环语句,前者是在循环次数已知时使用的循环,后者是前测试的当型循环教学过程中要通过程序框图将两者区别讲清。具体处理时,要通过实例的对比加以说明。【问题情境】用算法求36999时,可以按逐个相加的方式进行,但这样的算法程序太长,操作不方便。按怎样的算法结构可以简单算法过程呢?如何表示这种算法程序?解借助循环语句。I3SUM0WHILEI5 A=SUM/5 PRINT A END例21990年我国人口为11亿。如果每年的人口增长率为1.5%,多少年后人口达到或超过15亿?设计一个算法解决上面的问题。画出程序框图,写出算法程序。解根据题意,n年后人口为11(11.5%)n,现在就是找使11(11.5%)n15的最小正整数n的值。为此可考虑用循环语句,从n1开始检验。 此算法的程序框图是n111(1+1.5%)n15输出nYnn+1N此算法程序为 M=11 N=1WHILE Mm I=I+1LOOP UNTIL InEND 其中A和B是两个循环操作的步骤。【测试反馈】1下列程序运行次数是A、B、C、D中的哪一种? (D)I=7DOPRINTI I=I+5LOOP UNTIL I90ENDA14B15C16D17提示:I从7开始,每操作一次后加5,接着再操作一次,直至I90为止,而751790,故操作了17次。2下面的程序运行后输出的结果是 (C)I1WHILEI8 I=I+2 S=2*I+3 WEND PRINT S END A 17B19C21D23提示:对S来说,只有最后一次操作是有效的,而根据程序,I最后一次操作时的先取7,加2后取9,故S29321,应选C。3要使以下UNTIL循环执行20次,循环变量的初值应当是 (初始值是14)K= DOK=K-1LOOP UNTIL K (8) I=I+1LOOP UNTIL I4END(说明:其中的“TAB(n)”的功能是行前空n个字符)提示:每行打印8个,故应填8。5已知函数f(x)= ,实数a1=f(1),a2=f(a1),an1f(an)。试写出用循环语句表示的求a8的算法,画出程序框图,并写出算法程序。A1Af(A)n1nn+1n=8N输出AY解 程序框图:程序A1n1WHILEn=8AA/(1+A) n=n+1 WEND PRINT A END6将1开始的奇数按顺序累加,直到其和等于或大于100为止。要求输出表示这些奇数相加并得到运算结果的算式。i1n0sum0sumsum+iSum100ii+2nn+1Y输出“”;iN输出“=”;sum输出sum,n输出i解 程序框图此算法程序为: i=1 PRINT i n=1 sum=0 WHILE sumS THENSai ENDIF LOOPUNTILinPRINTSEND8有一个三位数,当把百位数作十位数,十位数作个位数,而个位数作百位数时,则得到一个新的三位数。原来的三位数是新三位数的2倍还多3。试编制适当的程序找出符合要求的三位数。解算法分析:一个三位数,百位数在19之间变化,十位数、个位数可在09之间变化,但由于个位数要变换到新三位数中的百位数上去,故只能在19之间变化。要求出这些三位数,可用“穷举法”。采用三重循环,由外、中、内三层循环分别控制百位、十位和个位的变化。程序如下:I1DOJ0DOK1DOMI100J10KNK100I10JIFM2N3THENPRINTMKK1LOOPUNTILK9JJ1LOOPUNTILJ9II1LOOPUNTILI9END第8课时习题课【双基演练】1下面四个语句中不正确的打印语句是 (D)APRINTABCBPRINT“A”;BCCPRINT“ABC”DPRINTA;BC提示:A与BC之间不是字符与数值的连接,不应用“;”。2下面的程序运行的结果是 (C)N0I0WHILEI30I(I1)(I1)NN1WENDPRINTNENDA0B3C4D29提示:将初始值I0代入,求得新I1,N变成1,这是第1次循环;130,符合循环条件,第2次循环时,I变为4,N取值为2;4=0 THEN Y=6 ELSE Y=5 (END IF) PRINT Y END提示:条件语句的终止需要说明。4.按下面的程序运行后输出的S的值是。 (120)I=1DOS0 K=1 J=1 DO J=J*K K=K+1 LOOP UNTIL KI S=S+J I=I+1 LOOP UNTIL I5 PRINT S END提示:此程序分内、外两层两个循环,由于外循环每一次都使J1,S0,故只要考虑最后一次循环,即I5时,分别计算了J12345120,故S0J120。【范例解读】1输入三角形的三边长,判断能否构成一个三角形。试给出表示这个算法的程序。解程序框图输入a,b,ca+bcYN输出“不能构成三角形”b+caNa+cbNYY输出“能构成三角形” 程序:INPUTa,b,c IF a+b=c THEN PRINT “不能构成三角形”ELSEIF b+c=a THEN PRINT “不能构成三角形”ELSEIFa+c2004成立的最小正整数n的算法过程。n1sum0Sum=2004N输出nYnn+1sumsum+n解程序框图 程序:n=1 sum=0 WHILE sum50NY输出k解 程序框图:程序:k=0 i=1 DO INPUT ai IF aiMOD 20 THEN k=k+1 END IF i=i+1 LOOP UNTIL i50 PRINT k END【测试反馈】1下列程序的运行结果是 (C)A5B4IFB=ATHENBABELSEBABPRINTBENDA9B4C1D0提示:条件不成立,执行ELSE分支,B被赋值为AB1,选C。2下面的程序运行时输出的结果是 (D) I=1S=0 While I5PRINTYEND提示:DO语句是先执行后判断。每一次循环时Y与A均增加1,直到A5时为止,于是,共循环5次,Y输出结果为6。4.下列程序的运行结果是。 (13i1i)A1B2C10DBB4ACIFD=0 THEN X1=(-B+SQR(D)/(2*A) X2=(-B-SQR(D)/(2*A) PRINT “X1=”; X1,“X2”;X2ELSEPRINT“X1”;B/(2A);“”;SQR(D)/(2A);“i”,PRINT“X2”;B/(2A);“”;SQR(D)/(2A);“i”ENDIFEND提示:这个程序是求方程x2+2x+10=0的根,由于判别式小于0,此方程无实数根,这里输出的是这个方程的虚数根(感兴趣的同学以后可以选修“复数”的有关内容)。注意:其中SQR(X)为取X的平方根。5按下列程序运行后的结果是。 (4)A0XY=10 IF XY100 THEN A=A+1 ELSE IF XY50 THEN A=A+2 ELSE A=A+4 END IF END IF PRINT A END提示:由于不符合循环的条件,应执行ELSE分支,而此分支中的条件也不满足,又应执行它的ELSE分支,故A被赋值为4。6求出所有能被7整除的两位数。写出这个算法程序。解 I=10 DO IF I MOD 7=0 THEN PRINT I END IF I=I+1 LOOP UNTIL I=100 END7火车站对乘客退票要收取一定的费用,收费办法是:按票价每10元(不足10元按10元计算)核收2元,票价在2元以下的不退。试分步写出将票价为x元的车票退掉后,返还的金额y元的算法,画出程序框图,并写出这个算法程序(可用取整函数x表示,不超过x的最大整数在算法程序中可用ENT(x)表示)。输入xx2Ny0Yyx-2x MOD 10=0YNyx-2(+1)输出y解 程序框图: 程序:INPUTxIFX2THENy=0 ELSE IF x MOD 10=0THEN y= x-2*ENT(x/10) ELSE y= x-2*(ENT(x/10)+1) END IF END IF PRINT y END第9课时算法案例(辗转相除法与更相减损)【教法建议】1 教学中重点在算法本身,对其理论依据可作为课后活动的材料。2 适当介绍本案例的背景,特别是对更相减损法必须加以介绍,体现教材的文化价值。3教学重心应放在算法过程的设计上,引导学生画出程序框图,并根据算法的结构特点选择恰当的算法语句,对辗转相除法进行描述。4在提出问题时,也可以先让学生独立设计求两个正整数的最大公约数的算法(完全可以从较小数开始,逐次减1地对正整数进行检验)。5通过实例让学生了解到更相减损与辗转相除法各有优点,如对于求不止两个数的最大公约数,我国的更相减损法就更显出其优越性例如,求623,1 424,801,1 513四个数的最大公约数,可以不拘次序地挑选最方便的,从较大数中减去较小数,求其等数即可:(623,1 424,801,1 513)=(623,1 424 - 801,801 - 623,1513 - 1424)=(623,623,178,89)=(623 - 89 6,623 - 89 6,178 - 89,89)=(89,89,89,89)= 89【问题情境】1小李问老师怎样求两个正整数的最大公约数,老师画了一个程序框图(如下):“你按这个框图进行吧”。写下两个数a,ba=b将较大的数换为两数之差打印aYN(1)用12和15两个数试一下;(2)用198与72两个数试一下(3)你能由此发现一种求两个正整数的最大公约数的方法吗?解 (1)15123, 12399366333是12和15的最大公约数。 (2)198-72=126, 126-72=54, 72-54=18, 54-18=36, 36-18=18 18是198和72的最大公约数。 (3)这就是教材中所介绍的求两个正整数的最大公约数的“更相减损术”。【范例解读】例1分别用辗转相除法、更相减损法求204与85的最大公约数。解方法1(辗转相除法)第一步20485234;第二步 8534217;第三步 341720 17是204与85的最大公约数。方法2(更相减损法):第一步20485119;第二步1198534;第三步 853451;第四步 513417;第五步 341717。17是204与85的最大公约数。例2根据辗转相除法的思想,设计求两个正整数a,b(ab)的最大公约数的算法过程,并画出程序框图,写出算法程序。输入a,br=a MOD br=0输出aa=bb=rNY解 程序INPUTa,bDOr=a MOD b a=b b=r LOOP UNTIL r=0 PRINT a END【归纳点拔】1运用辗转相除法找出两个正整数a,b的最大公约数的步骤是S1输入两个正整数a,b(ab); S2rab的余数; S3如果r不等于零,那么ab,br,转S2 S4输出最大公约数a。【测试反馈】1396和480的最大公约数是 (C)A4B6C12D242如果a,b是整数,且ab0,ra mod b,则a与b的最大公约数是 (D)Ar BbCb-r Db与r的最大公约数3已知a=333,b=24,则使得a=bq+r,(q,r均为自然数,且0rb)成立的q和r的值分别为。 (q=13,r=21)4用辗转相除法与更相减损法求333与24的最大公约数时的循环次数分别为。提示:辗转相除法需要3次循环,更相减损法需要21次循环。5设计一个算法,计算两个正整数a,b的最小公倍数。解算法设计思想:对正整数逐一进行检验。可用程序框图表示输入a,bn MOD a=0n=1n=n+1NYNn MOD b=0Y输出n6根据更相减损法的思想,设计求两个正整数a,b的最大公约数的算法过程,并画出程序框图。解不妨设ab.输入a,br=a-br=0输出bYNa=Max(b,r)b=Min(b,r)7设计求出前100个正整数中的所有素数的一个算法,并用程序框图表示。解算法设计思想:因为1和100都不是素数,故可从2开始,对299这98个自然数逐一进行检验。在对某个正整数k进行检验时,可对从2到k1逐一检验其是否为的约数。程序框图k=3i=2k MOD i=0Yk=k+1+=1k=100NNi=100Nk=k+1Y结束输出2Y 8编程输出十位数字与个位数字的和能被7整除,百位数字与十位数字的和能被3整除的所有3位数。解程序: I=1 Do J=0 DO K=0 DO IF (J+K) MOD 7=0,(I+J)MOD 3=0 THEN PRINT I*100+J*10+K END IFKK1 LOOP UNTIL K9JJ1 LOOP UNTIL J9II1 LOOP UNTIL I9 END第10课时算法案例(秦九韶法)【教法建议】1先通过具体实例介绍并说明,计算机中实施乘法运算比实施加减运算复杂,因此,“好”算法的一个标准是“尽量减少使用乘法运算次数”。2通过实例(求一元多项式的值),让学生自主设计算法,以使用乘法次数最少为“好”的标准。最好在学生探索的基础上发现“秦九韶算法”。3在运用秦九韶算法求多项式的值时,可采取从特殊到一般方式,既使学生能够具体问题具体分析,又可降低学习难度,并且特殊情形的算法设计以一般情况下问题的处理有一定的启发。4算法程序的设计根据学生状况安排,不一定介绍。程序框图必须建立。【问题情境】设计算法计算下列各式的值,使只使用加法、乘法进行计算的过程中使用乘法的次数最少(1)x2+2x+3;(2)x4+x3+x2+x+1。解(1)x2+2x+3=x(x+2)+3,按此式的运算步骤计算时,只要使用1次乘法运算。(2)x4+x3+x2+x+1=x(x(x(x+1)+1)+1)+1,按此式的运算步骤计算时,只要使用3次乘法运算。【范例解读】例1设计求x=2时,x8+x7+x2+x+1的值的算法,并给出描述这个算法的程序。解根据秦九韶算法,可以运用循环语句描述算法过程。x2 S1I1DOS=x*S+1 I=I+1 LOOP UNTIL I8 PRINT S END例2用秦九韶算法设计求多项式 f(x)=x3+2x2-3x+8输入xS=1I=1I3输出SYN输入aIS=xS+aI的值的算法,画出程序框图。解:f(x)=x(x(x+2)-3)+8 设a1=2,a2=-3,a3=8,则求f(x)值的程序框图为【归纳点拔】1根据教材P28中对秦九韶算法求多项式的值的方法,可得其算法设计思想:构造递推关系式,并重复运用这种一次的递推关系式进行操作,故可用循环语句表示这个算法。2注意:在操作过程中,递推关系式中的系数一般是变化的,故在循环体中应包含不断输入系数的操作过程。【测试反馈】1计算多项式x22x+9的值时,最少需要进行乘法运算的次数是 (A)A1B2C3D4提示:x2-2x+9=x(x-2)+9.2当x=5时,求(x2+x+1)(x2-x+1)的值,如果以使用乘法次数少为好的算法的标准,那么,对于下列算法(1)分别直接计算x2+x+1和x2x+1的值,再求所得结果的积(2)将原式化为x4+x2+1,再分别求出x4,x2的值,最后求它们与1的代数和(3)分别对x2+x+1和x2x+1用秦九韶算法求出它们的值,再求所得结果的积(4)对化简的结果x4+x2+1用秦九韶算法最好的算法是 (C)A(1)(3)B(2)(3)C(1)(3)(4)D(3)(4)提示:用秦九韶算法计算乘法次数。3下面的程序是计算多项式f(x)= 在x=-3时的值。(f(x)=x3+x2+2x+3)i=1F=1DOFF(3)+i i=i+1 LOOP UNTIL i3PRINT“F”;FEND提示:第一次循环:F1(-3)+1;第二次循环:F(3)1(3)2(3)2(3)2;第三次循环:F(3)3(3)22(3)3。4补全下面的程序,以计算当x=2时,多项式f(x)=x3+x2+x+1的值。i=1S1DOS (答案:(2*S+1)ii+1LOOP UNTIL i3PRINTSEND提示:f(x)=x(x(x+1)+1)+1,x=2时,f(2)=2(2(2+1)+1)+1。5用程序框图表示用秦九韶算法求x=3时,2x3-x2+x+5的值的算法过程。解f(x)=2x3-x2+x+5=2(x(x(x-)+)+),设a1=-,a2=,a3=.程序框图为x=3S=1I=1I3输出SYN输入aIS=xS+aIS=2S 6将第4题中的伪代码改写成用“WHILE”语句表示的形式。解I1S1WHILEI15S1200*S PRINT S END8设计算法,求当x=2时,f(x)= 的值。解可以分别求分子H=x3+x2+x+1和G=x3-x2+x-1的值,再求它们的商F。在求H和G值时,用秦九韶算法。x2 H1I1DOH=x*H+1 I=I+1 LOOP UNTIL I3 G1L1DOG=x*G+(1)L L=L+1 LOOP UNTIL L3FH/G PRINT F END第11课时算法案例(排序)【教法建议】1应通过实例说明排序在生活中的必要性(高考录取按分数排序、一些会议、作者排名按姓氏笔画排序、单位工资发放表按工资的高低排序等等)。2对简单的排序问题学生容易凭直觉直接写出,教学中要求学生将思维过程具体化、步骤化,从而形成方法。3要从多种角度探索排序的方法,要充分发挥学生生活经验的作用,让学生经历排序的全过程。4由学生自主建立各种排序方法的算法的程序框图,不一定介绍算法程序,可视学生状况而定。【问题情境】1将数据9,6,7,12,3按从小到大的顺序排列起来。解可以用逐一比较的方法找出5个数中的最小值3,将它排在第1个;再在剩下的4个数是找出最小值6,将它排在第2个;依此类推,可将其排成3,6,7,9,12。【范例解读】例1分别用直接排序法和冒泡排序法对数据32,46,23,78,12,17进行排序。解(1)直接排序法第一步将第1、2两个数比较,排列成32,46;第二步将第3个数23插到合适的位置:23,32,46;第三步将第4个数78插到合适的位置:23,32,46,78;第四步将第5个数12插到合适的位置:12,23,32,46,78;第五步将第6个数17插到合适的位置:12,17,23,32,46,78。(2)冒泡排序法第一步比较第1、2两个数32,46,前者小于后者,则位置不变:32,46,23,78,12,17;第二步比较46与23,23小于46,则23与46互换:32,23,46,78,12,17;第三步比较46与78,前者小于后者,则位置不变:32,23,46,78,12,17;第四步比较78与12,12较小,则两者位置互换:32,23,46,12,78,17;第五步同上,将78与17的位置互换:32,23,46,12,17,78;第六步按第一步到第五步的顺序继续操作,直至没有可互换时为止。例2将例1中的两种排序方法用程序框图表示成算法。将第1、2两个数排序将第3个数插到适当位置将第4个数插到适当位置将第5个数插到适当位置将第6个数插到适当位置结束开始解(1)直接排序法将第1、2两个数排序后得到一列数将新的一列数中第2、3两个数排序后得到一列数将新得到的一列数中第3、4两个数排序后得到一列数将新的一列数中第4、5两个数排序后得到一列数将新的一列数中第5、6两个数排序后得到一列数上述过程未发生次序变化Y输出这列数N(2)【归纳点拔】1直接排序法的特点是:从第2个数开始排起,每次都是将这个数在它前面已排好的数组中找到它的“位置”,这种排法中第n次操作后,前n个数据的顺序已经排好。2冒泡排序法的特点是逐步调整,每“一趟”操作完毕后,较小的数都向上浮了一位,只要操作次数足够多,就一定能将小的浮到前面,大的沉到后面。【测试反馈】1下面的算法的功能是 (A)开始输入一个数据aa=32Y输出aN将a用下一数据赋值是否还有数据N结束A查找出一组数据中是否有32B将一组数据中的第32个数打印出来B判断32是一组数据中第几个数D找出一组数据中从小到大排列时第32个数提示:根据判断框中的条件,a32时即输出可知应选A。2按下面的程序进行的操作是 (D)INPUTaINPUTbxa ab bx PRINT a,b ENDA将x赋值给a和b后输出B将a赋值给x,再将x赋值给b后输出C使a,b都等于x后输出 D将两个变量a与b互换后输出3若a=3,b5,则按下面的程序输出的是. (5)INPUTa,b S=a IF bS THEN S=b PRINT S END4完成下面的程序,将三个数a,b,c按从大到小的顺序输出INPUT“a,b,c=”;a,b,cIFbaTHEN t=a a=b b=t END IF IF ca THEN t = ( a) a = ( c ) c = ( t ) END IF IF cb THEN t = (b) b = (c) c = (t) END IF PRINT a,b,c END将第1、2两个数排序将第3个数插到适当位置结束开始5用直接排序法将3个互不相等的实数a,b,c按从大到小的顺序排列起来。试画出程序框图。解6写出一个在三个数a,b和c中找出第2个小数的算法(假设a,b,c互不相同),写出表示这个算法的程序。解实际上就是将a,b和c排序后,取中间一个数。故可用第4题中的方法先排序,再将中间一个数输出。程序:INPUTa,b,cIFbaTHEN t=a a=b b=t END IF IF ca THEN t = a a = c c = t END IF IF cb THEN t = b b = c c = t END IF PRINT b END7还可以用逐步求最小(大)值的方法进行“选择法”排序,其设计思想是:首先在数组中找最小(大)的元素,并将其第一个位置上的元素对调;再找次小(大)的元素,并与第二个位置上元素对调,依此类推,直到数组全部有序。试根据上述思想,用程序框图表示这个算法。解输入这组数确定最小数输出最小数由剔除最小数后的所有数构成新的一组数数组中只有一个数NY结束输出这个数8设计一个算法,将一组数a1,a2,a10中所有比相邻两个数都大的数找出来。请用程序框图表示这个算法。解输入a1,a2,a10n=2anan-1且 anan+1Y输出ann9Y结束n=n+1NN第12课时算法案例(进位制)【教法建议】1通过学生已有的知识引入,如最常使用的十进制、角度制中的六十进位制,以及其它一些计量单位中进位制,让学生感到进位制的选择是根据需要而定的,以破除十进制的定势。2介绍二进制时要结合计算机电路的特点进行,说明二进制的重要性,并由此了解二进制的加、乘运算法则,特别是加法运算法则。3通过具体实例介绍十进制与二进制的互化方式,进而对一般情形加以了解。4在对化十进制的算法,尽量结合秦九韶算法进行。5通过简单问题
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年专业岗位模拟题医疗器械销售与推广岗位招聘考试试题库
- 2025-2026学年北师大版(2024)小学数学三年级上册《身高的增长》教学设计
- 河北省唐县第一中学2025-2026学年高二上学期开学物理试题
- 训诂学自考试题及答案
- 运动损伤题目解答及答案
- 2025-2026学年数学九年级下册湘教版期末测试卷(含答案)
- 第6章 金属资源综合利用 单元自测(含答案)2025-2026学年化学沪教版(2024)九年级上册
- 打黄打非知识培训课件
- 2025年区属国企考试试题及答案
- 微课在初中数学教学心得体会(共19篇)
- 2025-2030中医药大健康产业链整合与投资机会分析报告
- 2025年第九届“学宪法、讲宪法”知识竞赛题库及答案(中小学组)
- 2025年低压电工理论考试1000题(附答案)
- 浙江省地方课程《人自然社会》课件
- 新版现代西班牙语第二册课后答案
- 英语中考常用一词多义词
- 上海港港口拖轮经营人和港口拖轮名录
- T-CAMET 04017.1-2019 城市轨道交通 全自动运行系统规范 第1部分:需求
- 肾癌伴下腔静脉癌栓诊治共识课件
- 集装箱吊具图纸
- 混凝土支撑拆除施工方案
评论
0/150
提交评论