大学计算机基础第十章
一、面向过程的高级语言 ——Pascal Pascal
Pascal语言产生于1968年 Pascal语言产生于1968年,是按结构化程序设计 语言产生于1968 思想设计的第一个语言。它结构小巧清晰, 思想设计的第一个语言。它结构小巧清晰,表达 方式严谨易懂,数据结构和控制结构丰富。用 方式严谨易懂,数据结构和控制结构丰富。 Pascal语言编写的程序可读性和可靠性都比较强, Pascal语言编写的程序可读性和可靠性都比较强, 语言编写的程序可读性和可靠性都比较强 有助于培养良好的程序设计风格, 有助于培养良好的程序设计风格,适合用于程序 设计的理论教学和训练。 设计的理论教学和训练。
程序设计
编制程序的工作称为程序设计, 编制程序的工作称为程序设计,为了有效地进 行程序设计,必须掌握两方面知识: 行程序设计,必须掌握两方面知识: 一门程序设计语言 + 解题的算法 一个好的程序有可靠性、易读性、高效性、 一个好的程序有可靠性、易读性、高效性、可 维护性等良好特性。为达到这些目标, 维护性等良好特性。为达到这些目标,应采用 好的程序设计方法, 好的程序设计方法,以便从方法上更有助于设 计出具有上述特性的程序 程序设计是一门工程技术, 程序设计是一门工程技术,程序设计也是一门 艺术。程序设计中包含很多方法。 艺术。程序设计中包含很多方法。 结构化程序设计和面向对象的程序设计方法。 结构化程序设计和面向对象的程序设计方法。
算法的评价
同一个问题可用不同算法解决 一个算法的质量优劣将影响到算法乃至 程序的效率。 程序的效率。 算法分析的目的在于选择合适算法和改 进算法。 进算法。 一个算法的评价主要从时间复杂度和空 间复杂度来考虑。 间复杂度来考虑。
数据结构基本概念
数据结构( structure) 数据结构(data structure)是指相互 之间存在一种或多种特定关系的数据元 素所组成的集合。 素所组成的集合。
查找ห้องสมุดไป่ตู้
查找,也称为检索, 查找,也称为检索,就是在一组同类型 的数据元素中找出满足条件的元素。 的数据元素中找出满足条件的元素。 关键字(key) 关键字(key)是数据元素中能唯一标 或记录) 识一个数据元素 (或记录) 中某个 数据项。 (些)数据项。 查找的算法包括顺序查找、二分法查找、 查找的算法包括顺序查找、二分法查找、 分块查找、哈希查找等很多种。 分块查找、哈希查找等很多种。
算法的描述
算法的描述方法有自然语言描述、 算法的描述方法有自然语言描述、伪代 流程图、 PAD图等 图等。 码、流程图、N-S图、PAD图等。上述示 例中的算法描述就是一种伪代码的形式。 例中的算法描述就是一种伪代码的形式。 流程图是一种传统的算法表示法, 流程图是一种传统的算法表示法,它利 用几何图形的框来代表各种不同性质的 操作,用流程线来指示算法的执行方向。 操作,用流程线来指示算法的执行方向。 传统流程图的特点是简单直观。 传统流程图的特点是简单直观。
数据结构的内容
数据的逻辑结构:独立于计算机, 数据的逻辑结构:独立于计算机,是数 据本身所固有的。 据本身所固有的。 数据的存贮结构: 数据的存贮结构:是逻辑结构在计算机 存贮器中的映像,必须依赖于计算机。 存贮器中的映像,必须依赖于计算机。 对数据所施加的运算: 对数据所施加的运算:是指所施加的一 组操作总称。 插入、删除、查找等。 组操作总称。如:插入、删除、查找等。 运算的定义直接依赖于逻辑结构, 运算的定义直接依赖于逻辑结构,但运 算的实现必须依赖于存贮结构。 算的实现必须依赖于存贮结构。
面向对象程序设计设计方法 面向对象程序设计设计方法
将问题分解为对象, 对象的数据——属性 , 作用于数 属性, 将问题分解为对象 , 对象的数据 属性 据的操作——方法, 将属性和方法封装成一个整体,供程序 方法,将属性和方法封装成一个整体, 据的操作 方法 设计者使用。对象之间的相互作用通过消息传递来实现。 设计者使用。对象之间的相互作用通过消息传递来实现。 程序设计模式: 对象+消息” 程序设计模式:“对象+消息” 面向对象的分解突出:做什么? 面向对象的分解突出:做什么?大量的工作由相应的对 象来完成, 象来完成,程序员在应用程序中只需说明要求对象完成的任 务。 结构化程序设计的分解突出:如何做? 结构化程序设计的分解突出:如何做?强调代码的功能 是如何得以完成。 是如何得以完成。 面向对象的程序设计语言有: C++、Java、 Basic等 面向对象的程序设计语言有: C++、Java、Visual Basic等
2. 程序的执行过程
计算机执行一条指令分为三步进行: 计算机执行一条指令分为三步进行: 是取指令; 是分析指令; 第1步是取指令;第2步是分析指令;第3 是执行指令。 步是执行指令。每个指令的执行都重复 个步骤。 这3个步骤。 程序的执行过程就是一条条指令的执行 过程。 过程。这是指令要顺序存放和计算机能 高度自动化工作的原因。 高度自动化工作的原因。 冯诺依曼存储程序控制的思想
一、面向过程的高级语言 —— COBOL
COBOL (COmmon Business-Oriented Language) BusinessLanguage) 语言产生于1959 1959年 语言产生于1959年 是为了处理商业活动中大量的数据报表文件而设 计的商业数据处理语言, 计的商业数据处理语言, 广泛用于数据管理领 域。 它结构严谨,层次分明, 它结构严谨,层次分明,可以快速访问和更新报 表文件,比较接近英语, 表文件,比较接近英语,非常适合商业和管理人 士开发商业应用系统软件。 士开发商业应用系统软件。
一、面向过程的高级语言 —— FORTRAN
FORTRAN (Formula Translation)语言产生于1954 Translation)语言产生于1954 年,世界上最早出现的高级程序设计语言,用于科 世界上最早出现的高级程序设计语言, 学计算。 学计算。 它能够很方便的处理复杂的数学计算表达式, 它能够很方便的处理复杂的数学计算表达式,是工 程界最常用的编程语言 它在航空航天、地质勘探、 它在航空航天、地质勘探、天气预报和建筑工程等 领域始终发挥着极其重要的作用。 领域始终发挥着极其重要的作用。 最流行的版本是FORTRAN 77,目前使用FORTRAN 最流行的版本是FORTRAN 77,目前使用FORTRAN 90
计算机程序设计语言的发展
第一代语言——机器语言 机器语言 第一代语言
二进制代码
第二代语言——汇编语言 汇编语言 第二代语言
用与代码含义相类似的英文缩写、 用与代码含义相类似的英文缩写、字母和数字 来代替指令代码。 表示“ 来代替指令代码。 例:ADD 表示“+”
第三代语言——高级语言 高级语言 第三代语言
常见的编程语言
本节简单介绍几种比较常用的高级 程序设计语言的特点和应用领域, 程序设计语言的特点和应用领域,以便 读者根据需求选择一种语言进一步深入 学习程序设计。 学习程序设计。学习高级程序设计语言 时应该循序渐进地掌握这种语言的开发 环境操作、基本语法和常用算法。 环境操作、基本语法和常用算法。
算法及其特征
解决问题的具体的方法和步骤,其实就是算法。 解决问题的具体的方法和步骤,其实就是算法。 算法具备以下一些特征: 算法具备以下一些特征: 输入:算法可以有零或者多个输入。 输入:算法可以有零或者多个输入。 输出:算法可有一个或者多个输出。 输出:算法可有一个或者多个输出。 确定性:算法的每个操作必须具有确定意义, 确定性:算法的每个操作必须具有确定意义,整 个算法的功能是确定的。 个算法的功能是确定的。 有限性:算法的执行必须能够在有限的操作步骤 有限性: 后结束,即在有限时间内解决问题。 后结束,即在有限时间内解决问题。
数据结构的分类
按照数据的逻辑结构划分, 按照数据的逻辑结构划分,数据结构可以分为 线性结构和非线性结构。 线性结构和非线性结构。 数据存贮结构可以分为: 数据存贮结构可以分为: 顺序存贮、链式存贮、索引存贮、 顺序存贮、链式存贮、索引存贮、散列存贮等 线性表、顺序表、链表、 stack)、队列、 )、队列 线性表、顺序表、链表、栈(stack)、队列、
程序设计步骤
分析问题 设计程序(总体设计和详细设计) 设计程序(总体设计和详细设计) 程序编码以及编辑、 程序编码以及编辑、编译和连接 测试程序 编写程序文档 黑盒测试 白盒测试 找出程序中的错误
程序设计方法
1. 结构化程序设计 结构化程序的结构简单清晰,可读性强,模块化强, 结构化程序的结构简单清晰 , 可读性强 , 模块化强 , 描 述方式符合人们解决复杂问题的普遍规律,在软件重用性、 述方式符合人们解决复杂问题的普遍规律,在软件重用性、 软件维护等方面有所进步,可以显著提高软件开发的效率。 软件维护等方面有所进步,可以显著提高软件开发的效率。 在软件设计和实现过程中,采用自顶向下 自顶向下、 ① 在软件设计和实现过程中,采用自顶向下、逐步细化的 模块化程序设计原则。 模块化程序设计原则。 在代码编写时,采用顺序 选择、 顺序、 ② 在代码编写时,采用顺序、选择、循环三种基本控制结 构,避免使用GOTO语句。 避免使用GOTO语句。 GOTO语句
近似与人类自然语言。 近似与人类自然语言。Fortran、basic、cobol等 、 、 等
第四代语言——非过程化的程序语言 非过程化的程序语言 第四代语言
只需描述要解决的问题
高级语言源程序的执行过程
高级语言源程序的执行方式可以分为解释执行 和编译执行。 和编译执行。 解释执行方式类似于我们日常生活中的同步翻 译。 编译执行方式是指预先将采用高级语言编制的 源程序代码“翻译”成目标代码(机器语言), 源程序代码“翻译”成目标代码(机器语言), 因此可以生成可执行的目标程序( 因此可以生成可执行的目标程序(可执行文 件)。 传统的计算机程序的执行过程可以分为编辑 编辑、 传统的计算机程序的执行过程可以分为编辑、 编译、链接和运行4 编译、链接和运行4个过程