欢迎来到天天文库
浏览记录
ID:39611205
大小:201.50 KB
页数:34页
时间:2019-07-07
《程序设计与C程序设计初步》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、面向对象程序设计基础主讲人:胡青第一章程序设计与C++程序设计初步1.1计算机程序1.1.1算法定义:用来解决问题的有多个步骤组成的具体过程。(p4例1.1.1求解最大公约数的欧几里德算法)基本特征:由一些能够执行的操作组成可以具有多个输入和输出算法对于任何输入都应该是可终止的算法的主要操作对象是数据1.1.2实体许多行为也可以用算法来表示。例:银行账户存款(输入、输出、步骤)例:银行账户取款(输入、输出、步骤)发现:存款、取款行为所用数据均包含账户当前余额,存款与取款行为是密切相关的。银行账户(包括账号、户名、密码、余额等状态)可完成存款、取款行为——
2、实体第一章程序设计与C++程序设计初步通常一个实体应具有一个名字、一组表示该实体特征的数据以及若干作用在这些数据上的行为。实体具有数据表示了他的状态,而这些状态可有他的行为来改变。从行为出发来把握事物。(C)从实体出发把握事物。(C++)我们通过观察与分析事物表现出来的行为来探讨事物的内在结构,掌握了事物的内在结构又可用来解释或预测事物的行为。在处理大型问题时,从实体比从行为出发更容易把握问题的复杂性。第一章程序设计与C++程序设计初步1.1.3程序有了实体,如何用计算机解决问题?程序即是实体在计算机中的体现。1、数据在计算机内部的表示(通过二进制编码表
3、示)2、程序在计算机内部的表示(无论何种计算机,各有一套基本指令系统,其中每条指令都是由二进制编码表示。)机器语言汇编语言(二进制编码表示)宏汇编语言(引入宏)机器语言高级语言(与机器无关)第一章程序设计与C++程序设计初步汇编程序宏汇编程序编译程序,解释程序1.1.4程序设计程序设计是编写计算机程序的活动。完成程序设计工作必须具备四方面的知识:一是应用领域的知识;二是程序设计方法;三是程序设计语言;四是程序设计环境与工具。方法:自顶向下自底向上设计语言实体程序设计环境与工具(类库函数库)第一章程序设计与C++程序设计初步两者结合1.2程序设计的演变1.
4、2.1早期程序设计语言有:FORTRAN(FORmulaTRANslator)1954---1957IBM公司开发科学计算工程领域COBOL(CommonBusinessOrientedLanguage)1959商业事物处理ALGOL(算法语言)Basic(无固定程序设计方法时期)第一章程序设计与C++程序设计初步1.2.2结构化程序设计主要技术:自顶向下、逐步求精、采用单入口/单出口的控制结构只用三种基本控制结构(顺序、选择、循环)Pascal(人名命名,17世纪法国数学家BlaisePascal)教育界、学术界C(1972贝尔实验室DECPDP—11
5、计算机上实现)为描述和实现UNIX操作系统提供一种工作语言七十年代末“传统C”、“经典C”第一章程序设计与C++程序设计初步1.2.3面向对象程序设计面向对象程序设计建立在结构化程序设计基础上,最重要的改变是程序围绕被操作的数据来设计,而不是围绕操作本身。从程序设计方法的角度看,面向对象是一种新的程序设计范型,其基本思想是使用对象、类、继承、封装、聚合、关联、消息、多态性等基本概念来进行程序设计。第一章程序设计与C++程序设计初步其基本思想是:从现实世界中客观存在的事物出发来建立软件系统强调直接以问题域(现实世界)中的事物为中心来思考问题、认识问题,并根
6、据这些事物的本质特征,把它们抽象地表为系统中的对象,作为系统的基本构成单位。这可以使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌。充分运用人类日常的思维方法强调运用人类在日常的逻辑思维中经常采用的思想方法与原则,例如抽象、分类、继承、聚合、封装、关联等等。这使得软件开发者能更有效地思考问题,并以其他人也能看得懂的方式把自己的认识表达出来。第一章程序设计与C++程序设计初步对问题域的认识(人)客观世界(问题域)计算机自然语言语言的鸿沟编程语言语言的过渡(人)编程(人)程序的理解和执行(机器)软件开发--实际上是从问题空间向解空间映射的过程。从
7、认识论看面向对象语言的形成第一章程序设计与C++程序设计初步计算机机器语言自然语言客观世界(问题域)语言的鸿沟语言的发展--鸿沟变窄面向对象的语言非OO的高级语言汇编语言程序的指令、数据、地址,都是由二进制的“0”和“1”构成的。离机器最近,能够直接地执行,然而没有丝毫形象的意义,离人类的思维最远。以易理解的符号表示指令、数据以及寄存器、地址等物理概念。稍稍适合人类的形象思维,但仍然相差很远。因为抽象层次太低,仍需考虑大量的机器细节。高级语言隐蔽了机器细节,使用有形象意义的数据命名和表达式,可以联系到程序所描述的具体事物。特别是结构化编程语言更便于体现客
8、观事物的结构和逻辑涵义,与人类的自然语言更接近,但仍有不少差距。能比较直接地反映
此文档下载收益归作者所有