授课人:蔡华林程序设计基础1、程序设计语言发展2、程序设计的一般步骤3、算法的概念和算法的表示方法4、程序设计方法与风格5、结构化程序设计6、面向对象的程序设计本章主要内容:程序设计基础1、程序设计语言发展自1946年世界上第一台电子计算机问世以来,计算机科学及其应用的发展十分迅猛,计算机被广泛地应用于人类生产、生活的各个领域,推动了社会的进步与发展。一台计算机是由硬件系统和软件系统两大部分构成的,硬件是物质基础,而软件可以说是计算机的灵魂,没有软件,计算机是一台“裸机”,是什么也不能干的,有了软件,才能灵动起来,成为一台真正的“电脑”。所有的软件,都是用计算机语言编写的。计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。⑴机器语言:返回目录程序设计基础是一种二进制语言,每条语句都是二进制数码表示的指令。优点:计算机能直接识别,运行速度快。缺点:难懂、难写、难记,难以修改和维护。⑵汇编语言:是一种和机器语言一一对应的符号化的语言,由机器语言符号化而来,用助记符和符号地址来表示指令。如:ADD表示加法,MOVE表示传送。优点:较直观、易懂、易用、执行速度快,占用内存空间少。缺点:各种机器不通用。返回目录程序设计基础⑶高级语言:是一种与硬件结构及指令系统无关,表达方式较接近自然语言的程序设计语言。如FORTRAN、PASCAL、C、BASIC等优点:描述问题能力强,通用性、可读性、可维护性都较好。缺点:执行速度较慢,编制访问硬件资源的系统软件较难。高级语言的发明是计算机发展史上最惊人的成就。返回目录程序设计基础在不断设计出新的高级语言的同时,上述程序设计语言本身也在不断的发展。如:VisualBASIC(VB)VisualC++(VC)VisualFoxPro(VFP)Java是SunMicroSystem公司在1995年5月推出的一种面向对象的解释执行的编程语言。返回目录程序设计基础2、程序设计的一般步骤用计算机去解决一个特定问题时,应首先对这个问题进行分析,将问题的解决过程分解为一些明确的、可以用有限个计算机指令去实现的步骤。现在人们所使用的大多数计算机系统,就是按照事先确定的方案,执行确定的操作步骤,最后得到所需要的结果。其一般过程如图所示:分析问题建立模型确定算法编写程序调试运行整理结果返回目录程序设计基础3、算法的概念和算法的表示方法科学技术的进步,社会生产力的发展,都是由于相关的问题得到不断的解决的结果。在当今社会中,由于信息化概念的提出,许多问题的解决都使用到了电子计算机。(一)算法的定义所谓算法,是指在使用计算机解题前,需要将解题方法转换成一系列具体的在计算机上可执行的步骤,这些步骤能够清楚的反映解题方法一步步“怎么做”的过程,这个过程就是通常所说的算法。返回目录程序设计基础(二)算法的特点1、有穷性(有限性)。任何一种提出的解题方法都是在有限的操作步骤内可以完成的,哪怕是失败的解题方法。2、确定性(唯一性)。解题方法中的任何一个操作步骤都是清晰无误的,不会使人产生歧义或者误解。3、可行性(能行性)。解题方法中的任何一个操作步骤在现有计算机软硬件条件下和逻辑思维中都能够实施实现。4、有0到多个输入。解题算法中可以没有数据输入,也可以同时输入多个需要算法处理的数据。5、有1到多个输出。一个算法执行结束之后必须有数据处理结果输出,哪怕是输出错误的数据结果,没有输出的算法使毫无意义的。返回目录程序设计基础(三)、算法的表示方法算法的常用表示方法有如下三种:1、使用自然语言描述算法2、使用流程图描述算法(理解)3、使用伪代码描述算法返回目录程序设计基础4、程序设计方法与风格程序设计是一门技术,需要相应理论、技术、方法和工具来支持。程序设计方法和技术的发展而言,主要经过了结构化程序设计和面向对象的程序设计阶段。当今主导的程序设计风格是“清晰第一,效率第二”的观点。养成良好的程序设计的设计风格,主要考虑下述的因素:返回目录程序设计基础1.源程序文档化源程序文档化应考虑如下几点:(1)符号名的命名:符号名的命名有一定含义,便于理解(2)程序注释:正确的注释帮助读者理解程序(3)视觉组织:程序层次清晰2.数据说明的方法数据说明应考虑如下几点:(1)数据说明的次序规范化(2)说明语句中变量安排有序化。(3)使用注释来说明复杂数据结构3.语句的结构程序应该简单易懂,语句构造应该简单直接返回目录程序设计基础4.输入和输出无论是批处理的输入和输出方式,还是交互式的输入和输出方式,在设计和编程时都应该考虑对所有的输入数据都要检验数据的合理性,输入格式要简单,输入一批数据时,最好使用输入结束标志等等5、结构化程序设计(1)结构化程序设计的原则结构化程序设计方法的主要原则可以概括为自顶向下,逐步求精,模块化,限制使用goto语句。1.自顶向下:程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。返回目录程序设计基础2.逐步求精:对复杂问题,应设计一些子目标作为过渡,逐步细化。3.模块化:一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,把每一个小目标称为一个模块。4.限制使用goto语句(1)GOTO语句确实有害,应当尽量避免;(2)完全避免使用GOTO语句也并非是个明智的方法,有些地方使用GOTO语句,会使程序流程更清楚、效率更高。(3)争论的焦点不应该放在是否取消GOTO语句上,而应该放在用什么样的程序结构上。其中最关键的是,应在以提高程序清晰性为目标的结构化方法中限制使用GOTO语句。返回目录程序设计基础(2)结构化程序设计的基本结构与特点程序设计语言中,提供了以下三种基本的控制结构:其对应的结流程图如下所示:顺序结构分支结构循环结构返回目录程序设计基础(1)顺序结构:一种简单的程序设计,最基本、最常用的结构;(2)选择结构:又称分支结构,包括简单选择和多分支选择结构,可根据条件,判断应该选择哪一条分支来执行相应的语句序列;(3)重复结构:又称循环结构,可根据给定条件,判断是否需要重复执行某一相同程序段。6、面向对象的程序设计(请同学们自行学习)返回目录返回首页