第一章 绪论 CUMT 12-01-15

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1C++语言程序设计张磊博士副教授zhanglei@cumt.edu.cn2C++语言程序设计张磊博士副教授zhanglei@cumt.edu.cn3第一章绪论——程序设计语言与软件开发4主要内容1.1程序设计语言的发展1.2程序设计的方法1.3程序开发的基本概念1.4算法的基本概念51.1程序设计语言的发展CPU指令系统,由0、1构成的指令码组成;是计算机唯一能识别并直接执行的语言用助记符号描述的指令系统如ADD,SUB;需翻译成机器语言,符号化的机器语言机器语言汇编语言高级语言面向过程面向对象面向应用效率高编程难6机器语言与汇编语言机器语言汇编语言-将机器指令映射为一些易懂的助记符,如ADD、SUB等-优点:与人类自然语言的鸿沟略有缩小,但仍相差甚远-缺点:抽象层次太低,程序员仍需要考虑大量的机器细节不能直接执行,需要编译生成目标程序后才能执行-由二进制指令组成的语言-优点:可以直接执行,效率很高-缺点:与人类自然语言存在着巨大的鸿沟难懂,不易修改,移植性差例如:101111111101例如:ADDX,Y7高级语言高级语言if(x0)y=-x;类似英语和数学表达式-高级语言屏蔽了机器的细节,提高了语言的抽象层次-程序中可以采用具有一定含义的数据命名和容易理解的执行语句,这使得在书写程序时可以联系到程序所描述的具体事物-不能直接被计算机识别,必须经过转换才能被执行例:8两种转换方式解释类语言-由解释器把源程序翻译成机器语言,每翻译一条执行一条,每执行一次就要翻译一次,效率比较低-优点:比较灵活,可以动态地调整、修改应用程序-典型代表:Basic、MATLAB编译类语言-由编译器将源程序编译成目标程序,然后执行目标程序-目标程序可以脱离其语言环境独立执行,可重复运行,使用比较方便,效率较高-典型代表:C、C++9典型的高级语言-FORTRAN:FormulaTranslation1956年,高级语言产生的标志,简洁高效,科学计算主流语言-BASIC:Beginner'sAll-purposeSymbolicInstructionCode1964年,面向大众,特别是大学生-Pascal1970年,结构化程序设计,非常严谨,强调语言的可读性-C1972年,通用的、过程式的编程语言,高效、灵活、功能丰富,主流的系统与软件开发语言-C++1983年,继承C的所有优点,增加面向对象功能10高级语言的发展5254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2BCPLBCC++JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula67Smalltalk80BASICANSI-BASICQBASICVBFORTRAN90CPL11面向对象的语言出发点特点-是高级语言-将客观事物看作具有属性和行为的对象-通过抽象找出同一类对象的共同属性和行为,形成类-通过类的继承与多态实现代码重用-更直接地描述客观世界中存在的事物(对象)以及它们之间的关系优点-使程序能够比较直接地反映问题域的本来面目,能够利用人类认识事物所采用的一般思维方法来进行软件开发121.2程序设计方法的发展面向过程的程序设计方法-最早的程序-目的:用于数学计算-主要工作:设计求解问题的过程-缺点:对于庞大、复杂的程序难以开发和维护面向过程的程序设计方法面向过程的结构化程序设计方法面向对象的方法13面向过程的结构化程序设计设计思路-自顶向下、分而治之,采用模块分解与功能抽象程序结构-按功能划分为若干个基本模块,形成一个树状结构-各模块间的关系尽可能简单,功能上相对独立-每一模块内部均是由顺序、选择和循环三种基本结构组成-其模块化实现的具体方法是使用子程序优点-有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护14面向过程的结构化程序设计缺点-可重用性和数据安全性较差、难以开发大型软件-把数据和处理数据的过程分离为相互独立的实体-当数据结构改变时,所有相关的处理过程都要进行修改-每一种相对于老问题的新方法都要带来额外的开销-图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难15面向对象的方法特点-程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障-通过继承与多态性,可以大大提高程序的可重用性,使得软件的开发和维护都更为方便将数据及对数据的操作方法封装在一起,作为一个整体(对象)对同类型对象抽象出其共性,形成类类通过一个简单的外部接口,与外界发生关系对象与对象之间通过消息进行通信几个基本概念:对象、类、封装、继承、多态性16面向对象的软件工程面向对象的软件工程:面向对象方法在软件工程领域的全面应用-面向对象的分析(OOA)-面向对象的设计(OOD)-面向对象的编程(OOP)-面向对象的测试(OOT)-面向对象的软件维护(OOSM)171.3程序开发的基本概念-源程序/源代码、目标程序/目标代码-翻译程序/编译器:汇编、解释、编译几个基本概念-编写源程序:C++源程序的后缀名为.cpp-编译:生成目标程序-连接:将目标程序和库文件连接生成一个可执行文件.exe-运行调试程序开发过程18程序=算法+数据结构+程序设计方法+语言工具和环境算法:为解决一个问题而采取的方法和具体步骤——著名计算机科学家NikiklausWirth,1976•对数据组织的描述:数据的类型和组织形式,即数据结构•对操作流程的描述:即操作步骤,也就是算法一个程序应该包括:1.4算法的基本概念19学习程序设计的目的不仅仅是学习一种特定的语言,而是学习进行程序设计的一般方法掌握了算法就是掌握了程序设计的灵魂,再配合有关的计算机语言,就能顺利编写出程序脱离了具体的语言去学习程序设计是困难的20算法-空间复杂度-时间复杂度算法性能的评测-输入:有零个或以上输入量-输出:有一个或以上输出量(计算结果)-明确性:算法的描述必须无歧义,保证算法的正确执行-有限性:有限个输入、有限个指令、有限个步骤、有限时间-有效性:又称可行性,能够通过有限次基本运算来实现算法的特征21算法描述与基本结构算法的描述方法:自然语言、流程图、NS流程图、伪代码•流程图:简洁、直观、准确算法的三种基本控制结构顺序结构选择结构循环结构22顺序结构ABAABABA顺序结构是最基本、也是最常用的程序设计结构,它按照程序语句行的自然顺序,一条一条地执行程序。23选择结构ABpYN当p为“真”当p为“假”选择结构,又称分支结构,包括简单选择和多分支选择结构,可根据条件,判断应该选择哪一条分支来执行。24循环结构ApYWhile型循环N当p为“真”当p为“假”三种结构的共同点:•只有一个入口•只有一个出口•结构内每一部分都有机会被执行•结构内不存在“死循环”循环结构,可根据给定的条件,判断是否需要重复执行某一相同的程序段。

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功