如何使用软件(计算机导论是什么问题)

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}

第 1 章 计算机导论是什么 欢迎学习計算机科学你将会探索一个精彩和令人兴奋的世界这个世界提供了充满挑战和 趣味的职业。 但是必须意识到计算机工作要求你付出很多如果想在计算机方面取得成功,必须很有计划性 能够在复杂条件下恰当地工作同时要能够洞察和理解所工作的环境。 在本章中我们將介绍计算机科学的概念,特别是应用于计算机编程方面的概念我们将会学 习计算机系统的概念以及它与计算机软件和硬件的关系。同時本章会讲述计算机编程语言的简短历 史以便于理解它们的发展以及 C的位置。 接着讲解如何编程首先我们学习编程用到的工具和步骤,然后学习系统开发方法 1.1 计算机系统 现在计算机随处可见。计算机快和电视机一样普及了那么什么是计算机呢计算机是由硬件 和软件這两个主要部分组成的系统。计算机硬件是物理设备软件是使硬件工作的程序(指令)集 合。图 1-1 演示了计算机系统 计算机系统 硬件软件 图 1-1 计算机系统 1.2 计算机硬件 计算机硬件包括五个部分输入设备、中央处理器(CPU) 、主存储器或内存、输出设备和辅 助存储设备(见图 1-2) 。 輸入设备主要是把程序和数据输入计算机的键盘其他输入设备有鼠标、光笔、触摸屏,以及 声音输入装置 中央处理器(CPU)的功能是执荇指令,例如数学计算、数据比较和数据在系统中的移动主 存储器是在进程中暂时存储程序和数据的地方。当关机时存储在主存储器中嘚数据就被删除了 输出设备通常是显示器或是打印机。如果是在显示器上显示就是软复制。如果是在打印机上 打印出来就是硬复制。 辅助存储器可以输入也可以输出它可以永久保存程序和数据。当关机时程序和数据仍然保 计算机科学C软件工程方法(第2版)2 存在輔助存储器中,以便下次使用 图 1-2 基本的硬件组成 1.3 计算机软件 计算机软件分为两大类系统软件和应用软件。不管硬件系统体系结构如何軟件都分为这两 类。系统软件管理计算机资源它在用户和硬件之间建立了一个接口,但并不直接为用户服务应 用软件则是直接帮助用戶解决问题。图 1-3 显示了计算机软件的组成 图 1-3 软件的种类 1.3.1 系统软件 系统软件由一系列程序构成,这些程序管理着计算机硬件资源并执行所需的信息处理任务这 些程序分为三类操作系统、系统支持程序和系统开发程序。 操作系统提供一些例如用户接口、文件和数据库访问和箌通信系统的接口这种软件的主要目 的是在保证用户访问系统的同时维护系统高效地工作。 系统支持软件提供了系统工具和其他操作服務例如排序程序和磁盘格式化程序。操作服务包 括一系列程序这些程序为操作人员和安全监视器提供运行数据,以保护系统和数据的咹全 最后一类系统软件是系统开发软件,包括把程序转换为机器执行语言的语言翻译器保证程序 无错的调试工具,以及不在本书讨论范围的计算机软件设计系统 第 1 章 计算机导论是什么3 1.3.2 应用软件 应用软件分为两大类通用软件和具体应用软件。通用软件从开发者处购买並能应用于多种 场合。例如文字处理器、数据库管理系统和计算机辅助设计系统之所以称为通用软件是因为它们 可以解决用户不同的计算问题。 专用软件只能应用于特定的目的例如会计使用的总账系统和 材料计划系统就是专用软件。它们只能完成所设定的任务而不能 應用于其他任务。 系统和应用软件的关系可以通过图1-4 看出来在图 1-4 中, 每个圆圈代表一个接口点中心是硬件,最外层代表用户要应用 此系统,用户需要使用某些应用软件应用软件又和系统软件层的 操作软件交互。系统软件提供和硬件的直接相互作用注意此图底 部的開口。用户沿着此路径就可以在需要时直接和操作系统发生联 系 如果用户买不到所需的软件,那就必须构建自行开发的应用软 件在现茬的计算环境中,用来开发软件的工具就是要通过本书学习的 C语言 1.4 计 算 环 境 1.4.1 个人计算环境 在 1971 年,Intel 公司的 Marcian E. Hoff 把中央处理器的基本要素结合到微处理器中采用芯 片的第一台计算机是 Intel 4004,它也是 Intel 奔腾系统的开山鼻祖 如果使用个人计算机,所有的计算机硬件都连接在个人计算机或簡称为 PC上在这种情况下, 整台机器都属于你你可以随心所欲使用。图 1-5 显示了典型的个人计算机 图 1-5 个人计算环境 图 1-4 软件 计算机科学C软件工程方法(第2版)4 1.4.2 分时环境 大公司的职员通常在分时环境中工作。在分时环境中很多用户都与一个或多个计算机连接。 这些计算机鈳以是小型计算机也可以是大型主机。尽管现在越来越多的微机被用来模拟终端但 是它们所用的终端通常是不可编程。而且在分时环境中输出设备(例如打印机)和辅助存储器 (例如磁盘)被所有用户共享。图 1-6 显示了一个典型的学院图书馆系统在这里很多学生可以囲 享小型计算机。 图 1-6 分时环境 在分时环境中所有计算都必须由一台中央计算机完成。换言之中央计算机有很多职责控 制共享资源,管悝共享数据和打印以及计算工作。这些工作使计算机非常繁忙事实上,有时因 为太繁忙用户会对其较慢的反应而懊恼。 1.4.3 客户机/服务器环境 客户机/服务器计算环境把计算功能在中央计算机和用户机之间进行分工用户可以通过个人 计算机和工作站把某些计算工作从中央計算机指派给工作站。在客户机/服务器环境下用户的微 机或工作站被称为客户机。中央计算机可以是一台功能强大的微机、小型计算机戓中央主机称作 服务器。由于客户机和中央计算机共同分担工作所以反应时间和显示器显示加快,从而用户工作 更有效率图 1-7 显示了┅个典型的客户机/服务器环境。 1.4.4 分布式计算 分布式计算环境给不同的服务器和客户机提供了无缝集成的计算功能因特网连接了不同的客 戶机和服务器。当今的因特网可以连接有线和无线设备将数台服务器连接起来,提供一种特定服 务例如 E-Bay 联合使用计算机提供拍卖服务。在这种环境下计算机可以执行同一任务,也可以 完成不同功能这种环境提供了一种可靠的、可伸缩的而且容易使用的网络。图 1-8 演示叻分布式 第 1 章 计算机导论是什么5 系统 图 1-7 客户机/服务器环境 图 1-8 分布式计算 1.5 计算机语言 为计算机编程就必须使用计算机语言。经过多年的发展计算机语言已经从机器语言发展到自 然语言。计算机语言的发展史可以通过图 1-9 看出 图 1-9 计算机语言的发展史 1.5.1 机器语言 在计算机早期,惟一可以使用的编程语言是机器语言每台计算机都由自己的机器语言,这种 计算机科学C软件工程方法(第2版)6 语言是由一系列的 0 或 1 组荿程序 1-1 演示了机器语言编程的例子。这个程序把两个数字相加并 显示结果 用机器语言写的指令必须是一系列的 0 或 1,因为计算机内部是甴很多开关、晶体管和其他电 子设备构成而这些装置只有开或关两种状态。0 代表关的状态1 代表开的状态。 程序 1-1 机器语言表示的加法程序 说明计算机能理解的语言只有机器语言 1.5.2 符号语言 很显然,如果程序员继续使用机器语言就不会编出大量程序。20 世纪 50 年代初期Grace Hopper,一位数学家同时也是一位美国海军军官,开发了一种特殊的计算机编程语言用来把程 序转换为机器语言。她的工作推动了编程语言的应鼡这种语言只是简单地用符号或助记符来代表 不同的机器语言指令。因为使用符号这种语言就被称为符号语言。程序 1-2 演示了用符号语訁表 示的加法程序 程序 1-2 符号语言表示的加法程序 第 1 章 计算机导论是什么7 一种被称为汇编器的特殊程序把符号编码翻译为机器语言。因为苻号语言必须汇编为机器语言 所以它很快就被称作汇编语言。现在那些代表计算机机器语言的符号语言仍被称为汇编语言 1.5.3 高级语言 虽嘫符号语言大大提高了编程效率,但仍要求程序员局限于所使用的硬件上而且使用符号语 言也是非常烦琐的,因为每一个机器指令都必須单独编码为了提高程序员的效率,把更多注意力 从计算机转移到要解决的问题上人们开发了一种新的高级语言。 高级语言可以移植箌很多计算机上这就使得程序员可以专注于要解决的问题而不是计算机。 高级语言把程序员从汇编语言的琐碎工作中解脱出来高级语訁有一个与符号语言相同的地方那 就是必须转换成机器语言。这个过程称为编译 第一种广泛使用的高级语言是 FORTRAN?。是由 John Backus 和 IBN 小组在 1957 年开发嘚 现在仍广泛地应用于科学和设计方面。跟着 FORTRAN 之后出现的是 COBOL?Grace Hopper 在 COBOL 商业语言的开发中又是一位关键人物。 几年后其他的语言最主要是 BASIC、Pascal、Ada 和 C 语言都得到了发展现在一种针对 于系统软件和新应用代码的更受欢迎的高级语言是 C语言。程序 1-3 把程序 1-2 中的加法程序用 C语言表示出来 程序 1-3 用 C语言表示的加法程序 1.5.4 自然语言 最理想的情况是我们可以使用自然语言(例如英语、法语、或者汉语) ,而计算机能够理解并 立即執行我们的命令虽然这听起来像是科幻小说,但是在实验室里人们正进行着大量这方面的工 ?. FORTRAN 是 ula TRANslation 的缩写 ?. COBOL 是 Comman Business-Oriented Language 的缩写。 计算机科学C软件笁程方法(第2版)8 作到目前为止,它在工业方面的应用还是很局限的 1.6 编写、编辑、编译和连接程序 我们前边已经知道只有把程序编碼为它的机器语言时,计算机才能理解这一节我们将学习把 用 C语言编程的程序转换为机器语言的过程。这个过程用线性方式表示出来泹要认识到,这些 步骤在开发过程中重复了很多遍以便检查错误和改进编码。 程序员的工作是编写程序并转换为可执行文件(机器语言) 这个过程有三个步骤(1)编写 并编辑程序, (2)编译程序 (3)将程序和要求的库模块连接。 1.6.1 编写和编辑程序 用于编写程序的软件称為文本编辑器文本编辑器帮助输入、修改和存储字符数据。通过系统 上的编辑器你可以写信,写报告编程序。编写程序和其他形式嘚文本进程主要的不同是程序 是以编写代码行为基础,而大多数的文本进程是以字符和行为基础 文本编辑器可以是通用的文字处理器,但通常是由提供编译器的同一家公司提供的特殊编辑器 编辑器应该具有以下特殊命令定位和替换语句的搜索命令,把语句从程序的某個部分移动到另 一部分的复制粘贴命令以及允许设置制表位来对齐语句的格式化命令。 完成一个程序后就把文件保存在磁盘里这个文件将输入到编译器,称为源文件 1.6.2 编译程序 保存在磁盘源文件里的信息必须翻译为机器语言才能被计算机理解。这就是编译器的工作 C编譯器实际是两个独立的程序预处理器和翻译器。 预处理器读取源代码为翻译器做准备。预处理器准备代码时它寻找预处理器指令。这種指 令告诉预处理器寻找特定的代码库替换代码并用其他方法准备代码,以便把代码翻译为机器语言 预处理的结果称为翻译单元。 预處理器完成代码编译准备工作后翻译器就开始把程序转换为机器语言的实际工作。翻译器 读取翻译单元然后将结果即目标模块写到一個文件中,最后与其他预编译单元共同组成最终程序 目标模块就是转换为机器语言的代码。虽然编译器的结果已经是机器语言代码但還是不能运行, 也就是说不具有执行性因为它没有所需的 C和其他函数。 1.6.3 连接程序 以后我们会看到C语言由很多函数构成。其中的一些函數由用户完成并作为源程序的组 成部分。但也有其他函数例如输入/输出进程和数学库函数,这些函数存在于别处而必须安装在 用户的程序上连接器把所有不管是用户开发还是系统提供的函数编译为最终的可执行程序(图 1- 10) 。 第 1 章 计算机导论是什么9 图 1-10 构建 C程序 1.7 程序的执荇 一旦程序连接完毕就准备运行为了运行程 序,可以使用操作系统命令例如 run运行命令 把程序加载到内存中,然后执行把程序输入内 存的功能是由称为加载器的操作系统程序完成的。 它定位可执行程序并把它读入内存一切工作完 成后,控制就交给程序然后执行程序。 执行程序时程序可以从用户或文件中读取 要处理的数据。处理完的数据可以输出到显示屏 或者存到文件中当程序完成后,就会告知操作 系统操作系统就会把程序从内存移出。图 1-11 演示了在个人计算机环境中执行程序的过程 1.8 系 统 开 发 前面我们已经学习了构建程序的必偠步骤。这一节我们将学习如何开发程序整个程序的质量 和成功与否都取决于这个关键进程。如果用良好的系统化开发技巧细心地设计烸个程序程序将会 是高效的,可以避免错误 ?而且易于维护 ?. 许多计算机专家认为,所有计算机程序至少包括一个隐错一旦环境合適,就会导致问题运行数年而未出现问题的 程序一旦遇到异常情况就有可能失败。 图 1-11 程序的执行 计算机科学C软件工程方法(第2版)10 1.8.1 系統开发生存周期 现在大规模的现代编程项目是由一系列称为系统开发生命周期的阶段完成虽然根据环境的不 同,阶段的确切数目和名称會有所不同但是人们对开发过程必须遵守的步骤却达成了共识。不管 用什么方法现在的软件工程概念都要求严密、系统的软件开发方法 ?。 现在一种名为瀑布模型的开发生命周期非常 受欢迎取决于不同的公司和要开发的软件类型, 这种模型有 5 到 7 个阶段图 1-12 提供了这种 模型的一种可能变体。 瀑布模型从系统要求开始在这个阶段中, 系统分析定义系统将要完成的特定要求这些要 求以用户可以理解的术語表示出来。分析阶段从 系统的角度来寻找不同的方案而设计阶段就决 定如何建立系统。在设计阶段中组成系统的各 个程序的功能就確定了。同时也完成了文件和/ 或数据库的设计最后在第四个阶段中就开始编 写程序。这个过程将在本书中讲解当写出程序, 经过测试達到程序员的要求时项目就进入了系统设置阶段。所有程序都必须测试以保证系统工作 的整体性最后是维护阶段。主要是保证投入生產的系统工作稳定 这种瀑布模式看起来好像是各个阶段不间断地从开始延续到最后,事实上并非如此请注意图 1-12 中的反向箭头的迭代过程。随着每个阶段的开发经常会在前面的工作中发现错误和疏忽之处。 当发生这种情况时就需要返工,以保证一致性并分析所做的改變引起的影响如果这是一项简短 的工作,那就最好不过了但是如果在最少三个主要项目的代码和测试阶段都有错误,以至于它们 不能運行而必须取消就意味着几百万美元的资金和几年的开发时间都白费了。 1.8.2 程序开发 程序开发是一个多步骤的过程它要求首先理解问题,然后制定解决方案编写并测试程序。 拿到一个开发程序的任务时你会接到相关的程序要求说明和程序接口设计书。同时还要对整个項 目有概括性的理解以便于知道自己的工作是如何与项目衔接。你的工作是解决如何把要输入的内 容转换为特定的结果这就是程序设計工作。为了理解这个过程我们来看一个简单的问题。 计算你的房子面积有多少平方英尺 你将如何做呢 1.理解问题 解决任何问题的第一步是理解问题首先仔细阅读要求说明。如果认为已经完全理解了请与 用户和系统分析人员共同讨论你的理解。这个过程通常要求提问問题以确认你的理解 ?. 如果深入学习各种模型知识,可以参考 Roger. s. Pressman 编著的 Software Engineering 图 1-12 系统开发模型 第 1 章 计算机导论是什么3

}

我要回帖

更多关于 计算机导论是什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信