计算机导论-上海应用技术大学课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《计算机导论-上海应用技术大学课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 导论 上海 应用技术 大学 课件
- 资源描述:
-
1、第8章 程序设计基础n8.1 8.1 计算机程序设计概述计算机程序设计概述n8.2 8.2 算法算法n8.3 8.3 结构化程序设计结构化程序设计n8.4 8.4 面向对象程序设计面向对象程序设计n8.5 8.5 信息系统与人工智能n8.6 软件工程概述8.1 8.1 计算机程序设计概述计算机程序设计概述n8.1 计算机程序设计概述计算机程序设计概述n8.2.1 程序设计语言程序设计语言n8.2.2 高级语言与编译系统高级语言与编译系统 n8.2 结构化程序设计结构化程序设计n8.3 面向对象程序设计面向对象程序设计n8.4 8.4 信息系统与人工智能n8.5 软件工程概述n程序的目的:用于数
2、学计算程序的目的:用于数学计算 n主要工作:设计求解问题的过程主要工作:设计求解问题的过程 8.1 计算机程序设计概述n 程序设计,俗称编程,是一个比较专业的概念。初学者,甚至一部分开发人员,都不能很简单的解释这个概念,所以使初学者觉得程序设计是一件很有科技含量,或者是很高深的学科,其实这些都是误解。那么程序设计到底是什么呢?n 程序,其实就是把需要做的事情用程序语言描述出来。类似如作家,就是把自己头脑中的创意用文字描述出来。所以学习程序,主要就是三个问题:做什么、怎么做和如何描述,具体如下:8.1 计算机程序设计概述n1.做什么n 做什么就是程序需要实现的功能。n2.怎么做n 怎么做就是如何
3、实现程序的功能,在编程中,称为逻辑,其实就是实现的步骤。n3.如何描述n就是把怎么做用程序语言的格式描述出来。n 所以,对于有经验的程序设计人员来说,学习新的程序设计语言的速度会比较快,就是因为第1和第2个问题基本解决了,只需要学习第3个问题即可了。8.1 计算机程序设计概述n 前面介绍的是程序的概念,那么为什么叫程序设计,其实这个设计和现实中的设计一样。例如你自己盖个小棚子,只需要简单的规划即可,也就是编程中的小程序,而如果需要建造一栋大楼,肯定需要进行设计吧,程序也是这样。所以把编程叫做程序设计了n人们在相互交谈时使用的是相互理解的语言,如汉语、英语、俄语等,它们统称为自然语言。人们用以同
4、计算机“交谈”的语言,称之计算机语言。计算机每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行的,程序是计算机要执行的有序指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。8.1 计算机程序设计概述 人们在相互交谈时使用的是相互理解的语言,如汉语、英语、俄语等,它们统称为自然语言。人们用以同计算机“交谈”的语言,称之计算机语言。计算机每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行的,程序是计算机要执行的有序指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语
5、言向计算机发出命令。计算机所能识别的语言只有机器语言。计算机程序设计概述计算机程序设计概述计算机程序设计概述n 程序设计语言:程序设计语言:1.机器语言 2.汇编语言 3.结构化语言4.结构化查询语言SQL 5.面向对象语言 计算机语言计算机语言 机器语言(由0和1构成的代码)汇编语言(英文缩写的助记符)高级语言直接对硬件操作 1、采用比较接近人们习惯的自然语言2、具有很大的通用性(即不受具体机器指令的约束)3、面向算法编写程序计算机程序设计概述计算机程序设计概述n 编程语言的特点n 1 过程性语言过程性语言n 2 说明性语言说明性语言n 3 脚本语言脚本语言n 4 低级语言低级语言n 5 高
6、级语言高级语言n 6 编译程序和解释程序编译程序和解释程序n 8 面向对象语言面向对象语言n 8 事件驱动语言事件驱动语言n 9 构件构件(组件组件)n编程语言的特点n在过去几十年间出现了上百种编程语言。一些程在过去几十年间出现了上百种编程语言。一些程序设计语言的开发是为了提高编程效率,降低出序设计语言的开发是为了提高编程效率,降低出错率。而另一些则是为专门的编程目的提供高效错率。而另一些则是为专门的编程目的提供高效的指令集。这些语言在描述如何工作和如何给合的指令集。这些语言在描述如何工作和如何给合适任务类型提供信息时各具特色。例如,适任务类型提供信息时各具特色。例如,Pascal语言就是一种
7、可编译的过程性高级语言。需要选语言就是一种可编译的过程性高级语言。需要选择程序设计语言时,了解这些语言的特色和它们择程序设计语言时,了解这些语言的特色和它们的优缺点将很有帮助的优缺点将很有帮助。n过程性语言n用过程性语言编写的程序包含一系列语句,告诉用过程性语言编写的程序包含一系列语句,告诉计算机如何执行这些过程来完成特定的工作。带计算机如何执行这些过程来完成特定的工作。带有过程性特征的语言称为过程性语言。有过程性特征的语言称为过程性语言。n过程性的编程语言适合于那些顺序执行算法。用过程性的编程语言适合于那些顺序执行算法。用过程性语言编写的程序有一个起点和一个终点。过程性语言编写的程序有一个起
8、点和一个终点。程序从起点到终点执行的流程是线型的,即计算程序从起点到终点执行的流程是线型的,即计算机从起点开始执行写好的指令序列,直到终点机从起点开始执行写好的指令序列,直到终点(见下图见下图)。n说明性语言n说明性语言只需程序员具体说明问题的规则并定义一些条件说明性语言只需程序员具体说明问题的规则并定义一些条件即可。语言本身内置了方法,把这些规则解释为一些解决问即可。语言本身内置了方法,把这些规则解释为一些解决问题的步骤,这样就把编程的重心转移到描述问题及其规则上,题的步骤,这样就把编程的重心转移到描述问题及其规则上,而不再是数学公式。因此,说明性的语言更适合于思想概念而不再是数学公式。因此
9、,说明性的语言更适合于思想概念清晰但数学概念复杂的编程工作。清晰但数学概念复杂的编程工作。n不同于过程性的程序,用说明性语言编写程序只需告诉计算不同于过程性的程序,用说明性语言编写程序只需告诉计算机要做什么,而不需告诉它如何去做。如图,这是一段机要做什么,而不需告诉它如何去做。如图,这是一段Prolog程序,问题是在所列的几个人中找出谁有姐妹。程序,问题是在所列的几个人中找出谁有姐妹。n 脚本语言n HTML一般归为脚本语言。脚本语言以脚本的形式定义一般归为脚本语言。脚本语言以脚本的形式定义一项任务,脚本不能单机运行,其运行需要依附一个主机应一项任务,脚本不能单机运行,其运行需要依附一个主机应
10、用系统。例如用用系统。例如用HTML标签为显示网页编写一个脚本,这个标签为显示网页编写一个脚本,这个脚本由浏览器软件解释。脚本由浏览器软件解释。n诸如诸如Visual BASIC for Applications(VBA)之类的脚本之类的脚本语言包含在许多应用程序中,像字处理软件和电子表格软件语言包含在许多应用程序中,像字处理软件和电子表格软件等,可以用脚本使应用程序中的任务自动化,这些自动化例等,可以用脚本使应用程序中的任务自动化,这些自动化例程即通常所说的宏指令。脚本语言使用起来比其他编程语言程即通常所说的宏指令。脚本语言使用起来比其他编程语言要简单,但它提供的控制选项很少。要简单,但它提
11、供的控制选项很少。HTML对不擅长编程的对不擅长编程的人是一个很好的选择。人是一个很好的选择。n低级语言n程序员需要使用低级编程语言为处于计算机系统程序员需要使用低级编程语言为处于计算机系统低层的硬件低层的硬件(像处理器、寄存器和内存地址等像处理器、寄存器和内存地址等)编编写指令。低级语言使程序员可以直接在硬件级水写指令。低级语言使程序员可以直接在硬件级水平上操作机器。程序员通常使用低级语言编写像平上操作机器。程序员通常使用低级语言编写像编译器、操作系统和设备驱动程序之类的系统软编译器、操作系统和设备驱动程序之类的系统软件。低级语言中的指令一般和处理器的指令相对件。低级语言中的指令一般和处理器
12、的指令相对应。应。n使用低级语言编程,即使是两数相加这样简单的使用低级语言编程,即使是两数相加这样简单的操作也要数条指令才能实现。操作也要数条指令才能实现。n机器语言是二进制形式的计算机能直接执行的低级语言。机器语言对人来说既难理解又难掌握,只在早期高级语言还没出现时使用过。n 高级语言n高级语言提供给程序员的指令更像是人类的自然高级语言提供给程序员的指令更像是人类的自然语言。语言。20世纪世纪50年代,科学家刚开始构思高级年代,科学家刚开始构思高级语言时,曾经以为使用高级语言可以减少编程中语言时,曾经以为使用高级语言可以减少编程中的错误,但事实相反,语法错误和逻辑错误却更的错误,但事实相反,
13、语法错误和逻辑错误却更易出现。不过,高级语言的确降低了出错率并大易出现。不过,高级语言的确降低了出错率并大大缩短了写程序的时间。大缩短了写程序的时间。n高级语言程序必须翻译成计算机能够执行的指令,高级语言程序必须翻译成计算机能够执行的指令,因此需要编译或者解释。因此需要编译或者解释。n编译程序和解释程序n多数高级语言程序在执行之前需要使用编译器软多数高级语言程序在执行之前需要使用编译器软件把它翻译为低级指令。这时,用高级语言编写件把它翻译为低级指令。这时,用高级语言编写的程序称为源代码,编译后的程序称为目标代码。的程序称为源代码,编译后的程序称为目标代码。n编译程序最终把程序编译成可执行的代码
14、。因此,编译程序最终把程序编译成可执行的代码。因此,调试源程序需要三步:写程序、编译程序和运行调试源程序需要三步:写程序、编译程序和运行程序,一旦发现程序有错,必须修改源程序并重程序,一旦发现程序有错,必须修改源程序并重新编译,然后才能再测试。对于编译完成后没有新编译,然后才能再测试。对于编译完成后没有错误的程序,再运行时就不用编译了。错误的程序,再运行时就不用编译了。n解释程序是用解释器软件而不是用编译器来生成可执解释程序是用解释器软件而不是用编译器来生成可执行代码。运行一个解释性程序设计语言编写的程序时,行代码。运行一个解释性程序设计语言编写的程序时,语言解释器读取一条指令,然后把它转化成
15、可执行的语言解释器读取一条指令,然后把它转化成可执行的机器语言指令,执行完这条指令后解释器再读入下一机器语言指令,执行完这条指令后解释器再读入下一条指令并解释成机器语言,如此继续。解释语言编写条指令并解释成机器语言,如此继续。解释语言编写的程序执行速度慢,尤其是循环语句多的程序效率就的程序执行速度慢,尤其是循环语句多的程序效率就更低,因为计算机必须解释每一条语句,循环语句就更低,因为计算机必须解释每一条语句,循环语句就要重复解释多次。但调试解释性语言程序时不用编译,要重复解释多次。但调试解释性语言程序时不用编译,因此调试所花费的时间似乎要少一些。因此调试所花费的时间似乎要少一些。n 面向对象语
16、言n 面向对象程序设计语言是建立在用对象编程的方面向对象程序设计语言是建立在用对象编程的方法基础之上的。对象就是程序中使用的实体或法基础之上的。对象就是程序中使用的实体或“事物事物”,例如屏幕上的按钮图标就是一个对象,例如屏幕上的按钮图标就是一个对象,我们已经习惯于用鼠标单击一个按钮。程序员可我们已经习惯于用鼠标单击一个按钮。程序员可以使用面向对象的语言来定义按钮对象,在程序以使用面向对象的语言来定义按钮对象,在程序运行时把它显示出来。运行时把它显示出来。n对象属于一个具有一定特性的类或组。对象属于一个具有一定特性的类或组。“窗口窗口”类是比较常见的类,所有的窗口对象,包括应用类是比较常见的类
17、,所有的窗口对象,包括应用程序窗口,都属于程序窗口,都属于“窗口窗口”类,它们具有相同的类,它们具有相同的属性,如都有一个标题栏和一个关闭按钮等。程属性,如都有一个标题栏和一个关闭按钮等。程序员创建一个窗口对象时,他就获得或者说继承序员创建一个窗口对象时,他就获得或者说继承了窗口类的面向对象的属性和操作,但一个特定了窗口类的面向对象的属性和操作,但一个特定的窗口实例可以具有自己特定的属性,如标题、的窗口实例可以具有自己特定的属性,如标题、大小、屏幕程序设计上的位置等均可不同。大小、屏幕程序设计上的位置等均可不同。n同一对象可用在不同的程序中,这就扩大了程序同一对象可用在不同的程序中,这就扩大了
18、程序员的生产率。例如,许多应用软件都给用户文件员的生产率。例如,许多应用软件都给用户文件提供了提供了“打开打开”、“保存保存”、“另存为另存为”、“打打印印”等操作,如果编写这样的应用程序,定义一等操作,如果编写这样的应用程序,定义一个对象来完成这些操作会很方便,只要程序中用个对象来完成这些操作会很方便,只要程序中用到这些操作,随时都可调用这些对象。到这些操作,随时都可调用这些对象。n事件驱动语言n程序事件是指程序必须做出响应的动作或表现,比程序事件是指程序必须做出响应的动作或表现,比如按键和点击鼠标。程序员用事件驱动语言编程可如按键和点击鼠标。程序员用事件驱动语言编程可以使程序随时检测并响应
19、事件。使用图形界面的程以使程序随时检测并响应事件。使用图形界面的程序大部分都是事件驱动的,它们在屏幕上显示诸如序大部分都是事件驱动的,它们在屏幕上显示诸如菜单这样的控件,并在用户作用于控件时采取某一菜单这样的控件,并在用户作用于控件时采取某一动作。事件驱动的程序中,代码段要和图形化的对动作。事件驱动的程序中,代码段要和图形化的对象相关联,比如命令按钮和图标。用户操作某一对象相关联,比如命令按钮和图标。用户操作某一对象时产生一个事件,比如点击象时产生一个事件,比如点击“继续继续”按钮,该事按钮,该事件就触发与此对象关联的指令执行。件就触发与此对象关联的指令执行。n构件(组件)n实际中,面向对象程
20、序中的对象是由程序设计者实际中,面向对象程序中的对象是由程序设计者生成的。但程序员可以购买一些称为生成的。但程序员可以购买一些称为“构件构件”(也也称称“组件组件”)或或“库库”的对象。构件是事先写好的对象。构件是事先写好的对象,程序员可以应用到自己的程序中。对于的对象,程序员可以应用到自己的程序中。对于目前流行的编程语言,构件可以买到。使用构件目前流行的编程语言,构件可以买到。使用构件编程就称为构件程序设计。编程就称为构件程序设计。n程序员可以选择各种各样的构件来增强功能,比程序员可以选择各种各样的构件来增强功能,比如电子表格、数据库管理、专家系统、报表生成、如电子表格、数据库管理、专家系统
21、、报表生成、在线帮助、数据查询、文字编辑和在线帮助、数据查询、文字编辑和3-D图形等。图形等。n选择编程语言n跟人类的自然语言一样,程序设计语言也在不断跟人类的自然语言一样,程序设计语言也在不断的改变和进化中。在新的语法和表达式不断充实的改变和进化中。在新的语法和表达式不断充实已有语言的同时,那些旧的和过时的东西也因为已有语言的同时,那些旧的和过时的东西也因为不用而逐渐消退。计算机语言的变化是逐步的和不用而逐渐消退。计算机语言的变化是逐步的和有结构的,它往往是随着该语言的发行厂商的修有结构的,它往往是随着该语言的发行厂商的修改或标准化组织对其进行标准化而发生变化。改或标准化组织对其进行标准化而
22、发生变化。n通常情况下,一项任务可以用不同的编程语言来实现。在一项工程选择编程语言时,应该考虑以下问题:n这种编程语言是否适合于手中的任务?n这种语言在其他的应用程序中是否也经常使用?n项目小组中的人是否都精通这门语言?n如果这些问题的回答都是肯定的,那么这门语言对这项工程是一个很好的选择。了解一些流行语言的特性对回答第一个问题会有帮助。nBASIC是为初级编程者设计的,自从1964年问世以来,已经出现了几种流行的版本。由于BASIC容易使用和适合于各种计算机系统,成为最流行和最广泛使用的语言之一。BASIC是一种过程性的高级语言,它的大多数版本都是解释执行的,但也有一些是编译执行的。nBAS
23、IC的一些新版本,像微软的Visual Basic(VB)就是综合性且功能强大的编程语言,适合于专业编程项目,尤其适合于带有图形界面的事件驱动程序设计。nCOBOL 语言创立于1959年,曾在1968年进行过一次标准化,并于1984年重新发行。从那时起,它就基本上没有再变化。COBOL语言适合于大型计算机系统上的事务处理,是编译执行的过程性高级语言,主要被一些专业程序员用来开发和维护大型商业集团的复杂程序。COBOL程序往往很长但容易读懂(就英语而言)、调试和维护。这种特性对于大型商业组织机构尤其重要,因为许多重要的程序必须由不同的程序员维护和修改。nFORTRAN出现于1954年,虽经几次更
24、新,但却是目前仍在使用的最早的高级语言。FORTRAN一般被科学家用来写大型机和小型机上的科学计算程序和工程程序。FORTRAN语言在1966年进行标准化以后,分别于1988年和1990年两次重新发行过。nPascal开发于1981年,是编译执行的过程性高级语言,它开了结构化程序设计的先河。但Pascal很少用于专业编程和商用软件的开发,主要用于帮助学生学习计算机编程。nC是编译执行的过程性高级语言并带有低级语言的接口,这种特性给程序员带来很大的灵活性,利用这种灵活性,有经验的程序员可以使他们的程序速度快、效率高,但也使 C程序难于理解、难于调试和维护。nC+是支持面向对象的 C语言。许多人认
25、为 C+的面向对象特性可以提高程序员的效率,但面向对象的程序设计的思维方式与过程性设计迥然不同,因此,刚刚使用C+编程的程序员往往困难重重。nLISP和Prolog是说明性高级语言,一般用于开发专家系统。它们分别开发于1960和1981,相对于过程性的语言并没有很流行,这或许是因为早期的计算机应用程序一般是处理一些需要简单重复运算的任务,这正是过程性语言所擅长的。那些需要对字符数据进行复杂的逻辑处理的任务则适于用说明性语言来实现。nSQL是为数据库的定义和操作而开发的一种标准语言。SQL是说明性的高级语言,只需程序员和用户对数据库中数据元素之间的关系和欲读取信息的类型予以描述。虽然数据库也可用
展开阅读全文