




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1算法概念的诠释同学们也许对算法这个概念很陌生,但其实大家在日常生活中已经接触过很多算法了,广义地说,算法就是做某一件事情的步骤或程序.菜谱是做菜肴的“算法”,洗衣机的使用说明书是操作洗衣机的“算法”.每个算法都闪耀着人类的智慧,阅读和学习这些东西会给我们带来一种难以用语言表达的满足感和快感.在以后的学习和工作中我们会不断从实际应用中了解和领会算法是如何解决各个领域的实际问题,推动人类文明的发展的.一、算法的特征1.确定性确定性:算法中的每条运算规则必须是明确定义的、可行的,每一个步骤只能有一个确定的后继步骤,运行终止应得到问题的解答或指出问题没有解答.2.有限性一个算法必须保证在执行有限步后结束,至少不能出现无限循环或死循环,在此基础上越简洁越快越好.越简洁,占用内存越少,对设备的要求越基本;越快,这个意义就不用说了吧.比如一个计算对方导弹轨迹的算法,如果等你算出来,那边导弹已经落地了,那还有什么意义?二、算法的思想专业的事交给专业的人去做.普通人只要按专业人士给出的步骤,一步一步地去完成,这就是算法的思想,即程序思想,你也可以理解为傻瓜化思想.另外,算法强调的是通性通法,即给出一个算法,实际上是给出了一种解决一类问题的方法.比如给出一个计算圆的面积的算法,它应该能计算各种半径的圆的面积,而不是只适用于半径为某一具体数的圆.三、特别提示1.算法中的每一步应该是确定的并且能够有效地执行且得到确定的结果,而不应当模棱两可,如求近似值却没有要求近似的精确度,则该问题不能求解.2.现代算法主要是面向计算机的,如果算法中没有输出,程序也能运行,但是运行结果无法输出.如果想要得到结果,那就要有输出.3.只要有公式可以利用,利用公式解决问题是最理想、最简便的方法,比如在写解方程x23x40的算法时,用求根公式来做,步骤则较为简洁.4.求解某一个问题的算法一般不是唯一的,我们通常选择较为简单的算法.四、典例分析例下面给出了一个问题的算法:第一步,输入x.第二步,若x4,则执行第三步,否则执行第四步.第三步,输出2x1.第四步,输出x22x3.这个算法解决的问题是什么?分析依据题目给出的算法步骤依次执行,是读懂算法的一个重要而基本的办法.解这个算法先是输入一个变量x,当x4时输出2x1,当x4时输出x22x3,不难发现这个算法解决的问题是求分段函数f(x)的函数值.2典型算法举例1.解方程(方程组)、不等式的算法例1用自然语言描述求一元二次方程x2bxc0的根的算法.思维切入对于求方程的根,解方程组这样的数值型的问题,我们都有具体的计算方法,只要我们把平时的计算方法严格地按步骤描述出来即可.因此我们很容易得到下面的算法.解用自然语言来描述算法,第一步,计算b24ac.第二步,如果0,则原方程无实数解,输出“无实数解”;否则(0)x1,x2,输出x1,x2的值.点评第二步中包含了一个判断b24ac是否小于零的条件,并根据判断结果进行不同的处理.算法是否“健壮”,也是衡量算法优劣的重要指标.如果思维不严谨,比如这个算法忘记考虑b24ac小于零的情形,实际运算一旦遇到,则会导致不是出错就是死机,那这个算法就是不“健壮”的.例2写出解x24x30的算法.思维切入只要把平时的固定解法有条理地写出来,即为解不等式的算法.解第一步,求出对应方程的根x11,x23.第二步,确定根的大小x1x2.第三步,写出解集x|1xr,则直线与圆相离,dr则直线与圆相切,dr则相离,如果dr则相切,如果dr则相交.点评算法要求分解成简单计算,不要直接计算d.一个比较大的程序,会分成若干模块,一个模块出了问题只需要修改这一模块,而不需要全盘翻工.4.累加、累乘问题的算法例5用自然语言描述求解mul123456问题的算法.思维切入根据算法的特点,我们学过的加、减、乘、除运算法则都是算法,只要按照具体的规则有步骤地描述过程,便有了该题的算法.解第一步,计算12,得2.第二步,将第一步中的运算结果2与3相乘得6.第三步,将第二步中的运算结果6与4相乘得24.第四步,将第三步中的运算结果24与5相乘得120.第五步,将第四步中的运算结果120与6相乘得720.点评如果让人一步一步地做,太枯燥了.但这恰好是计算机的优势.所以算法好不好,还分让谁来执行,对人来讲是奇笨无比的办法,对计算机却可能是一个好办法.思维拓展该算法包含一个重复操作的过程是循环结构,我们可将算法改造得更为简练、科学.解第一步,设i1,p1.第二步,如果i6执行第三步,否则执行第五步.第三步,计算pi并将结果代替p.第四步,将i1代替i,转去执行第二步.第五步,输出p.点评i称为计数变量,每一次循环它的值增加1,由1变到6,p是一个累乘变量,每一次循环得到一个新的结果,然后新的结果代替原值.3程序框图画法全知晓一、画程序框图的基本步骤第一步,设计算法,因为算法的设计是画程序框图的基础,所以画程序框图前,首先写出相应的算法步骤,并分析算法需要用哪种基本逻辑结构(顺序结构、条件结构、循环结构)完成.第二步,把算法步骤转化为对应的程序框图,在这种转化过程中往往需要考虑很多细节,是一个将算法“细化”的过程.第三步,将所有步骤的程序框图用流程线连接起来,并加上终端框,得到整个表示算法的程序框图.二、画程序框图的规则1.使用标准的框图符号.2.框图一般按从上到下、从左到右的方向来画.3.除判断框外,大多数程序框只有一个进入点和一个退出点,判断框是唯一具有超过一个退出点的程序框.4.在图形符号内描述的语言要简练清楚.三、典例分析1.顺序结构顺序结构是最简单的算法结构,是任何一个算法都离不开的结构.若一个算法由若干个依次执行的步骤组成,则在画程序框图时,可直接由顺序结构完成.因为在其他的结构中都会涉及到顺序结构,所以关于顺序结构的画法,在此不再单独叙述.2.条件结构设计程序框图时,若是分段函数或执行时需要先判断才能执行的问题,则需要用到判断框,引入条件结构.例1如图,在边长为4的正方形abcd的边上有一点p,沿着bcda的方向由点b向点a运动,设点p运动的路程为x(0x12),apb的面积为y,画出y关于x的关系式的程序框图.分析随着点p的位置不同,apb的面积与路程x有不同的对应关系,所以需要先判断点p的位置,这就需要用到条件结构.先根据题意写出算法,再根据算法画出程序框图.即第一步,按照题意,y与x的关系满足分段函数:y第二步,用合适的含条件结构的程序框图表示该分段函数.解程序框图如图所示.点评该题中的分段函数是分三段的函数,需引入两个判断框.至于判断框的内容是没有顺序的,但与下一图形的内容或操作必须相互对应.同时,在画程序框图时,要特别注意图形符号的规范性.3.循环结构如果问题中进行了重复的运算,且有相同的规律,就可根据需要引入相关变量,利用这些规律组成一个循环体,用循环结构来解决.例2某机械厂为增加产值进行了技术革新.据统计2009年的生产总值为500万元,技术革新后预计每年的生产总值比上一年增加5%,问最早要到哪一年生产总值才能超过600万元,试用程序框图表示.分析用变量n,a分别表示所经过的年数和生产总值的数量,注意变量的初始值以及递加的值是多少.由题意知第n年后的生产总值为a500(10.05)n,此时为(2009n)年.由于题中进行了重复的运算,故应引入循环结构.解程序框图如图所示.点评在本例中,给出了当型循环结构的框图,同学们可以自行完成直到型循环结构.4算法与函数的交汇一、顺序结构与函数的交汇例1输入一个实数,画出求函数yx33x7的值的一个程序框图.解程序框图如图所示.点评一般的,对于一次函数、二次函数、高次函数等的求值问题,通常采用顺序结构.二、条件结构与函数的交汇例2假设到银行办理个人异地汇款时,银行要收取一定的手续费,汇款不超过100元,收取1元手续费;超过100元但不超过5000元,按汇款额的1%收取手续费;超过5000元,一律收取50元手续费.试写出汇款额为x元时,银行收取手续费y元的计算方法,并画出程序框图.解本题是一个实际问题,应先建立数学模型:y由此可知,求手续费,需先判断x的取值范围.故应用条件结构描述,程序框图如图所示.点评对于三段或以上的分段函数,可以写成嵌套式条件结构,也可以用顺序结构一段一段地讨论.三、循环结构与函数的交汇例3已知函数yx22x5,x20,20,且xz,画出求该函数最大值的程序框图.分析因为所给函数是二次函数,其定义域是x|20x20,xz,即函数只能在20,20内取整数,因此,只要求出函数的自变量对应的每一个函数值,从中找出最大值便可以解决问题.解程序框图如图所示.点评一般地,对一些有规律的重复计算的算法,如累计求和、累乘求积等问题通常需要用循环结构来执行.同时要注意,循环结构不能是永不休止的“死循环”,必须在某一条件下终止循环,这就需要条件结构来进行判断.所以说,循环结构中一定包括条件结构.总之,函数与算法虽各自独立,但我们可以从内涵与外延两个方面找到它们的交汇点.因此,我们平时要注意多联系、多思考,以便更好地挖掘算法中的函数思想,更好地把握并灵活应用算法中的函数思想.5解读输入、输出、赋值语句一、输入、输出语句输入语句的一般格式为若有多个输入的量,需要一个一个输入,计算机可以给出提示框,这时的输入格式为“提示内容”一般是提示用户输入什么样的信息.input语句可以给多个变量赋值,如input“三角形的三条边长为”;a,b,c.输出语句的一般格式为上述输出的只是一个值,若要连同式子一起输出,则格式为输入、输出语句的提示内容要放到“”内,提示内容和表达式之间用“;”隔开,变量之间用“,”隔开.例1已知正四棱柱的底边长a和高h,试编写程序,计算该四棱柱的体积.解inputainputhprint“四棱柱的体积为”;h*a2end或input “四棱柱的底边长是”;ainput “四棱柱的高是”;hprint “四棱柱的体积为”;h*a2end点评本题给出了两个程序,区别是有没有提示内容.其本质是一样的,只是程序二更好些,便于使用者操作.另外,语句是面向计算机的,格式不对就出错或者拒绝执行,所以使用语句时特别讲究格式规范,哪怕一个标点也要注意.二、赋值语句赋值语句的一般格式为赋值语句中的“”叫做赋值号,计算机执行赋值语句时,先计算“”右边的表达式,然后将结果赋给左边的变量,它和数学中的等号不同.赋值号“”左边只能是变量,不能是表达式等;赋值号的右侧可以是常数,也可以是表达式,对于数学表达式,程序会先将表达式的值求出,再赋给左边的变量.例2在一次数学考试中,小明、小亮、小强的成绩分别为a,b,c.后来发现统计错了,a应为小亮的成绩,b为小强的成绩,c为小明的成绩,试编写一个程序,更正成绩单,并输出.分析本题实际上是交换三个数的值,将a的值给b,b的值给c,c的值给a.解程序如图input“三位同学的成绩分别为”;a,b,cxaaccbbxprint“三位同学的真正成绩分别为”;a,b,cend点评引入的第四个变量x的作用是存放变量a的值,在数的交换问题中常常要再引入一个变量,否则会造成数值的丢失.6条件语句小聚一、常用的条件语句条件语句是用来表达算法中的条件结构的,主要有两种形式,一种是“ifthenendif”语句,一种是“ifthenelseendif”语句.其中,“endif”是条件语句的结束标志.当判断条件成立与否都需要执行某操作时,使用“ifthenelseendif”语句;当条件判断后只需执行一种操作时,使用“ifthenendif”语句.例1运行如图所示的程序,输出的y与输入的x满足的关系式为_.inputxifx8then y2xelsey3*x+1end ifprint yend分析本题中使用的是“ifthenelseend if”语句.当条件成立时,执行语句“y2x”,不成立时,执行语句“y3*x+1”,故y=答案y点评求分段函数的值是条件语句的重要应用之一.二、条件语句的复合当问题比较复杂,需要执行的分支较多时,可多次使用条件语句,并列或嵌套使用.并列形式如图:if条件1then语句体1end ifif条件2then语句体2end if嵌套形式如图:if条件1then语句体1elseif条件2then语句体2else语句体3end ifend if注意:一般要求一个“if”都要有一个“endif”与其对应;在用条件语句的嵌套书写程序时,要弄清哪个“if”对应哪个“endif”;书写时,注意每一层要对齐.例2已知a,b,c三个实数中,有且只有一个是负数,设计一个程序,筛选出这个负数.分析需要对这三个数逐一进行判断,故用条件语句的并列形式或嵌套形式.解程序如图.input“a,b,c”;a,b,cifa0thenprintaelseifb0thenprintb elseprintc end ifend ifend7透析循环语句循环语句是用来实现算法中的循环结构的,主要用于处理一些需要反复执行的运算任务.一、两种循环语句1.while语句(1)格式:如图.while条件循环体wend(2)功能:用于实现当型循环.(3)工作原理:先判断条件是否成立,如果成立,则执行循环体;然后返回到while语句再判断条件是否成立,如果成立,再执行循环体,这个过程反复执行,直到返回后条件不成立为止,这时不再执行循环体,直接跳出循环,执行“wend”后面的语句.循环体可能一次也不执行.2.until语句(1)格式:如图.do循环体loop until条件(2)功能:用于实现直到型循环.(3)工作原理:先执行一次循环体,然后判断“loop until”后面的条件是否成立,如果条件不成立,返回重新执行循环体,这个过程反复执行,直到“loop until”后面的条件成立为止.这时跳出循环体,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国美术史试题及答案
- 2025年飞行执照测试题及答案
- DB65T 4777.2-2024 社区视频信息结构化处理系统 第2部分:接口协议要求
- 幼资面试题库及答案
- 高速防护栏施工劳务合同(3篇)
- 2025公务员英雄面试题及答案
- 2025公务员天灾面试题及答案
- 餐饮连锁厨师团队合作协议
- 影像专业面试题目及答案
- 2025年中医基础理论试题及答案
- 高龄患者PICC导管静脉血栓形成的个案分享课件
- 中国骨折内固定术后感染诊断与治疗专家共识
- 食品安全与日常饮食智慧树知到期末考试答案章节答案2024年中国农业大学
- 基础护理学第七版题附有答案
- (正式版)HGT 20593-2024 钢制化工设备焊接与检验工程技术规范
- 200个句子涵盖高中英语3500词汇
- 光线传媒公司章程
- 二手车产品目录
- 弹塑性力学讲稿课件
- 护坡工程竣工汇报
- 急诊科护士的病人家属安抚与沟通
评论
0/150
提交评论