1、算 法1.算法的概念:由基本运算及规定的运算顺序所构成的完整的解题步骤,或者是按照要求设计好的有限的计算序列,并且这样的步骤或序列能解决一类问题。算法的五个重要特征:(1)有穷性:一个算法必须保证执行有限步后结束;(2)确切性:算法的每一步必须有确切的定义;(3)可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次即可完成;(4)输入:一个算法有0个或多个输入,以刻划运算对象的初始条件。所谓0个输入是指算法本身定出了初始条件。(5)输出:一个算法有1个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的。2.程序框图也叫流程图,是人们将思考的过程和工作的顺序进行分析、整理
2、,用规定的文字、符号、图形的组合加以直观描述的方法(1)程序框图的基本符号 起止框任何流程图都不可缺少的,它表明程序的开始和结束,所以一个完整的流程图的首末两端必须是起止框。 输入输出框表示数据的输入或结果的输出,它可用在算法中的任何需要输入、输出的位置 处理框是采用来赋值、执行计算语句、传送运算结果的图形符号判断框判断框一般有一个入口和两个出口,有时也有多个出口,它是惟一的具有两个或两个以上出口的符号,在只有两个出口的情形中,通常都分成“是”与“否”(也可用“Y”与“N”)两个分支用带有箭头的流程线连接图形符号.(2)画流程图的基本规则使用标准的框图符号从上倒下、从左到右开始符号只有一个退出
3、点,结束符号只有一个进入点,判断符号允许有多个退出点判断可以是两分支结构,也可以是多分支结构语言简练循环框可以被替代3.三种基本的逻辑结构:顺序结构、条件结构和循环结构(1)顺序结构顺序结构描述的是是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的。(2)条件结构分支结构的一般形式条件处理是否条件处理1处理2是否两种结构的共性:一个入口,一个出口。特别注意:一个判断框可以有两个出口,但一个条件分支结构只有一个出口。结构中每个部分都有可能被执行,即对每一个框都有从入口进、出口出的路径。以上两点是用来检查流程图是否合理的基本方法(当然,学习循环结构后,循环结构也有此特点)提醒:
4、解决分段函数的求值等问题,一般可采用条件结构来设计算法.(3)循环结构的一般形式在一些算法中,经常会出现从某处开始,按照一定条件,反复执行某一处理步骤的情况,这就是循环结构,反复执行的处理步骤为循环体,显然,循环结构中一定包含条件结构。循环结构又称重复结构,循环结构可细分为两类:(1)如图所示,它的功能是当给定的条件P1成立时,执行A框,A框执行完毕后,再判断条件P1是否成立,如果仍然成立,再执行A框,如此反复执行A框,直到某一次条件P1不成立为止,此时不再执行A框,从b离开循环结构。 A P1? b (2)如下图所示,它的功能是先执行,然后判断给定的条件P2是否成立,如果P2仍然不成立,则继
5、续执行A框,直到某一次给定的条件P2成立为止,此时不再执行A框,从b点离开循环结构。 A P2? 不成立 成立b 提醒:对于有规律的计算问题,一般可采用循环结构设计算法.4.算法的基本语句满足条件?语句1语句2是否赋值语句:在表述一个算法时,经常要引入变量,并赋给该变量一个值,用来表明赋给某一个变量的一个具体的确定值的语句叫做赋值语句.赋值语句的一般格式:变量名=表达式“=”的意义和作用:赋值语句中的“=”号,称作赋值号.赋值语句的作用:先计算出赋值号右边表达式的值,然后把该值赋给赋值号左边的变量,使该变量的值等于表达式的值.关于赋值语句,需要注意几点:赋值号左边只能是变量名,而不是表达式.例
6、如都是错误的.赋值号左右不能对换.赋值语句是将赋值号右边的表达式赋值给赋值号左边的变量.例如:,表示用的值替代变量原先的取值,不能改写成,因为后者表示用Y的值替代变量X的值.不能利用赋值语句进行代数式(或符号)的演算.在赋值语句中的赋值符号右边的表达式中的每一个变量都必须事先赋值给确定的值,不能用赋值语句进行如化简,因式分解等演算,如是不能实现的.在一个赋值语句中只能给一个变量赋值,不能出现两个或多个“=”.赋值号和数学中的等号的意义不同. 赋值号左边的变量如果原来没有值,则在执行赋值语句后,获得一个值.例如等;如果原来已经有值,则执行该语句后,以赋值号右边表达式的值代替该变量的原值,即将原值
7、“冲掉”.例如:在数学中是不成立的,但在赋值语句中,意思是将的原值加1再赋给,即的值增加1.条件语句IF 条件 语句1ELSE语句2END 算法中的条件结构是由条件语句来表达的,是处理条件分支逻辑结构的算法语句。它的一般格式是:当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句1,否则执行ELSE后的语句2。其对应的程序框图为:(如下图)在某些情况下,也可以:IF 条件 语句END 满足条件?语句是否计算机执行这种形式的条件语句时,也是首先对IF后的条件进行判断,如果条件符合,就执行语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句。其对应的程序
8、框图为:(如下图)条件语句的作用:在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到何处去。需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理。循环结构算法中的循环结构是由循环语句来实现的。对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(WHILE型)和直到型(for型)两种语句结构。即WHILE语句和UNTIL语句。(1)WHILE语句的一般格式是:WHILE 条件循环体END其中循环体是由计算机反复执行的一组语句构成的。WHLIE后面的“条件”是用于控制计算机执行循环体或跳出循环体的。当计算机遇到WHILE语句时,先判断条件的真假,如果条件符
9、合,就执行WHILE与END之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止。这时,计算机将不执行循环体,直接跳到END语句后,接着执行END之后的语句。其对应的程序结构框图为:(如下图)满足条件?循环体是否(2)for语句的一般格式是:for 循环变量=初值:步长:终值循环体end 满足条件?循环体是否其对应的程序结构框图为:(如上图) 从for型循环结构分析,计算机执行该语句时,先把初始值赋给循环变量,记下终值和步长,并比较初值和中止,如果初值超过终值,就执行end以后的语句,否则执行for语句下面的语句,执行到end语句时,计算
10、机让循环变量增加一个步长值,然后用增值后的循环变量值与终值比较,如果超过终值,就执行for语句以后的语句.是先执行循环体后进行条件判断的循环语句。提醒:在WHILE语句中,是当条件满足时执行循环体,而在for语句中,是当条件不满足时执行循环体。如(1)某纺织厂1997年的生产总值为300万元,如果年生产增产率为5,计算最早在哪一年生产总值超过400万元。分析:从1997年底开始,经过x年后生产总值为300(1+5)x,可将1997年生产总值赋给变量a,然后对其进行累乘,用n作为计数变量进行循环,直到a的值超过400万元为止。解:程序框图为: 开始a400?a=a*pa=300,p=1.05,n=1997n=n+1输出n结束否是(2)新课标要求学生数学模块学分认定由模块成绩决定,模块成绩由模块考试成绩和平时成绩构成,各占50%,若模块成绩大于或等于60分,获得2学分,否则不能获得学分(为0分),设计一算法,通过考试成绩和平时成绩计算学分,并画出程序框图。解:(1)算法:第一步:输入考试成绩C1和平时成绩C2, 第二步:计算模块成绩第三步:判断C与60的大小,输出学分F 若,则输出F=2;否是开始输入C1和C2输出F=2输出F=0结束若,则输出F=0。 (2)程序框图:(如图)