ImageVerifierCode 换一换
格式:PPT , 页数:121 ,大小:735.50KB ,
文档编号:4317074      下载积分:29 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4317074.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(计算机导论-上海应用技术大学课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

计算机导论-上海应用技术大学课件.ppt

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是说明性的高级语言,只需程序员和用户对数据库中数据元素之间的关系和欲读取信息的类型予以描述。虽然数据库也可用

26、COBOL等过程性的语言操作,但SQL语句由于更适应数据库操作而效率更高。nJava和J+是以C+为基础的,但更适于网络应用的面向对象的高级语言。Java和J+尤其适合于生成网页上栩栩如生的图画和称为applet的Java应用程序,其中包含用户定制的像按钮、复选框和文字输入框之类的网页控件。当浏览器和附有Java和J+程序的网页连接时,计算机就会下载这段程序并执行。由于程序是在用户计算机上而非网络服务器上运行,在输入和接受响应时就避免了传输时间。nJava和J+有一个很大的不同之处:Java是一种独立于平台的语言,这意味着 Java程序不但能在微机上运行而且可运行在 Macintosh和UNI

27、X机上。J+提供给程序员的工具要求Windows的支持。使用这些工具可以编出更快、更高效的应用程序,但它只能运行在Windows操作系统的机器上。n注意不要把 JavaScript和Java混淆起来,JavaScript属于脚本语言,只是Java的一个子集。JavaScript就像HTML标签一样是嵌入网页的。网络浏览器接受到一个网页时便解释JavaScript,其主要用途是交互地生成网页。n8086汇编语言是一种低级语言,由一些容易记忆的短语组成,计算机易于将它们转化成其他语言。8086汇编语言指令集只适用于 Intel 8086微处理器,用它编写的程序只能运行在装有x86系列微处理器的计算

28、机上,现在8086汇编语言主要用在那些程序尽可能短的或速度要求很高的场合。专业的程序员把8086汇编语言嵌入应用程序使其执行速度快,而编写系统软件是为了控制计算机硬件。n因为计算机语言多年才修订一次,所以,程序员们完全可以把在大学里学习的程序设计方法在工作中用很多年,通过熟练掌握一门计算机语言,并逐步积累丰富的经验,为以后的工作提供便利。8.2 算法n 算法(算法(Algorithm)是一系列解决问题的清晰指令)是一系列解决问题的清晰指令,通俗地讲,一个算法就是完成一个任务的步骤。算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一

29、个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间空间复杂度复杂度与时间复杂度时间复杂度来衡量。n算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。8.2 算法n例如:n任务:将3、84、23、89、22、99、65、109、55、45十个数按从小到大的顺序排列n算法:每次找出未排序的n个数中的最小的数并将其排列在这些数的最前面,接着再同样排列其余n-1个数 n结果:3、22、23、45、55、65、8

30、4、89、99、109 所谓算法,是指精确定义的一系列规则,这些规则指定了一系列操作顺序,以便在有限的步骤内产生出所求问题的解答。它们都必须满足下列要求。有穷性:有穷性:一个算法必须保证执行有限步后结束;确定性:确定性:算法的每一步骤必须有确切的定义;可行性:可行性:算法原则上能够精确地运行,且人们用笔和纸做有限次运算后即可完成。输输 入:入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;输输 出出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;算算 法法算法的复杂度算法的复杂度同一问题可用不同算法解决,而一个

31、算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度时间复杂度和空间复杂度空间复杂度来考虑。算算 法法时间复杂度时间复杂度算法的时间复杂度是指算法需要消耗的时间资源。一般来说,计算机算法是问题规模n 的函数f(n),算法的时间复杂度也因此记做 T(n)=(f(n)因此,问题的规模n 越大,算法执行的时间的增长率与f(n)的增长率正相关,称作渐进时间复杂度(Asymptotic Time Complexity)。空间复杂度空间复杂度算法的空间复杂度是指算法需要消耗的空间资源。其计算和表示方法与时间复杂度类似,一般都用复杂度的渐近性来表

32、示。同时间复杂度相比,空间复杂度的分析要简单得多。算算 法法算法描述方法算法描述方法1.用自然语言描述算法 自然语言人们日常生活中使用的语言。此种语言的特点:通俗语易懂,缺乏直观性和简洁,且易产生歧义。使用此种语言的注意事项:描述要求尽可能精确,详尽。例如:sum=1+2+3+4+n求和问题输入N的值;设i的值为1;sum的值为0;如果i实数的加法 -复数的加法8.4 8.4 信息系统与人工智能n8.4.1 信息与信息系统n8.4.2 信息管理技术的发展n8.4.3 数据库与数据库系统n8.4.4 基于数据库的应用系统8.4.1 信息与信息系统n信息与数据 n“怎样搜集、管理和使用信息,将决定

33、你怎样搜集、管理和使用信息,将决定你在竞争中的输赢在竞争中的输赢”比尔比尔盖茨盖茨 n数据是关于客观事物和事实性质、状态和数据是关于客观事物和事实性质、状态和相互关系的被记载的物理符号或这些物理相互关系的被记载的物理符号或这些物理符号的组合。符号的组合。n数据经过处理后,其表现形式仍然是数据。数据经过处理后,其表现形式仍然是数据。处理数据的目的是为了便于更好地解释。处理数据的目的是为了便于更好地解释。只有经过解释,数据才有意义,才成为信只有经过解释,数据才有意义,才成为信息息 n“数据是信息的表现形式,信息是数据有数据是信息的表现形式,信息是数据有意义的表示意义的表示”信息与信息系统n信息系统

34、及其需求 n一方面各种载体和媒介充斥着大量的信息,一方面各种载体和媒介充斥着大量的信息,而另一方面,有价值的信息供应却还远远而另一方面,有价值的信息供应却还远远达不到个人、组织和社会的要求。达不到个人、组织和社会的要求。n一个重要的原因在于,信息不能够迅速和一个重要的原因在于,信息不能够迅速和准确地得到处理,同时信息的传播也不够准确地得到处理,同时信息的传播也不够及时、有效。及时、有效。n基于计算机的,对信息进行处理的应用系基于计算机的,对信息进行处理的应用系统,我们称之为信息系统统,我们称之为信息系统(IS)IS)n信息系统的主要目的是通过提供有用的、信息系统的主要目的是通过提供有用的、精确

35、的和及时的信息来改善组织机构的效精确的和及时的信息来改善组织机构的效率。率。信息与信息系统n信息系统的概念结构 信息管理者信息管理者信息处理器信息处理器信息存储器信息存储器信息源信息源信息用户信息用户8.4.2 信息管理技术的发展n我们对信息系统已经有了一个初步的概念上我们对信息系统已经有了一个初步的概念上的认识,知道了为什么需要信息系统,以及的认识,知道了为什么需要信息系统,以及信息系统为何得以广泛应用。接下来,需要信息系统为何得以广泛应用。接下来,需要对信息系统有一个更深入的了解,了解信息对信息系统有一个更深入的了解,了解信息系统作为信息管理技术方法手段的一种,是系统作为信息管理技术方法手

36、段的一种,是如何有效展开对信息的管理的。如何有效展开对信息的管理的。n在了解这一点之前,有必要先来回顾一下有在了解这一点之前,有必要先来回顾一下有关信息管理技术发展的历史。关信息管理技术发展的历史。信息管理技术的发展n信息管理是对信息进行收集、保存、传输、信息管理是对信息进行收集、保存、传输、加工和利用的过程,它最终体现为对数据加工和利用的过程,它最终体现为对数据的处理。的处理。n数据处理的能力的高低从很大程度上标志数据处理的能力的高低从很大程度上标志了相关信息管理技术的成熟度和先进性。了相关信息管理技术的成熟度和先进性。数据处理能力的不断提高也见证了信息管数据处理能力的不断提高也见证了信息管

37、理技术发展的历程。理技术发展的历程。n依此,我们可以将信息管理技术的发展分依此,我们可以将信息管理技术的发展分为三个阶段:为三个阶段:信息管理技术的发展n人工管理阶段 n这段时期,没有专门用于管理数据的软这段时期,没有专门用于管理数据的软件,计算机主要用于科学计算。计算机件,计算机主要用于科学计算。计算机仅提供基本的输入仅提供基本的输入/输出。输出。n该阶段中用户观点中的数据的逻辑结构该阶段中用户观点中的数据的逻辑结构必须要与数据在外存的物理结构相一致必须要与数据在外存的物理结构相一致 信息管理技术的发展n文件系统阶段 n这时的数据有两种形式:逻辑文件(用户这时的数据有两种形式:逻辑文件(用户

38、所思)和物理文件(实际存储)。文件系所思)和物理文件(实际存储)。文件系统提供从逻辑文件统提供从逻辑文件(Logistic File)Logistic File)到物理到物理文件文件(Physical File)Physical File)的转换(存取)方法。的转换(存取)方法。信息管理技术的发展n文件系统阶段n用户通过文件系统对物理文件进行存取用户通过文件系统对物理文件进行存取信息管理技术的发展n文件系统阶段n尽管文件系统形式的信息管理已经在操作尽管文件系统形式的信息管理已经在操作性上较前以阶段有显著的提高和改善,但性上较前以阶段有显著的提高和改善,但操作系统中这种单纯以文件为单位进行管操作

39、系统中这种单纯以文件为单位进行管理的数据管理方式,由于文件之间没有联理的数据管理方式,由于文件之间没有联系,仍然面临着数据在多个文件中重复存系,仍然面临着数据在多个文件中重复存储和数据不一致等问题储和数据不一致等问题n文件系统的主要的问题文件系统的主要的问题 n数据的冗余度(数据的冗余度(Redundancy)太大太大 n数据的应用程序过分地相互依赖数据的应用程序过分地相互依赖 n对数据缺乏统一控制和管理的应用程序对数据缺乏统一控制和管理的应用程序的编制相当繁琐的编制相当繁琐信息管理技术的发展n数据库系统阶段n数据库(数据库(DatabaseDatabase)与文件一样,是一种与文件一样,是一

40、种存储在一起的相关数据的集合存储在一起的相关数据的集合n数据库系统与文件系统最主要的区别在于数据库系统与文件系统最主要的区别在于数据的充分共享、交叉访问与应用程序的数据的充分共享、交叉访问与应用程序的高度独立性。另外,数据库技术建立在全高度独立性。另外,数据库技术建立在全局数据模型之上,各用户对数据的存取与局数据模型之上,各用户对数据的存取与控制统一由数据库管理系统执行。而文件控制统一由数据库管理系统执行。而文件管理系统对数据的管理是独立地以文件为管理系统对数据的管理是独立地以文件为单位进行的单位进行的n这一阶段的数据管理包括了:对数据的分这一阶段的数据管理包括了:对数据的分类、组织编码、储存

41、、检索以及维护类、组织编码、储存、检索以及维护信息管理技术的发展8.4.3 数据库与数据库系统 n目前各行各业均广泛应用信息系统,而数据目前各行各业均广泛应用信息系统,而数据库作为信息系统的核心,已然成为了当今社库作为信息系统的核心,已然成为了当今社会信息资源开发利用和管理的基础。因此我会信息资源开发利用和管理的基础。因此我们有必要在这里来了解和回答一些问题,如:们有必要在这里来了解和回答一些问题,如:n数据库是怎么构建的?数据库是怎么构建的?n数据库主要有哪几种类型?数据库主要有哪几种类型?n数据库如何被管理等等。数据库如何被管理等等。数据库与数据库系统n数据模型与数据库n构建一个好的数据模

42、型需要考虑以下的三要构建一个好的数据模型需要考虑以下的三要素:素:n数据结构数据结构 n数据操作数据操作n数据的约束条件数据的约束条件n由于客观事物的复杂性,开发数据库应用系由于客观事物的复杂性,开发数据库应用系统时分两个层次建立数据模型,一个是面向统时分两个层次建立数据模型,一个是面向事务用户的概念数据模型,也称实体模型;事务用户的概念数据模型,也称实体模型;另一个是面向计算机的数据模型。另一个是面向计算机的数据模型。数据库与数据库系统n概念数据模型 n概念数据模型是从用户的观点出发,将管理对概念数据模型是从用户的观点出发,将管理对象的客观事物及他们之间的联系,用容易为人象的客观事物及他们之

43、间的联系,用容易为人所理解的语言或形式表述出来,然后文档化。所理解的语言或形式表述出来,然后文档化。n目前概念数据模型中应用最广泛的一种模型是目前概念数据模型中应用最广泛的一种模型是由美籍华人陈平山于由美籍华人陈平山于19198 86 6 年提出的实体联系年提出的实体联系模型模型(Entity Relationship ModelEntity Relationship Model,简称简称ERER模型模型)。其中实体。其中实体(Entity)Entity)指的是现实世界中指的是现实世界中所标识的事物。可以是有生命的人、学生,也所标识的事物。可以是有生命的人、学生,也可以是抽象的事务,如,课程、

44、会议等。而这可以是抽象的事务,如,课程、会议等。而这里的联系里的联系(Relationship)Relationship)则是指实体之间的关则是指实体之间的关系,如学生选修课程,教师讲授课程等。系,如学生选修课程,教师讲授课程等。数据库与数据库系统n概念数据模型n通常我们可以将实体间发生的联系可归结为通常我们可以将实体间发生的联系可归结为一对一一对一(1:1)(1:1)、一对多、一对多(1:(1:n)n)、多对多多对多(m:n)m:n)这三种类型。这三种类型。厂长号厂长号姓名姓名年龄年龄厂长厂长管理管理工厂工厂厂名厂名地点地点厂号厂号1 11 1(A)A)厂长厂长-工厂工厂1:11:1关系关系

45、仓库号仓库号地点地点面积面积仓库仓库存放存放产品产品品名品名价格价格货号货号1 1n n数量数量(B)B)仓库仓库-产品产品1:1:n n联系联系学号学号姓名姓名助学金助学金学生学生学习学习课程课程课程名课程名学时数学时数课程号课程号m mn n成绩成绩性别性别(C)C)学生学生-课程课程m:nm:n联系联系数据库与数据库系统n计算机数据模型 n当前的数据库系统还不能直接处理概念模型,当前的数据库系统还不能直接处理概念模型,因此需要把概念数据模型转换成计算机能处因此需要把概念数据模型转换成计算机能处理的数据模型,即把概念模型中的实体及实理的数据模型,即把概念模型中的实体及实体之间的联系以计算机

46、规定的方式表示,标体之间的联系以计算机规定的方式表示,标识出需要在数据库中存储的内容,并定义这识出需要在数据库中存储的内容,并定义这些数据的结构关系。些数据的结构关系。n目前计算机数据模型分为两类:一类是以图目前计算机数据模型分为两类:一类是以图论为理论基础的层次数据模型和网状数据模论为理论基础的层次数据模型和网状数据模型;另一类则是以数学的集合论,关系代数型;另一类则是以数学的集合论,关系代数为理论基础的关系模型。为理论基础的关系模型。数据库与数据库系统n层次模型n网状模型研究机构研究机构实验室实验室YY学院学院XX学院学院学校学校教研室教研室学生学生课程课程学生选课学生选课数据库与数据库系

47、统n关系模型n关系模型的核心是关系模型的核心是“关系关系”。关系也是关系。关系也是关系模型中最主要的数据结构。在实际表示中,模型中最主要的数据结构。在实际表示中,关系可以用一个表来直观地表示关系可以用一个表来直观地表示n基于关系模型的数据库中,所有的数据都是基于关系模型的数据库中,所有的数据都是通过表来进行存储的通过表来进行存储的 数据库与数据库系统n三种计算机数据模型对比 数据库与数据库系统n关系数据库语言SQLnSQL是目前最重要的关系数据库操作语言。是目前最重要的关系数据库操作语言。其含义是结构化查询语言其含义是结构化查询语言(Structured Query Language)。SQL

48、语言不同于语言不同于C、JAVA等其他程序设计语言,它属于一种描等其他程序设计语言,它属于一种描述性的语言,描述的是检索、删除或插入何述性的语言,描述的是检索、删除或插入何种数据,而不是说明如何去执行它。种数据,而不是说明如何去执行它。nSQL可以独立完成数据库生命周期中的全部可以独立完成数据库生命周期中的全部活动,包括建立数据库、查询、更新、维护、活动,包括建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操数据库重构、数据库安全性控制等一系列操作的要求,它既可以独立使用,又可以嵌入作的要求,它既可以独立使用,又可以嵌入高级语言程序,这为数据库应用系统的开发高级语言程序,这为

49、数据库应用系统的开发提供了良好的环境。提供了良好的环境。数据库与数据库系统n关系数据库语言SQLnSQL语言基本的语法用词语言基本的语法用词 数据库与数据库系统nSQL语言的数据库基本操作 一、数据定义一、数据定义1 1、定义基本表、定义基本表2 2、修改基本表、修改基本表3 3、删除基本表、删除基本表4 4、定义索引、定义索引5 5、删除索引、删除索引数据库与数据库系统nSQL语言的数据库基本操作 二、数据查询二、数据查询1 1、单表查询、单表查询(1)(1)选择表中的若干列选择表中的若干列(2)(2)选择表中的若干记录(行)选择表中的若干记录(行)(3)(3)对查询结果排序对查询结果排序2

50、 2、连接查询、连接查询(多表查询多表查询)(1)(1)等值与非等值查询等值与非等值查询(2)(2)复合条件连接(复合条件连接(WHEREWHERE子句有多个条件)子句有多个条件)数据库与数据库系统nSQL语言的数据库基本操作 三、数据操纵(更新)三、数据操纵(更新)1 1、插入数据、插入数据2 2、修改数据、修改数据3 3、删除数据、删除数据数据库与数据库系统n 数据库系统的构成n 数据库系统结构数据库系统结构 应用应用1应用应用2应用应用n数据库数据库(DB)用户用户数数据据库库管管理理员员数数据据库库系系统统数据库与数据库系统n 数据库系统的构成n 数据库管理系统结构数据库管理系统结构

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|