计算机软件技术基础综述_第1页
计算机软件技术基础综述_第2页
计算机软件技术基础综述_第3页
计算机软件技术基础综述_第4页
计算机软件技术基础综述_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大学计算机基础第五章计算机软件技术基础第五章计算机软件技术基础

计算机硬件(Hardware)是计算机系统的基础,但是没有软件(Software)的计算机是无法工作的。事实上,现在计算机能广泛地应用于各个领域,完全是由于有了丰富的计算机软件,人们为了用计算机解决各类问题,针对性地开发了各种各样的软件。本章将讨论关于计算机软件的相关知识:如什么是软件,程序设计语言的分类,什么是算法等。5.1计算机软件系统5.1.1软件的概念与特点

软件是计算机系统中与硬件相互依存的另一部分,包括程序、数据及其相关文档的完整集合。软件通常是为某个特定目的而开发的产品。①程序:按照事先设计的功能和性能要求执行的计算机指令序列。②数据:使程序能够正常操纵信息的数据结构。③文档:与程序开发、维护和使用有关的资料。

软件的特点:①抽象性②复杂性③维护长期性④高成本性5.1计算机软件系统5.1.2软件的分类(1)按软件功能划分①系统软件:能与计算机硬件紧密配合在一起,使计算机系统的各个部件、相关的软件和数据协调、高效地工作。②支撑软件:协助用户开发软件的工具性软件,其中包括帮助软件人员开发软件产品的工具,也包括帮助管理人员控制开发进程的工具。③应用软件:针对特定领域应用开发,为特定目的服务的软件。5.1计算机软件系统(2)按软件工作方式划分①实时处理软件:对实时过程进行监控的软件。②分时软件:允许多个联机用户同时使用计算机。③交互式软件:能实现人机通信的软件。④批处理软件:把一组输入作业或大量数据以成批处理的方式一次运行,按顺序逐个处理的软件。(3)按软件服务对象划分①项目软件:也称定制软件,是受某个特定客户(或少数客户)委托,由一个或多个软件开发机构在合同的约束下开发出来的软件。②产品软件:由软件开发机构开发出来投入市场或用户群体庞大的软件。5.1计算机软件系统

计算机软件系统包括各种各样的软件,这些软件之间的关系不是并列的,而是有一定的层次关系。5.1.3计算机软件的层次结构5.2程序设计语言简单来讲,程序设计就是:用计算机语言编写程序。程序=算法+数据结构

编写计算机程序时使用的语言称为程序设计语言(ProgrammingLanguage),使用它把人类解决问题的方法用计算机可以识别的形式表示出来。对数据操作的步骤如何表示、组织和存储数据5.2程序设计语言5.2.1机器语言

机器语言是指由二进制代码按照一定规则组成的命令集合,也称为机器指令集合。机器指令的格式如下:操作码操作数例如:计算256+16结果的机器代码如下(以十六进制表示):B80001;把256放入累加器AX051000;把16与AX中值相加,结果存入AX5.2程序设计语言5.2.2汇编语言

为了解决机器语言难记忆、可读性差的缺点,人们把机器指令中的操作码和操作数用英文助记符和符号地址来表示,这种助记符语言称为汇编语言。MOVAX,256;把256放入累加器AXADDAX,16;把16与AX中值相加,结果存入AX汇编和连接过程:5.2程序设计语言5.2.3高级语言

高级语言是一类程序设计语言的统称,它采用接近人类自然语言和数学表达式的表示方法,并遵循一定的语法规则来编写程序。实现求整数的绝对值的程序段:intintVar,result;scanf(“%d”,&intVar);if(intVar>=0)result=intVar;elseresult=-1*intVar;printf(“%d的绝对值是:%d”,intVar,result);5.2程序设计语言高级语言程序的翻译和执行高级语言源程序翻译成指令代码的方法主要有两种:解释和编译5.2程序设计语言5.2程序设计语言5.2.4主流高级语言

高级语言种类多,介绍几种常用的高级语言:(1)BASIC语言(2)C语言(3)C++语言(4)JAVA语言(5)C#语言(6)脚本语言5.2程序设计语言5.2.5软件开发工具和开发环境程序员使用的开发工具,主要有:编辑源程序的编辑软件。把高级语言编译成机器语言的编译软件。调试程序的调试软件。(1)单独工具(2)集成的开发环境5.2程序设计语言(不讲)5.2.6程序设计语言的构成(不讲)

数据和操作是构成程序的两个基本要素,任何一种程序设计语言都必须提供表示数据和操作的语法、语义元素。

(1)数据类型程序设计语言中一般分为基本数据类型和构造数据类型两大类。

基本数据类型是由程序设计语言内置的,其特点是不能再分解为其它的类型。在主流的程序设计语言中一般包括:整数类型、实数类型、字符类型、布尔类型等。

构造数据类型是由基本数据类型按照某种方式组合构成的。常见的构造数据类型有:数组类型、记录类型(结构体)、枚举类型、字符串类型、文件类型等。5.2程序设计语言(不讲)(2)运算符和表达式

运算是程序对数据进行的最基本也是最重要的处理,程序设计中使用表达式完成各种各样的运算。表达式通常包括:常量、变量、运算符和函数调用等构成。例如:给定圆的半径r,求其面积的Java语言表达式是:

s=3.14*r*r(3)语句

程序是对计算机要执行的操作的描述。高级语言源程序的基本组成单位是语句。语句按功能可以分为两类:

1.用于描述操作运算,如赋值语句,称为操作运算语句;

2.用于控制操作运算的执行顺序,如分支控制语句,称为流程控制语句。5.2程序设计语言(不讲)(4)控制结构①顺序结构,按照语句出现的先后顺序依次执行。②分支结构,根据给定条件判断,决定程序执行的顺序。③循环结构,循环(重复)是计算机解题的一个重要特征。(5)输入/输出

程序的输入是指用户将数据通过输入设备(如键盘等)输入到程序中。程序的输出是指程序把运算结果以用户可以理解的形式输出到输出设备(如显示器、打印机等)。高级程序设计语言中通常以函数或语句的形式提供输入输出操作。现代高级程序设计语言通常都提供通过窗口、文本框、按钮、组合框、图表等图形组件进行输入输出。5.2程序设计语言(不讲)(6)子程序

子程序就是将需要重复使用的程序段或分解的子问题编写为一个逻辑上独立的子程序,当程序中需要使用子程序时,再对其进行调用。使用子程序的好处是降低了程序的复杂度,使程序的结构清晰,提高了程序设计的效率。一般程序设计语言中有两种子程序:函数(Function)和过程(Procedure),它们的主要区别是函数有返回值,而过程不能有返回值。5.3问题求解过程

解决问题的思维过程借助计算机求解问题的过程5.4算法和数据结构5.4.1什么是数据,数据结构简介

数据是对客观事物的描述,对计算机来说,数据的含义非常广泛,如数字、字符、图形、色彩、声音等都是数据。数据元素(DataElement)是组成数据的基本单位。一个数据元素可以由若干个数据项组成,数据项是数据不可分割的最小单位。例:公司员工数据的存储姓名性别出生日期职位工资张军男1975.5.6总经理5080.00李芳女1980.12.12项目经理4800.00王明男1979.4.19程序员4500.00刘杰男1974.6.23系统分析员4750.00赵丽女1977.11.9测试员3900.00

数据结构研究的数据存储和数据处理这样的最核心的问题。不是几个孤立的数据,而是大量的相互关联的数据。数据元素之间的相互关系称为结构。5.4.1什么是数据,数据结构简介5.4算法和数据结构5.4.2算法

算法(Algorithm)是指为解决给定问题而需实施的有穷操作步骤的描述。

算法的五个重要特性:1)有穷性2)确定性3)可行性4)输入5)输出评价一个算法优劣的标准:1)正确性2)可读性3)健壮性4)效率性5.4算法和数据结构算法的描述方法(1)用自然语言描述算法(2)用流程图描述算法(3)使用伪代码描述算法(4)用程序设计语言描述算法例1互换两个数据单元内容。(书上例5.4)例2求两个正整数m和n的最大公约数的算法。用如上这四种方式描述出来。(书上例5.5)5.4算法和数据结构第五章计算思维案例

计算思维反映的是利用计算机技术解决实际问题的思维方法,如果对利用计算机技术如何解决实际问题的认知出现误解,那是不可能达到目的的。很多初学者以为计算机神乎其神,似乎什么都能干。

和人脑相比,它只是会算,而且算的速度非常快,除此以外计算机几乎没有什么更多的优越性了。如果你要完成的计算任务比较复杂,又不能(或者不会)分解成计算机能接受的基本操作,那就没法利用计算机求解了。记住,计算机永远都是在人脑的指挥下工作的!案例1合理分解和分配计算任务第五章计算思维案例

在计算机科学中,将大规模的复杂问题分解成若干个较小规模的、更简单的问题加以解决,是一种常用的计算思维。运用问题分解这种思维方法进行问题求解,首先需对问题本身做出明确描述,并对问题解法做出全局性决策,把问题分解成相对独立的子问题,再以同样的方式对每个子问题进一步精确化,直到获得对问题的明确的解答。在本章中,结构化程序设计采取了计算思维中的典型方法——分解。按照“分而治之”的策略,将顶层问题的求解目标逐层分解成子目标,每个子目标用相应的程序模块进行实现,这样构成求解整个问题的程序。案例2大事化小、小事化了第五章计算思维案例

结构化程序设计方法的一个重要原则就是“自顶向下、逐步求精”,它是指程序设计时,先描述顶层问题的求解目标,然后步步深入,设计一些比较粗略的子目标作为过渡,再逐层细分,直到整个问题可用程序设计语言明确地描述出来为止。程序的模块化设计,则是针对任何一个大系统都可以按子结构之间的疏密程度分解成较小的模块,每个模块完成一定问题的求解。整个程序是由层次的、逐级细化的诸模块组成。一个复杂的问题可以看成由若干稍简单的问题构成。案例2大事化小、小事化了第五章计算思维案例

对于可以用计算机求解的问题,所需的计算时间都与其规模有关,问题规模越小,解题所需的计算时间也越少,也越容易求解。因此可以将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破、分而治之。模块化与自顶可下、逐步求精紧密联系。日常工作中的层次化管理也是一种对分解方法的运用。以企业运行为例,一个大型企业也是一个非常复杂的系统,采取“金字塔”型的管理层次是常用的策略,将企业逐层分解,越上层的机构越少,越向下功能分解越细、机构数目越多。各级机构管理好自己的下属机构,完成上级机构制定的目标,最终整个企业实现自己的整体目标。案例2大事化小、小事化了第五章计算思维案例

计算思维是利用海量数据来加快计算,在时间和空间之间、在处理能力和存储容量之间进行折中的思维方法。计算机问题求解是以计算机为工具,利用计算思维解决问题的实践活动。计算机解题的核心是算法设计,设计算法是计算机问题求解中非常重要的步骤。查找(Searching)也称检索,计算机最重要的功能之一就是在浩瀚的数据中找到用户所要的信息。但是计算机的速度还并没有快到能瞬间完成这一过程的程度,而且等待计算机查找的数据集往往是异常庞大的,因此我们需要更快捷更有效的搜索方式。案例3海量查找第五章计算思维案例

世界上最庞大的搜索问题是在网络世界中搜索信息,网络搜索引擎能实现同时为大量在线用户在数以百万计的网页中进行高速查询,这无疑是一个令人惊讶的事实,而它们能做到这点无非是因为使用了正确的算法。查找的结果有两种:一种是查找到满足条件的结点,称为查找成功;否则称为查找失败。查找的方法很多,针对线性表的查找算法有顺序查找和折半查找。案例3海量查找

查找(Searching)也称检索,设表F中有n个结点,Ki是记录Ri的关键字,现给定关键字K,在F中寻找关键字与K相同的结点R的过程,叫做查找。(1)顺序查找

顺序查找是线性表的最简单的查找算法。它是用给定的值与表中的每个结点的关键字逐个进行比较运算,若找到相等的关键字则查找成功,否则查找失败。顺序查找算法的优点是适用范围广,对线性表中结点逻辑次序无关,即不要求按关键字排序。对线性表的物理存储结构也没有要求,顺序存储与链式存储均可。(2)折半查找

折半查找要求:线性表必须按关键字大小排好顺序(可以假设从小到大排序),并且采用顺序存储方式。折半查找的基本思想是:先取表的中间位置的结点关键字与所给定的关键字进行比较,如果相等,则查找成功。如果给定值比该结点的关键字大,则所找结点在表的后半部分;否则所找结点在表的前半部分,然后再把选定的部分表的中间结点的关键字与给定关键字进行比较。如此反复进行,直到查找成功或者查找失败为止。例:第五章计算思维案例

排序(Sort)是数据处理中的一种重要运算,它的功能是将一组数据元素(或记录)从任意序列排列成一个按关键字排序的序列。这是一种常用的计算思维方法。几乎所有计算机中的序列都是被排过序的,电子邮件列表按照日期排序,最新的邮件被放置在最顶端;播放器中的歌曲按照名字或歌手名排列在一起,以便你快速查找到最喜欢的那首歌,文件名则往往是按照字母顺序排列的。那么计算机是如何进行排序的呢?计算机科学家设计了很多排序的算法,直接插入排序、冒泡排序等。案例4排序第五章计算思维案例

人们在日常生活中将物品有规律的摆放,如水果由小到大摆放,图书按书名或学科顺序排序等。将物品按照某种规律顺

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论