算法初步单元小结第一章单元复习知识结构t57301p2算法程序框图算法语句辗转相除法与更相减损术秦九韶算法进位制知识梳理1.算法的概念在数学中,按照一定规则解决某一类问题的明确和有限的步骤称为算法.用程序框、流程线及文字说明来表示算法的图形称为程序框图.2.程序框图的概念3.程序框、流程线的名称与功能图形符号名称功能终端框(起止框)输入、输出框处理框(执行框)判断框流程线表示一个算法的起始和结束表示一个算法输入和输出的信息赋值、计算判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”连接程序框,表示算法步骤的执行顺序4.算法的顺序结构(1)概念:由若干个依次执行的步骤组成的逻辑结构,称为顺序结构.(2)程序框图:步骤n步骤n+15.算法的条件结构(1)概念:由若干个在一定条件下才会被执行的步骤组成的逻辑结构,称为条件结构.(2)程序框图:满足条件?步骤A步骤B是否满足条件?步骤A是否6.算法的循环结构(1)概念:由按照一定的条件反复执行的某些步骤组成的逻辑结构,称为循环结构.(2)程序框图:循环体满足条件?是否循环体满足条件?是否7.算法的输入语句INPUT“提示内容”;变量8.算法的输出语句PRINT“提示内容”;表达式9.算法的赋值语句变量=表达式10.算法的条件语句IF条件THEN语句体ENDIFIF条件THEN语句体1ELSE语句体2ENDIF满足条件?步骤1步骤1是否满足条件?步骤A是否11.算法的循环语句DO循环体LOOPUNTIL条件满足条件?是循环体否WHILE条件循环体WEND循环体满足条件?是否12.辗转相除法第一步,给定两个正整数m,n(mn).第二步,计算m除以n所得的余数r.第三步,m=n,n=r.第四步,若r=0,则m,n的最大公约数等于m;否则,返回第二步.求两个正整数的最大公约数13.更相减损术第一步,给定两个正整数m,n(mn).第二步,计算m-n所得的差k.第三步,比较n与k的大小,其中大者用m表示,小者用n表示.第四步,若m=n,则m,n的最大公约数等于m;否则,返回第二步.求两个正整数的最大公约数14.秦九韶算法第一步,输入多项式的次数n,最高次项的系数an和x的值.第二步,令v=an,i=n-1.第三步,输入i次项的系数ai.第四步,v=vx+ai,i=i-1.第五步,判断i≥0是否成立.若是,则返回第二步;否则,输出多项式的值v.求多项式f(x)=anxn+an-1xn-1+…+a1x+a0的值15.k进制化十进制的算法110()110110nnknnnnaaaaakakakak---=??+??LL第四步,判断in是否成立.若是,则输出b的值;否则,返回第三步.第一步,输入a,k和n的值.第二步,令b=0,i=1.第三步,,i=i+1.1iibbak-=+?16.十进制化k进制的算法第四步,若q≠0,则a=q,返回第二步;否则,输出全部余数r排列得到的k进制数.第一步,输入十进制数a和基数k的值.第二步,求出a除以k所得的商q,余数r.第三步,把所得的余数依次从右到左排列.除k取余法题2把八进制数2376(8)化为五进制数.2376(8)=1278=20103(5)题1把十进制数104化为三进制数.104=10212(3)题3用秦九韶算法求多项式f(x)=anxn+an-1xn-1+…+a1x+a0的值,令v0=an,vk=vk-1x+an-k(k=1,2,…,n).{若f(x)=3x5+4x4+5x3+2x2+2x+1,当x=3时,求v4及f(x)的值例1一个球从100m高处自由落下,每次着地后又跳回到原高度的一半再落下.编写程序,求当它第10次着地时,(1)第10次着地后反弹多高?(2)向下的运动共经过多少米?(3)全程共经过多少米?1005025123410着地次数高度0(1)第10次着地后反弹多高?开始h=50i≤10?h=h/2i=1结束输出h否i=i+1是h=50i=1WHILEi=10h=h/2i=i+1WENDPRINThEND(2)第10次着地时向下的运动共经过多少米?开始h=100s=100i≤10?h=h/2s=s+hi=1结束输出s否i=i+1是h=100s=100i=1WHILEi=10h=h/2s=s+hi=i+1WENDPRINTsEND(3)全程共经过多少米?s=s+h开始h=100s=100i≤10?h=h/2i=1结束输出s否i=i+1是s=s+2hs=s+hh=100s=100i=1WHILEi=10h=h/2i=i+1WENDPRINTsENDs=s+2*h例2高一某班有50名学生,编写程序,统计该班数学单元测试优秀人数(不低于80分)、及格人数和班级平均分.开始x≥80?结束m=0s=0a=0输入成绩xx≥60?是a=a+1s=s+x输出m,a,pi≤50?i=1否i=i+1m=m+1是p=s/50否否是学生成绩为x,优秀人数为m,及格人数为a,班级总分为s,平均成绩为p.开始x≥80?结束m=0s=0a=0输入成绩xx≥60?是a=a+1s=s+x输出m,a,pi≤50?i=1否i=i+1m=m+1是p=s/50否否是S=0m=0a=0i=1WHILEi=50IFx=80THENINPUTxm=m+1ENDIFIFx=60THENa=a+1WENDENDIFs=s+xi=i+1p=s/50PRINTm,a,pEND