




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章计算机软件 3 1计算机软件概述3 2操作系统3 3程序设计语言及其处理系统3 4算法 3 3程序设计语言及其处理系统 3 3 1程序设计语言的分类和成分3 3 2常见程序设计语言简介3 3 3程序设计语言处理系统 2020 3 28 程序设计语言 计算机是无知无觉的机器 它能为我们工作就是因为我们让它执行程序 程序如同开会的议程 每周的课程表 音乐家的乐谱 都是事先规定好再执行 什么是程序设计语言 语言的目的是用于通信程序设计语言用于人与计算机之间的通信程序设计语言是由人使用但计算机可以理解的一种语言程序设计语言用于编制程序 表达需要计算机完成什么任务和怎样完成任务 然后交给计算机去完成 2020 3 28 程序设计语言填补了人与计算机交流的鸿沟 2020 3 28 程序设计语言的分类 按照程序设计语言的发展历程 我们把程序设计语言分为三类 2020 3 28 机器语言 1 机器语言就是计算机的指令系统 由二进制0 1代码指令构成 用机器语言编写的程序 可直接被计算机识别并立即执行 由于不同的计算机具有不同的指令系统 因而在一种类型的计算机上编写的机器语言 在另一种类型的计算机上就不一定能运行 机器语言程序难编写 难修改 难维护 需要用户直接对存储空间进行分配 编程效率极低 机器语言只有计算机发明初期使用 目前 已经极少有人使用这种语言编写程序 2020 3 28 机器语言 2 计算768 12288 1280的值 需要编写如下三行程序 110001 很难看明白 很难修改 2020 3 28 汇编语言 1 汇编语言用助记符来代替机器指令的操作码和操作数比机器语言效率高 但仍然不够直观 汇编语言同样存在着难学难用 容易出错 维护困难等缺点 汇编语言的优点 目标程序占用内存较少 运行效率较高能直接引用计算机的各种设备资源 它通常用于编写系统的核心部分程序 或编写需要耗费大量运行时间和实时性要求较高的程序段 2020 3 28 汇编语言 2 要计算56 71的值 需要编写的程序如图 将56传送到AX寄存器 将71传送到BX寄存器 将BX中的内容加AX中的内容 结果存在BX中 2020 3 28 高级语言 高级语言是面向用户的 基本上独立于计算机种类和结构的语言 其最大的优点是 形式上接近于算术语言和自然语言 主要是英语 高级语言易学易用 通用性强 应用广泛 例如用高级语言计算56 71的值 只要编写程序 S 56 71 即可 C C VisualBasic Java等都是目前较为常用的高级语言 2020 3 28 程序设计语言的成分 高级程序设计语言的种类千差万别 但其基本成分都可归纳为四类 2020 3 28 程序设计语言的成分 数据成分 用于描述程序所处理的数据对象 如对数据类型和数据结构进行说明等 运算成分 用于描述程序中的运算 包括运算符和表达式等 传输成分 用于表达程序中数据的传输 包括输入和输出操作 如赋值语句 I O语句等控制成分 用于描述程序的流程控制 2020 3 28 控制成分 控制成分为程序设计语言提供一种基本框架 有了这个框架 程序才可能完成各种各样的任务 2020 3 28 3 3 2常见程序设计语言简介 世界上的程序设计语言已有上千种之多 下面介绍几种得到了广泛应用的程序设计语言的主要特点 供大家了解 2020 3 28 1 VB语言 VB是VisualBasic的简称 其中 Visual意为 可视化 指的是一种开发图形用户界面GUI的方法 Basic是 初学者符号指令代码 的缩写 VB是由微软公司于1991年开发的一种可视化的 面向对象的结构化高级程序设计语言 可用于开发Windows环境下的各类应用程序 它简单易学 效率高 且功能强大 是初学编程者首选的理想语言 VB是目前国内高校里开设最广泛的程序设计语言之一 2020 3 28 2 C语言 C 和C C语言是1972年至1973年间由美国电话电报公司 AT T 贝尔实验室设计的 C语言是当代最优秀的程序设计语言之一 C语言兼有高级程序设计语言的优点和汇编语言的效率 有效地处理了简洁性和实用性 可移植性和高效性之间的矛盾 C 语言是以C语言为基础发展起来的面向对象程序设计语言 C 语言是对C语言的扩充 运行性能高 因而它非常流行 一直是面向对象程序设计的主流语言 C 发音为CSharp 是微软公司为 NETFramework量身订做的程序语言 C 拥有C C 的强大功能以及VisualBasic简易使用的特性 且与Java较为相似 2020 3 28 3 JAVA语言 Java语言是由SunMicrosystems公司于1995年推出的一种编程语言 已经成为被广泛应用的网络环境编程语言 Java语言被美国著名杂志PCMagazine评为1995年十大优秀科技产品 比尔 盖茨不无感慨地说 Java语言是长时间以来最卓越的程序设计语言 现在JAVA的应用领域比较广泛 主要应用领域有 行业和企业信息化 电子政务及办公自动化 嵌入式设备及消费类电子产品和辅助教学等 2020 3 28 4 FORTRAN语言 FORTRAN是FORmulaTRANslator的缩写 译为 公式翻译器 它是一种主要用于数值计算的面向过程的程序设计语言 广泛应用于科学和工程计算领域 FORTRAN语言是进行大型科学和工程计算的有力工具 它在巨型机上还广为使用 FORTRAN语言目前最新的版本是FORTRAN2008 Fortran语言是一种极具发展潜力的语言 在全球范围内流行过程中 在工程计算领域仍然占有重要地位 2020 3 28 5 MATLAB语言 MATLAB是MatrixLaboratory 矩阵实验室 的缩写 是美国MathWorks公司出品的 面向向量和矩阵运算的提供可视化等功能的数值计算语言 在工业界和学术界很流行MATLAB语言主要应用于工程计算 控制设计 信号处理与通讯 图像处理 信号检测 金融建模设计与分析等领域 MATLAB绘制的一个三维图形 2020 3 28 其他编程语言语言 用于人工智能领域的LISP语言 PROLOG语言用于飞行器控制软件中的Ada语言等如果有兴趣 考过一级考试后 可以选择一门编程语言进行学习 参加计算机二级考试 提高自己的计算机水平 2020 3 28 3 3 3程序设计语言处理系统 机器语言是用二进制代码编写的 可以直接被计算机识别并执行 而其他语言引入了助记符等符号 计算机是没有办法直接执行的 于是 就需要对这些语言进行适当的转换才可以 这个工作就是由程序设计语言处理系统来完成的 程序设计语言处理系统 如C语言编译器等 是一种系统软件 它通常包含翻译程序 连接程序和装入程序等 2020 3 28 翻译程序是把甲语言编写的程序翻译为等价的乙语言编写的程序 其中甲语言编写的程序称为源程序 乙语言编写的程序称为目标程序 按照不同的翻译处理方法 翻译程序可分为三类 汇编程序 解释程序和编译程序 2020 3 28 1 汇编程序 汇编程序是把汇编语言书写的程序翻译成与之等价的机器语言程序的翻译程序 汇编程序输入的是用汇编语言书写的源程序 输出的是用机器语言表示的目标程序 2020 3 28 2 解释程序 解释程序是高级语言翻译程序的一种 它将源语言 如BASIC 书写的源程序作为输入 解释一句后就提交计算机执行一句 并不形成目标程序 就像外语翻译中的 口译 一样 说一句翻一句 不产生全文的翻译文本 由于解释程序的方便性和交互性较好 早期一些高级语言采用这种方式 如BASIC dBASE 但它的弱点是运行效率低 程序的运行依赖于开发环境 不能直接在操作系统下运行 2020 3 28 3 编译程序 编译程序对源程序进行翻译的方法相当于 笔译 是把用高级程序设计语言书写的源程序 翻译成等价的汇编语言或机器语言的目标程序的翻译程序 编译程序广泛地用于翻译规模较大 复杂性较高 且需要高效运行的高级语言 如C语言 Java等 书写的源程序 经过翻译程序的处理后 连接程序将多个翻译过的目标程序和库文件进行组合 装入程序将目标程序装入内存并启动执行 3 4算法 3 4 1算法的概念3 4 2算法的描述3 4 3算法设计举例3 4 4算法的分析 程序 算法 数据结构 2020 3 28 3 4 1算法的概念 在日常生活中 人们所做的任何事情 都有一定的方法和步骤 上楼可以走楼梯或者坐电梯 出行可以选择骑自行车 坐公交车或者打车等 评定奖学金 需要先收集每个同学相应课程的成绩 然后按照学分加权求和 最后根据成绩高低评定奖学金级别等 计算机解决问题也有相应的方法和步骤 即算法简单地说 算法就是解决问题的方法和步骤 2020 3 28 例1交换两杯墨水 问题 有两个杯子A和B 分别装满了红墨水和蓝墨水 现在要将两个杯子中的墨水交换过来 问如何实现 A B C 请思考 其交换步骤如下 将杯子A中的红墨水装入杯子C中 将杯子B中的蓝墨水装入杯子A中 将杯子C中的红墨水装入杯子B中 2020 3 28 例2求和 问题 用计算机求1到100之间的自然数的和 如何实现 我们用变量Sum来存储要求的和 可以设计如下过程 令Sum的初值为0 读取一个需要累加的数据 将该数据累加到Sum中 重复步骤 和 直到把1 100之间的所有数都累加到Sum中 输出累加结果Sum 反复进行加运算 2020 3 28 算法的特征 1 能行性 算法中的每一步操作都必须是能实现的 即在计算机的能力范围之内 如在算法中不允许出现分母为0的情况 在实数范围内不能求一个负数的平方根等 2 有穷性 一个算法必须能在有限的时间内做完 即算法必须能在执行有限个步骤之后终止 3 确定性 算法中的每一步必须有确切的含义 不允许有模棱两可的解释和多义性 4 输出 一个算法有一个或多个 1 输出 以反映对输入数据加工后的结果 没有输出的算法是毫无意义的 另外 一个算法还应该有零个或多个输入 以描述运算对象的初始情况 2020 3 28 3 4 2算法的描述 描述算法有多种不同的工具 采用不同的算法描述工具 对算法描述的质量有很大的影响 常见的算法描述工具有 2020 3 28 1 自然语言 前面交换两杯墨水和求和都是使用自然语言对算法进行的描述 用自然语言描述算法通俗易懂 使用简单 人们可以根据自己的思路快速地将算法描述出来 但使用自然语言描述算法 尤其是比较复杂的算法时 一般会比较冗长 并且容易出现歧义 而且也不便于翻译成计算机程序设计语言 这种方法一般不作为正式的算法描述方式 2020 3 28 2 流程图 1 流程图风行于20世纪五六十年代 它采用几何图形来描述问题 是一种图形表示方法 流程图简明直观 便于交流 至今仍在使用 流程图常用的符号包括 起止框表示算法的起始或终止 输入输出框表示输入数据或输出计算结果 框内应填写需要输入或输出的量 处理框表示执行计算表达式和赋值操作 框内用文字或符号表明具体实现的操作 判断框根据条件判断算法继续执行的走向 框内应填上条件 流程线表示算法中某操作的流向 2020 3 28 2 流程图 2 求和的算法用流程图描述 如右图在流程图中可以清晰地看出程序的整体结构和数据流向 使用流程图描述算法 让人感到流程的描述清晰简洁 容易表达分支结构 它不依赖于任何具体的计算机和计算机程序设计语言 从而有利于不同环境的程序设计 2020 3 28 3 伪代码 伪代码是用介于自然语言和程序设计语言之间的文字和符号来描述算法的工具 它书写方便 格式紧凑 易于理解 便于向计算机程序设计语言 即通常所说的程序 过渡 伪代码描述算法不需要让计算机接收 又吸取了编程语言代码表达精练的特点 容易转换为程序设计语言 算法 辗转相除法求最大公约数BEGINinputm n 输入正整数m和n do r mmodn m n n r whiler 0 printm 输出最大公约数 END 2020 3 28 3 4 3算法设计举例 使用计算机求解问题通常包括如下几个步骤 1 理解和确定问题 2 寻找解决问题的方法和规则 并表示成算法 3 编程 即使用程序设计语言描述算法 4 运行程序 获得问题的解答 5 对算法进行评估 算法设计 算法的设计一般采用由粗到细 由抽象到具体的逐步求精的方法 2020 3 28 求最值 问题 给定n个数 如何求出这组数中的最大值 粗略思路如下 先假定这组数中某个数为最大值 从剩下的数中选一个数与最大值比较 如果该数更大 则把更大的数作为最大值 循环执行 直到把所有的数都与最大值比较完成 这时 所得到的最大值即为这组数的最大值 2020 3 28 求最值 举例 以5 7 2 9 4这组数为例 我们利用上述算法来求最大值 具体步骤如下 步骤一 令M 5 步骤二 比较M和7 由于7大 故M 7 步骤三 比较M和2 由于M大 故M的值不变 步骤四 比较M和9 由于9大 故M 9 步骤五 比较M和4 由于M大 故M的值不变 步骤六 经过上述运算 M的值最终为9 2020 3 28 3 4 4算法的分析 正如上楼可以选择走楼梯 也可以选择坐电梯 用计算机解决同一问题也会有不同的算法 而一个算法的质量优劣将影响到算法乃至程序的效率 算法分析的目的在于选择合适的算法和改进算法 一个算法的分析主要从算法的正确性 简单性 时间复杂度和空间复杂度几个方面来考虑 2020 3 28 算法的正确性和简单性 算法的正确性是指给定有效输入后 经过有限时间的计算 产生正确的输出结果 算法的简单性是指算法是否容易理解 是否容易验证其正确性 程序是否容易调试 当然 简单的算法效率不一定高 要在保证一定效率的前提下力求算法简单 2020 3 28 时间和空间复杂度 时间复杂度是指执行算法所需要的计算工作量 可以简单地理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行招聘考试题讲解题及答案
- 银行业能力测试题及答案
- 上海专业考试试题及答案
- 药学专业招聘试题及答案
- 宣传专业试题及答案
- 《烹饪原料初加工工艺》项目四干货原料的初加工
- 湖北省十堰市 2025年 七年级上学期期中考试地理试卷(含答案)
- 墙体铝扣板施工方案
- 跨国贸易合同范本
- 2026届安徽省合肥市普通高中学业水平选择性考试物理模拟检测试卷(三)
- 2025北京京剧院招聘工作人员10人考试备考题库及答案解析
- 检修现场管理培训课件
- 信息网络安全考题「附答案」
- 消防设备设施操作讲解培训课件P
- 2025年执业医师考试-中医师承及确有专长考核历年参考题库含答案解析(5卷单选一百题)
- 中国绳结课件
- 中国民族服饰课件
- 第9课《天上有颗“南仁东星”》课件 2025-2026学年统编版八年级语文上册
- 早读的好处教学课件
- 人教版高一上学期数学(必修一)《1.3集合的基本运算》同步练习题及答案
- 大店童装开业活动方案
评论
0/150
提交评论