1、算法初步,第一章,章末总结,第一章,答案通常是指按照一定的规则解决某一类问题的明确和有限的步骤 有限性、确定性、可行性、有序性、普遍性、不唯一性 顺序结构 条件结构 循环结构 直到型循环结构 当型循环结构 INPUT“提示内容”;变量 PRINT“提示内容”;表达式 变量表达式,专题1 算法设计 算法与一般意义上具体问题的解法既有区别又有联系它们之间是一般与特殊的关系算法是对一类问题的一般解法的抽象和概括算法设计应注意以下步骤: (1)与解决问题的一般方法相联系,从中提炼算法; (2)将问题的步骤划分为若干个可执行的步骤; (3)引入有关的参数或变量对算法步骤加以表达; (4)用最简炼的语言将
2、各个步骤表达出来; (5)算法步骤有些可以重复多次,但最终都必须在有限个步骤内完成,例1 已知平面直角坐标系中的两点A(1,0),B(3,2),写出求线段AB的垂直平分线方程的一个算法,专题2 程序框图的应用 程序框图是用规定的图形和流程线来准确、直观、形象地表示算法的图形画程序框图之前应先对问题设计出合理有效的算法然后分析算法的逻辑结构,画出相应的程序框图,算法的逻辑结构有三种:顺序结构、条件结构和循环结构 条件结构是一种重要的选择结构比如比较两个数的大小、对一组数进行排序筛选等问题都要用到条件结构在利用循环结构画程序框图前,常确定三件事:一是确定循环变量的初始条件;二是确定算法中反复执行的
3、部分,即循环体;三是循环终止的条件,例2 设计一个计算101112200的值的算法并画出程序框图 解析 算法如下: 第一步,使i10. 第二步,使p0. 第三步,使ppi. 第四步,使ii1. 第五步,若i200.则返回第三步;否则,输出p,算法结束,程序框图如图,专题3 程序的编写 算法设计和程序框图是设计程序的基础编写程序的基本方法是“自上而下逐步求精”,步骤如下: (1)把一个复杂的大问题分解成若干相对独立的小问题若小问题仍较复杂,则可以把小问题分解成若干个子问题这样不断地分解使小问题或子问题简单到能直接用程序的三种基本结构甚至是五种基本语句表达清楚为止(2)对应每一个小问题或子问题编写
4、出一个功能上相对独立的程序块来(3)把每一个模块统一组装,完成程序,例3 某高中男子体育小组的50 m赛跑成绩(单位:s)如下: 64,6.5,7.0,6.8,7.1,7.3,6.9,7.4,7.5,7.6,6.3,6.4,6.4,6.5,6.7,7.1,6.9,6.4,7.1,7.0设计一个程序从这些成绩中搜索出小于6.8 s的成绩并画出程序框图,程序框图如下图,专题4 算法案例 算法案例包含三方面的内容:辗转相除法与更相减损术,秦九韶算法,进位制利用辗转相除法或更相减损术可以求两个正整数的最大公约数;利用秦九韶算法可以求多项式的值,利用进位制的知识可以进行进位制之间的转化,例4 354与1
5、357的最大公约数是_ 解析 因为13573543295, 354295159, 295595, 所以59是354与1357的最大公鸡数 答案 59 规律总结 求两个正整数的最大公约数可以采用辗转相除法或更相减损术,如果求三个正整数的最大公约数,应先求两个数的最大公约数,再求这个最大公约数与第三个数的最大公约数,例5 用秦九韶算法求多项式f(x)4x53x45x3x2x当x2时的值 解析 因为f(x)(4x3)x5)x1)x1)x, 所以v04, v142311, v2112527, v3272155, v45521111, v51112222. 所以当x2时,多项式f(x)4x53x45x3
6、x2x的值为222.,例6 (1)将七进制数235(7)转化为十进制数; (2)将五进制数44(5)转化为二进制数 解析 (1)235(7)272371570124. (2)44(5)45145024,所以2411000(2),即44(5)11000(2),规律总结 进制数的转化一般以十进制数为桥梁,先把其他进制数转化为十进制数,再进行转化,特别注意不要忘掉表示进制的基数,思想1 分类讨论思想 在解答某些数学问题时,有时会有多种情况,需对各种情况加以分类,并逐类求解,然后综合得结论,这就是分类讨论思想在具体问题的算法设计中,往往需要根据条件进行逻辑判断,并进行不同的处理(如条件结构和循环结构)
7、,这实际上运用了分类讨论的数学思想方法,解析 算法的程序框图如下图所示,程序如下:,规律总结 在求分段函数的函数值时,由于自变量x的取值不同,其函数值的求法也不同,应先对x的值进行判断,然后根据x的取值选择不同的计算方法,故采用条件语句进行算法设计注意IF和ENDIF要一一对应,思想2 方程思想 方程思想就是分析数学问题中变量间的等量关系,建立方程(或方程组),通过解方程(或方程组)或运用方程的性质去分析、转化问题,使问题获得解决方程思想在算法中有着广泛的应用,特别是求不定方程的整数解,其常规解法就是试值,但如果解的范围比较大,试值的次数就比较多,工作量较大,我们就可以通过循环语句让计算机重复
8、执行,代替人工单一重复的计算,例8 在我国算经十书之一孙子算经中有文:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何请设计程序解决此问题,并画出程序框图,m MOD 32;m MOD 53;m MOD 72. 从m2开始检验条件,若有任何一个不满足,则m加1后再检验条件,直到满足程序框图如下图所示,规律总结 (1)当待解决的问题需要重复相同的步骤时,要实现算法必须通过循环结构,程序的书写也必须用循环语句来描述本例程序框图中,m的值从2开始循环,直到有满足条件的m出现为止 (2)注意程序语言的正确书写: 在编程时,“”应写作“”;“OR”表示“或者”;“AND”表示“并且”,