第十一章算法初步复习课含每节复习.doc_第1页
第十一章算法初步复习课含每节复习.doc_第2页
第十一章算法初步复习课含每节复习.doc_第3页
第十一章算法初步复习课含每节复习.doc_第4页
第十一章算法初步复习课含每节复习.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网址:第十一章 算法初步章节结构图111 算法的含义及程序框图(一)复习指导在数学上,现代意义上的“算法”通常是指可以用计算机来解决的某一类问题的程序或步骤算法的特点是程序性、明确性、有限性、普适性、不唯一性程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形要掌握各个图形的形状、作用及使用规则算法的基本逻辑结构有三种,即顺序结构、条件分支结构和循环结构其中顺序结构是最简单的结构,也是最基本的结构,循环结构必然包含条件结构,无论怎样复杂的逻辑结构,都可以通过这三种结构来表达条件分支结构主要用在一些需要依据条件进行判断的算法中,如分段函数的求值,数据的大小关系等问题中循环结构主要用在一些有规律的重复计算的算法中,如累加求和,累乘求积等问题中在循环结构中,要注意根据条件,设计合理的计数变量、累加变量等,特别要注意循环结构中条件的表述要恰当,精确,以免出现多一次循环或少一次循环的情况构成程序框的图形符号及其作用程序框名称功能起止框表示一个算法的起始和结束,是任何流程图不可少的输入、输出框表示一个算法输入和输出的信息,可用在算法中任何需要输入、输出的位置处理框赋值、计算,算法中处理数据需要的算式、公式等分别写在不同的用以处理数据的处理框内判断框判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”(二)解题方法指导例1看下面的四段话,其中是解决问题的算法的是( )A把高一5班的同学分成两组,高个子参加篮球赛,矮个子参加拔河比赛;B把高一5班的同学分成两组,身高达到170cm的参加篮球赛,不足170cm的参加拔河比赛;C把a,b的值代入求方程ax=b的解;D数清海滩上有多少粒沙子例2试写出判断直线AxByC=0与圆(xa)2(yb)2=r2(r0)的位置关系的算法例3写出用“二分法”求方程x22=0(x0)的近似解的算法例4给计算机编写一个算法,输入一个自变量x的值,求分段函数的函数值例5画出求使123n2010成立的最小自然数n的值的程序框图(三)体会与感受1重点知识_2问题与困惑_3经验问题梳理_112 基本算法语句(一)复习指导为了实现算法中三种基本的逻辑结构,各种程序设计语言都包括下列算法语句:输入语句、输出语句、赋值语句、条件语句和循环语句1赋值语句在表述一个算法时,经常要引入变量,并赋给该变量一个值用来表明赋给某一个变量一个具体的确定的值的语句叫做赋值语句赋值语句中的格式是:变量名=表达式 其中,赋值语句中的“=”号,称为赋值号在使用赋值语句中需要注意的问题:赋值号左边只能是变量,不能是表达式;赋值号左右不能对换;不能用赋值语句进行代数式的运算;一个赋值语句只能给一个变量赋值,不能给两个或多个变量赋值;赋值号与数学中的等号的意义不同2输入语句在某些算法中,变量的初值要根据情况经常地改变一般我们把程序和初始数据分开,每次算题时,不改变程序部分,只输入相应的初始数据即可这个过程的程序语句用“输入语 句”控制输入语句的一般格式是:变量名=input(“输入提示语”)输入语句要求输入的值只能是具体的常数,不能是函数、变量或表达式,但是可以输入单个或多个字符,用引号引起来3输出语句任何求解问题的算法,都要把求解的结果“输出”所以在任何程序语言中必须有“输出语句”来控制输出输出语句的一般格式是:print(%io(2),输出内容)注意:(1)多个变量值倒序输出;(2)disp语句也表示输出4条件语句条件语句是处理条件分支结构的算法语句条件语句的一般格式是:if 表达式语句序列1;else语句序列2;end5循环语句有规律的重复计算或者在程序中需要对某些语句进行重复的执行,这样就需要用循环语句进行控制循环语句的一般格式是:for 循环变量=初值:步长:终值循环体;end或者是:while 表达式循环体;end注意:(1)“for循环语句”是在循环次数已知时使用的循环,在循环的次数未知时不能使用;(2)“while循环语句”是在未知循环次数的条件下进行的循环,也可以在循环次数已知的循环中使用(二)解题方法指导例1已知圆锥底面的半径和高设计一个程序,求圆锥的表面积例2读下列两个程序回答问题:()上述两个程序的运行结果是(1);(2)()上述两个程序的第三行有什么区别?(1)x=3;y=4;x=y;xy(2)x=3;y=4;y=x;yx例3编写一个程序,使得任意输入的3个整数按从大到小的顺序输出例4分别用两种循环语句写出求12221002的值的程序例5根据下面的程序框图,写出其对应的程序,并说明该程序的功能(三)体会与感受1重点知识_2问题与困惑_3经验问题梳理_5例 题 解 析第十一章 算法初步11.1 算法的含义及程序图例1分析:A:何为高个子,何为矮个子,标准不明确;C:当a0时公式是无效的D:海滩上的沙子数目太多,步骤超出了合理的范围,所以不可取只有B符合算法的三个要求,所以答案是B解:选B说明:本题考查算法的几个要求,如明确性、有限性、普适性等例2分析:直线与圆有三种位置关系:若圆心到直线的距离dr,则直线与圆相离;若dr,则直线与圆相切;若dr,则直线与圆相交因此,我们可先求出圆心到直线的距离d,然后与r比较解:第一步:输入圆心的坐标(a,b),直线方程的系数A,B,C和半径r;第二步:计算z1AaBbC;第三步:计算z2A2B2;第四步:计算第五步:如果dr,则直线与圆相离;第六步:如果dr,则直线与圆相切;第七步:如果dr,则直线与圆相交说明:本题可将二、三、四步合并为一步计算设计算法一定要做到以下要求:(1)写出的算法必须能解决一类问题,并且能够重复使用(2)要使算法尽量简单、步骤尽量少(3)要保证算法正确,且计算机能够执行例3分析:令f(x)x22,则方程x220的解就是函数f(x)的零点二分法的基本思想是:把函数f(x)的零点所在的区间a,b(满足f(a)f(b)0)“一分为二”,得到a,m和m,b根据“f(a)f(m)0”是否成立,取出零点所在的区间a,m或m,b,仍记为a,b对所得的区间a,b重复上述步骤,直到包含零点的区间a,b“足够小”,则a,b内的数可以作为方程的近似解解:第一步:令f(x)x22,给定精确度d第二步:确定区间a,b,满足f(a)f(b)0第三步:取区间中点第四步:若f(a)f(m)0,则包含零点的区间为a,m;否则,含零点的区间为m,b将新得到的含零点的区间仍记为a,b第五步:判断a,b的长度是否小于d或f(m)是否等于0若是,则m是方程的近似解;否则,返回第三步例4分析:此函数为分段函数,如果用程序框图来表示该算法,必然要用到条件分支结构解:该算法用自然语言表述为S1:输入x的值;S2:进行判断,如果x0,则f(x)x2,否则f(x)x2S3:输出结果用程序框图可表示为:说明:画程序框图的规则如下:(1)使用标准的图形符号;(2)框图一般按从上到下、从左到右的方向画;(3)除判断框外,大多数流程图符号只有一个进入点和一个退出点判断框具有超过一个退出点的唯一符号;(4)判断框分两大类,一类判断框“是”与“否”两分支的判断,而且有且仅有两个结果;另一类是多分支判断,有几种不同的结果;(5)在图形符号内描述的语言要非常简练清楚例5分析:由于是累加求和问题,因此应使用循环结构来设计程序框图解:程序框图为或说明:循环结构的关键是要理解“累加变量”S和“nn1”每循环一次,S和n都发生变化注意比较上面两图的区别11.2 基本算法语句例1分析:根据圆锥的表面积等于底面面积与侧面面积的和,我们可以先算出底面面积、侧面面积,然后将两个面积相加,即可求解解: rinput(“radius”);hinput(“high”);lsqrt(r*rh*h);Api*r2;Bpi*r*l;SAB;print(io(2),S)或者disp(S)或者S说明:在Scilab程序语言中,圆周率写成“pi”;乘号“*”一定不能省略;除法用符号“”,不能写成分数的形式;“;”起到隔行、限制输出的作用,若不加分号,则在屏幕上输出该变量disp用来输出数值型变量时不能添加分号例2分析:对于一个变量,我们可以进行多次赋值,赋值号左边的变量如果原来没有值,则执行赋值语句后获得一个值;如果已有值,则执行语句后,以赋值号右边表达式的值代替该变量原来的值,即将原值“冲掉”解:上述两个程序的运行结果是(1)4,4;(2)3,3程序(1)中的第三行是将y的值赋给x,赋值后x的值变为4,y的值不变;程序(2)中的第三行是将x的值赋给y,赋值后y的值变为3,x的值不变说明:可见,用上述程序不能实现两个变量的互换如果用赋值语句实现两个变量的互换,方法是引进第三个变量如要交换a,b的值,只需ca,ab,bc例3分析:我们用a,b,c表示输入的三个整数,比较三个整数,把最大的整数存入变量a中,次大的整数存入b中,最小的整数存入c中算法步骤为:S1:输入三个整数a,b,c;S2:将a与b比较,如果ab,交换它们的值;S3:将a与c比较,如果ac,交换它们的值;(第2步和第3步后,a中存储的已经是最大的整数)S4:将b与c比较,如果bc,交换它们的值;(第4步后,b中存储的是次大的整数,c中存储的是最小的整数)S5:按顺序输出a,b,c解:ainput(“a”);binput(“b”);cinput(“c”);if abta,ab,btendif acta,ac,ct;endif bctb,bc,ct;endprint(2),c,b,a)说明:此题用到的条件语句的格式为:if 表达式语句序列1;end另外,用print输出语句时,多个变量值倒序输出例4分析:若用while语句,循环终止条件为i100,用for语句其步长为1,终止为100解:while语句: for语句:i1;sum0;while i100 sunsumi*1; ii1;endprint(2),sun)sum0;for i11100 sumsumi;endprint(2),sum)说明:(1)利用for循环语句时,要分清步长、变量初值、终值,必须分清循环次数是否确定若确定,两种语句均可使用;若不确定,用while语句但两种循环都以end结束(2)在for循环语句中,循环变量的值与终值比较,结果为真时执行循环体;结果为假时终止循环(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论