教学内容:2.1算法与程序2.2结构化程序设计2.3结构化程序算法描述2.4面向对象设计简介教学要求:1.掌握算法的基本概念,算法的描述方法。2.掌握程序流程图、N_S图的描述方法。3.掌握结构化程序设计的方法。第2章程序设计基础知识2.1算法与程序存储程序和程序控制是现代数字电子计算机自动工作的基本原理。著名计算机科学家沃思(NikiklausWirth)对程序的描述,提出一个公式:程序=数据结构+算法一、计算机解题过程1.分析问题2.确定处理方案(设计方案)3.确定计算机的操作步骤4.编写程序5.调试和运行程序6.整理资料文档二、算法所谓算法,通俗地讲就是一种解题方法,所要采取的确定的有限的解题步骤。计算机解题的算法,严格地讲是由若干条指令组成的有穷序列。例如,求出两个整数的和的算法描述如下:(1)定义3个变量,并给3个变量分别分配内存空间,用于存放整数值;(2)给2个变量,分别赋给26、16两个整数;(3)求出两个整数和的数值,赋给第三个变量;(4)输出第三个变量的值(5)运行结束。三、算法的特性(5个规则)(1)算法的有穷性。算法中执行步骤在执行有穷步后结束,是有限的,每一条指令执行次数都是有限的。(2)算法的可行性。算法中操作步骤都是通过已经实现的基本操作指令执行有限次完成,每条指令的执行时间都是有限的,保证了整个算法的实现。(3)输入,一个算法有0个或多个输入的外界量。(4)输出,一个算法有一个或多个输出的量,它们是与输入有某种关系的量。(5)算法的确定性。算法中的每一个操作的含义必须明确,无二义性。一定条件下执行路径也是唯一的。四、算法分析(4条原则)算法分析的4条原则:(1)一个算法必须是正确的,符合计算机所要求解的题目,能得到预期的结果。(2)求解一个问题,执行算法所需要化费的时间。(3)求解一个问题,执行算法所需要占用的存储空间。(4)编制的算法要求条理清晰、易于理解、易于编码、易于调试。五、程序程序是由计算机语言的语句序列组成的文件。程序应包括对处理对象的描述和对处理规则的描述。处理对象是数据或信息,处理规则是指动作和步骤,即计算机解题的算法。六、程序与算法的区别(1)算法可以采用自然语言、伪代码、流程图,N-S图,PAD图来进行描述。程序只能用计算机语言来编写。(2)程序中的指令必须是可以执行的,而算法中的指令描述无此限制。(3)算法必须满足有穷性,程序不一定满足有穷性。一、什么是程序设计用计算机语言把解题步骤编写成计算机可执行的指令序列的过程,称为程序设计。计算机程序设计技术是设计、程序编制和调试程序的方法和过程。二、什么是结构化程序设计结构化程序应满足3个条件:(1)程序只有一个入口和一个出口;(2)程序中不应该存在永远不执行的语句;(3)不应该产生死循环,无休止运行程序。2.2结构化程序设计三、程序设计分类按照程序设计风格来分类,可以分为以下3种:(1)逻辑式程序设计。(2)函数式程序设计。(3)对象式程序设计。按照结构性质来分类,程序设计分为以下2种:(1)非结构化程序设计。在20世纪50~60年代,程序设计的初级阶段,程序的编写可以不受约束。(2)结构化程序设计。程序设计中强调数据结构、强调程序的模块化,采用单入口单出口的控制结构的程序设计方法。四、结构化程序的3种基本结构1.顺序结构顺序结构中的各个模块是按照它们出现的先后顺序执行的。2.选择结构选择结构先判断选择条件,根据判断的逻辑值,确定执行其中的某一个模块。3.循环结构循环结构先判断循环条件,满足条件重复执行循环体包含的执行块,直到循环条件不满足,终止循环。五、结构化程序设计方法(1)结构化程序设计的基础是由BohunJacopini证明的数学定理:任何程序逻辑都可用顺序结构、选择结构、循环结构3种基本结构来表示。这3种基本控制结构的共同特点是一个入口和一个出口。(2)结构化程序设计强调程序结构的规范化因而结构化程序的结构清晰,易于编制和维护。(3)结构化程序设计的核心是分层结构和模块结构。一、程序流程图程序流程图是用规定的图形、指向线和文字说明来表示算法的一种图形。程序流程图的基本符号:(1)椭圆形图形:终端框表示算法的开始与结束(2)矩型图形:处理框表示算法的各种处理功能(3)菱形图形:判断框表示算法的条件转移操作(4)平形四边形:表示算法的输入/输出操作(5)预定义图形:预定义框表示算法调用的子算法(6)圆点图形:引入引出连接符表示流程图的延续(7)指向线:指向线指引流程图中的方向2.3结构化程序算法描述二、程序流程图的基本结构AB条件PAFTABTF条件P图2.1顺序结构流程图图2.2单分支结构流程图图2.3双分支结构流程图图2.4当循环结构流程图ATF条件PA条件PTF图2.5至到循环结构流程图二、程序流程图的基本结构(续)三、N-S图N-S图用层层嵌套的方框图形来描述程序算法,避免了流程图中出现的流程线,有效控制了无条件转移,体现了结构化描述方法。四、N-S图的基本结构框图条件PTFAB图2.6双分支结构流程图条件PTFA图2.7单分支结构流程图五、PAD图PAD是英文词组ProblemAnalysisDiagram的缩写。用PAD图描述程序算法的特点是自上而下和自左向右展开描述。当条件P为真AA直到条件P为真图2.8当循环结构流程图图2.5直到循环结构流程图面向对象的程序设计方法引进了类、对象、属性、方法、事件等许多新的概念。面向对象的程序设计通过把类、对象、属性、方法、事件作为最基本的构件来构造问题的模型。1.属性(Property)属性用来表示对象的状态,即对象所具有的性质和特点。2.事件(Event)事件是一种预先定义好的特定动作,可以被系统或用户激活。用户可以编写相应的代码对此动作进行响应。2.4面向对象设计简介3.方法(Method)对象能够执行的一个操作称为方法,方法也称为方法程序,即类中所定义的服务。4.类(Class)类是一组对象的属性和行为特征的抽象描述。类是具有共同属性、共同操作性质的对象的集合。类就象是一个模板,对象都是由类生成的,类定义了对象所有的属性、事件和方法,从而决定了对象的属性和它的行为。类具有继承性、封装性和多态性等特性。同学们再见程序设计基础