第3章_控制语句.doc
《第3章_控制语句.doc》由会员分享,可在线阅读,更多相关《第3章_控制语句.doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章算法设计的基本方法教学目的:通过本章的学习,使学生掌握算法的基本知识,了解关系运算与逻辑运算,学会使用选择结构和循环型结构进行程序设计。知识点:1.算法的概念、特点及描述2.判断(关系运算与逻辑运算)3.选择型程序设计4.循环型程序设计重点:1.算法的描述2关系运算符和关系表达式3逻辑运算符和逻辑表达式4条件运算符及条件表达式5IF语句的格式使用难点:复杂条件的表示;IF语句的正确使用。3.1算法 程序是计算机的灵魂 算法是程序的灵魂一个程序应包括两个方面的内容: 著名计算机科学家沃思提出一个公式: 数据结构 + 算法 = 程序 对数据的描述:数据结构(data structure) 对
2、操作的描述:算法(algorithm)完整的程序设计应该是:数据结构算法程序设计方法语言工具3.1.1 算法的组成要素和基本性质(1) 算法的概念解决问题的一种方法或过程的描述,(是对特定问题求解步骤的一种描述。)一个问题可能有多种算法对应。或算法是由一系列操作组成的。(2)算法的组成要素 操作:与问题和所用的工具有关。 控制结构:每一个算法都要由一系列的操作组成。同一操作序列,按不同的顺序执行,就会得出不同的结果。控制结构即如何控制组成算法的各操作的执行顺序。控制结构:顺序控制结构:语句是按照书写顺序执行的,也就是语句的执行顺序与书写顺序一致。只有这种结构不可能处理复杂问题。u 选择控制结构
3、:当程序执行到某一条语句时,要进行某种判断,从两支或多分支选择其中一条执行。u 循环控制结构:将一条或多条语句重复执行若干次。有了选择和循环控制结构,就可以设计复杂大型的程序了。(3)算法的性质 效性:算法所规定的操作都应能有效执行的。 定性:描述的操作应当具有明确的含义;序列中只有一个初始动作,每一动作仅有一个后继动作;序列终止表示问题得到解答或问题没有解答,不能没有任何结论。 穷性:所规定的操作序列必须在允许的时间内结束。 输入 输出3.1.2算法的描述工具 1) 流程图方法:用一些图框表示各种类型的操作,用线表示这些操作的执行顺序。过程判断数据预定义过程起止流程线连接注释举例:用流程图描
4、述从3个数据中取最大数的算法。a=b输入a,b,cmax=a真假max=bmax=c真假输出max输出c开始结束i=maxmax=n 2) NS图l 方法:每一种基本结构都是一个矩形框,整个算法可以像堆积木一样堆成。S1S2S3PS1S2当PS假真(c)当型重复结构(a)顺序结构 (b)选择结构举例:用NS图描述从3个数据中取最大数的算法。算法1(使用选择结构)a=bmax=amax=b输入a,b,c假真max=c输出max输出c真假算法2(使用循环结构)当i=maxmax=n真假输入n初始化:max=0,i=1输出max 3) 伪代码l 举例:用伪代码描述从3个数据中取最大数的算法。算法1(
5、使用选择结构)输入a,b,c;if(a=b)max=a;else max=bif(max=c) 输出max;else 输出c;算法2(使用循环结构)初始化:max=-32768,i=1;当(i=max) max=n;)输出max;3.1.3结构化程序设计方法由三种基本结构顺序组成的算法结构,可以解决任何复杂的问题。由基本结构所构成的算法属于“结构化”的算法,它不存在无规律的转向,只在本基本结构内才允许存在分支和向前或向后的跳转。一个结构化程序 就是用高级语言表示的结构化算法。用三种基本结构组成的程序必然是结构化的程序,这种程序便于编写、便于阅读、便于修改和维护。结构化程序设计强调程序设计风格和
6、程序结构的规范化,提倡清晰的结构。 构化程序设计方法的基本思路是:把一个复杂问题的求解过程 分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。 模块设计的方法:模块化设计的思想实际上是一种“分而治之”的思想,把一个大任务分为若干个子任务,每一个子任务就相对简单了。拿到一个程序模块以后,根据程序模块的功能将它划分为若干个子模块,如果这些子模块的规模还嫌大,还再可以划分为更小的模块。这个过程采用自顶向下方法来实现。模块一般不超过50行。分子模块时应注意模块的独立性,即:使一个模块完成一项功能,耦合性愈少愈好。3.2判断3.2.1命题的“真”、“假”与C语言中的逻辑值 逻辑(布尔)值
7、:“真”或“假” 早期的C语言不提供专门的逻辑(布尔)类型,规定用非0值表示“真”,用0值表示“假”。这样,不管任何表达式,只要其值为非0(包括负数),就说明其为“真”;只要其值为0,就说明其为“假”。 在C99中,增加了_Bool类型,并增加了头文件,在其中定义了宏bool、true和false,用true存储1,用false存储0。关系表达式和逻辑表达式是C语言中描述命题的两种基本形式。3.2.2关系运算与关系表达式 关系运算符 (左结合) = = = != 较高 较低 关系表达式u 用关系运算符将运算对象连接成的式子 例如:12=c 等价于 a = ( b=c ) 与 (a=b)=c 不
8、等价 关系运算符优先于赋值,低于算术 说明:u 关系运算的结果应该是逻辑值。C语言用数值用 1 表示逻辑真, 0 表示逻辑假例如: 75 的值是 1,57 的值是 0 ab的值是 0, a= z u 逻辑运算符的优先级和结合性:l !是单目运算符,右结合,高于算术l & 和 | 是双目运算符,左结合,高于赋值运算符,低于关系运算符。逻辑运算规则从左到逻辑进行逻辑计算l 运算对象为非0表示逻辑真l 运算对象为 0 表示逻辑假逻辑运算的结果为 0 或 1例如设:a=15,b=0,c=-2 a & b & c 结果为0 a | b | c 结果为1 (a+c) | b & c 结果为1u 运算按照从
9、左至右的顺序进行,一旦能够确定逻辑表达式的值,就立即结束运算关系与逻辑运算符的应用u 表示数学公式abc :ab & bcu 判断a, b, c三条线段能否组成一个三角形:a+bc & a+cb & b+cau a, b不同时为负3.3选择型程序设计选择型程序描述了这样的求解规则:在不同的条件下所应进行的相应操作。3.3.1 ifelse结构1)双分支结构l 语句一般格式if (表达式) 语句1 else 语句2 l 功能:计算表达式的值,如果它的值是一个非0值(逻辑真),就执行内嵌语句1,之后跳过内嵌语句2,执行后续语句;否则跳过内嵌语句1,执行内嵌语句2,之后执行后续语句。 算法描述 表达
10、式非0 T F 语句1 语句2N-S结构图 语句1 语句2流程图NY表达式非0?例求一个数的绝对值。2)单分支结构l 语句一般格式if (表达式) 语句l 功能:计算表达式的值,如果是一个非0值(即逻辑真),就执行内嵌语句,否则(即逻辑假)跳过内嵌语句,顺序执行后续语句。 l 算法描述 表达式非0 T F 语句N-S结构图语句流程图NY表达式非0?l 例如:u if (x0) m+; u if ( ab ) c=a; a=b; b=c; u 求3个数中最大数 zxmax=z(空)max = x假真yxmax=y(空)真假zy真假return(max)3)if语句的嵌套如果if的内嵌语句中又使用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 控制 语句
限制150内