- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序框图如下图所示: 专题三 循环结构及其应用 算法中的逻辑结构是根据指定条件决定是否重复执行一条或多条指令的控制结构.由于计算机的运算速度快,最适宜做重复性的工作,因此循环是计算机解题的一个重要特征,正因为如此,在算法的三种逻辑结构中,循环结构是最重要?最常用的一种,也是学者在应用中感到最为困惑的一种.本文进一步探析循环结构及其应用. 一?循环结构的两种基本类型 二?用循环结构的关键点 (1)确定循环变量和初始值;(2)确定算法中反复执行的部分,即循环体;(3)确定循环的终止条件.循环结构有两种——直到型(UNTIL)和当型(WHILE). 三?循环结构的应用 1.用于迭加运算 解:程序框图为: 程序: i=1 WHILE i =6 i=i+1 WEND PRINT x END 2.用于递推运算 例6:用砖砌一堵墙,第一层用了全部砖的一半还多一块,第二层用了剩下的砖的一半还多一块,以后每一层都用了剩余砖的一半还多一块,到第20层时恰好剩下1块砖,问这堵墙一共用了多少块砖?试编写程序,解决这个问题. 分析:依题意知,砌第20层时剩余砖为a20=1块,砌第19层时剩余砖为a19=(1+1)×2=4块,砌第18层时剩余砖为a18=(4+1)×2=10块,…,砌第n层时剩余砖为an=(an+1+1)×2块,所以递推公式为a20=1,an=2(an+1+1),n=1,2,…,19.故本题可用循环结构实现算法. 解:程序: m=1 n=1 WHILE n20 m=2*(m+1) n=n+1 WEND PRINT m END 大只500平台 sru327uip vzk352uip 第一章 算法初步 本 章 回 顾 知 识 结 构 重点知识回顾 一?算法与程序框图 1.解决问题的步骤就是算法. 任何一个能够利用计算机解决问题的算法必须具备以下5个特性: (1)可执行性;(2)确定性;(3)有穷性;(4)有输入信息的说明;(5)有输出结果的步骤. 在书写算法时,为了得到易读?易懂?易修改扩充的算法,应做到以下几点: (1)利用自上而下的方法设计算法; (2)利用顺序结构?条件结构?循环结构这3种基本逻辑结构来设计算法; (3)要有优美的算法表达风格. 2.程序框图是用一些图形符号表示各种操作,它直观形象,易于理解,便于人们之间的交流与合作.学习这部分内容时,我们要掌握基本的图形符号,在书写算法或画流程图时,要熟练地运用顺序结构?条件结构?循环结构这3种基本逻辑结构来表达算法. 二?基本算法语句 本章介绍了输入语句?输出语句?赋值语句?条件语句?循环语句,通过这些语句,我们可以编写出计算机能够读懂的程序. 三?算法案例 1.用辗转相除法与更相减损术求两个数的最大公约数时,一定要弄清每一次除法和减法中的被除数?除数和被减数?减数,同时要掌握两种方法中除法和减法分别应在何种情况下停止运算,得出结果. 2.要注意不同进制的数之间的转换方法.k进制数化为十进制数的方法是把k进制数写成各位上数字与k幂的乘积之和的形式,再按十进制数的运算规则计算出结果;十进制数化为k进制的方法是用k连续去除十进制数与所得的商,直到商为零为止,然后把各步得到的余数倒写就是相应的k进制数 专 题 探 究 专题一 算法设计 算法设计与一般意义上的解决问题不同,它是对一类问题的一般解法的抽象与概括,它要借助一般的问题解决方法,又要包含这类问题的所有可能情形.它往往是把问题的解法划分为若干个可执行的步骤,有时有些甚至是重复多次,但最终都必须在有限个步骤之内完成. 例1:已知平面直角坐标系中的两点A(-1,0),B(3,2),写出求线段AB的垂直平分线方程的一个算法. 分析:线段AB的垂直平分线是指经过线段AB的中点且与直线AB垂直的直线,故可 先由中点坐标公式求出线段AB的中点N(1,1),然后计算直线AB的斜率 由垂直关系可知AB垂直平分线的斜率是k=-2,最后由点斜式写出直线方程. 点评:该算法步骤的设计依据了解析几何中求线段垂直平分线的一般方法.同学们还可以思考:如果把已知的两点坐标改为A(x1,y1),B(x2,y2).算法设计将会发生怎样的变化呢? 例2:一个大油瓶装了8 kg油,还有两个空油瓶,一个能装5 kg油,另一个能装3 kg油.请设计一种算法,将这8 kg油平均分成两份. 分析:这是一个非数值计算性问题的算法设计,应考虑首先建立过程模型.此问题中要充分利用好两个空油瓶,用它们起到称量的作用. 解:算法步骤如下: 第一步,用8 kg油瓶中的油将3 kg油瓶倒满,再将3 kg油倒入到5 kg油瓶中. 第二步,用8 kg油瓶中剩余的油装满3 kg油瓶,再用这3 kg油瓶中的油装满5 kg油瓶,这时3 kg油瓶中剩1 kg油. 第三步
文档评论(0)