《银行常用程序设计语言》由会员分享,可在线阅读,更多相关《银行常用程序设计语言(41页珍藏版)》请在金锄头文库上搜索。
1、第第3 3章章银行常用程序设计语言银行常用程序设计语言主要内容主要内容3.1 结构化程序设计基本原理结构化程序设计基本原理程序设计基本要素程序设计基本要素 算法设计初步算法设计初步 数据结构初步数据结构初步 程序设计方法初步程序设计方法初步 3.2 银行常用程序设计语言银行常用程序设计语言程序设计方法初步程序设计方法初步 C语言概述语言概述 面向对象程序语言概述面向对象程序语言概述 序序算法算法是一个很古老的数学概念是一个很古老的数学概念,最基本的算法就最基本的算法就是加、减、乘、除。是加、减、乘、除。计算机程序设计计算机程序设计=算法算法+数据结构数据结构+程序设计方法程序设计方法 +计算机
2、语言计算机语言其中的核心是其中的核心是算法。算法。程序是算法的具体表现形式之一程序是算法的具体表现形式之一 ;程序编码是算法设计的最终表现形式程序编码是算法设计的最终表现形式, 而瑞士而瑞士计算机科学家计算机科学家Niklaus Wirth是提出是提出 数据结构数据结构+算法算法=程序程序Algorithms +Data Structure=Programming的第一人。的第一人。程序设计设计的实质是程序设计设计的实质是:确定数据的结构确定数据的结构, 再加再加上一个好算法。上一个好算法。 尼克劳斯尼克劳斯. .沃思沃思(Niklaus Wirth)(Niklaus Wirth)PASCAL
3、PASCAL之父及之父及结构化程序设计首创者结构化程序设计首创者19841984年图灵奖荣获者年图灵奖荣获者程序、算法和进程程序、算法和进程算法是一组明确的、可执行的步骤的有序集合。是指令的有算法是一组明确的、可执行的步骤的有序集合。是指令的有限序列限序列, 其中每条指令表示一个或多个操作。其中每条指令表示一个或多个操作。如算法:如算法:F=(9/5)C+32算法的含义与程序十分相似,但又有区别:算法的含义与程序十分相似,但又有区别:一个程序不一定满足有穷性一个程序不一定满足有穷性, 如如OS只要系统不遭破坏只要系统不遭破坏, 它永远它永远不会停止工作不会停止工作, OS不是一个算法不是一个算
4、法;程序中的指令必须是计算机可执行的程序中的指令必须是计算机可执行的, 而算法中的指令无此而算法中的指令无此限制限制;算法代表了对问题的解算法代表了对问题的解, 而程序是算法在计算机上特定的实而程序是算法在计算机上特定的实现现, 程序是一个算法的表达;程序是一个算法的表达;一个算法若用程序设计语言来表达一个算法若用程序设计语言来表达, 它就是一个程序。它就是一个程序。程序、算法和进程程序、算法和进程算法与数据结构相辅相成算法与数据结构相辅相成:解决某一特定类型的问题的算法可选定不同的数据解决某一特定类型的问题的算法可选定不同的数据结构结构, 而选择恰当与否将直接影响算法的效率而选择恰当与否将直
5、接影响算法的效率;反之反之, 一种数据结构的优劣由各种算法的执行来体现。一种数据结构的优劣由各种算法的执行来体现。进程进程是执行一个算法的活动。是执行一个算法的活动。结构化程序设计结构化程序设计(structured programmingSP)概念概念:结构化程序设计:结构化程序设计(SP)是由是由E.Dijkstra(戴文斯特拉戴文斯特拉)于上于上世纪世纪70年代提出年代提出,它主张用它主张用顺序、选择和重复顺序、选择和重复三种基本控制结三种基本控制结构来嵌套连接成具有复杂层次的构来嵌套连接成具有复杂层次的“结构化程序结构化程序”,每种基本结,每种基本结构只有一个出口和一个入口,并完成单一
6、操作。构只有一个出口和一个入口,并完成单一操作。基本思想基本思想:支持自顶向下,逐步求精的设计思想。:支持自顶向下,逐步求精的设计思想。优点优点:清晰(最大优点)、生产率高、具有固定风格、易维:清晰(最大优点)、生产率高、具有固定风格、易维护并可重新设计。护并可重新设计。对于大多数程序语言来讲,只要保持固定的风格和使用预处对于大多数程序语言来讲,只要保持固定的风格和使用预处理技术,便可执行结构化程序。理技术,便可执行结构化程序。关于关于SP结构化程序设计方法结构化程序设计方法(SP)(SP)可归纳为三点:可归纳为三点: 1 1、由顶向下、由顶向下(Top Down)(Top Down)逐步精细
7、的程序设计方法。逐步精细的程序设计方法。 2 2、使用三种基本控制结构、使用三种基本控制结构( (顺序、选择、循环顺序、选择、循环) )来来 构造构造单入口单出口单入口单出口的程序。的程序。 3 3、采用主程序员组的开发人员的组织方式。、采用主程序员组的开发人员的组织方式。5 5个子系统个子系统SS1S2S3S4S5S4.1S4.2S4.3S5.1S5.2S5.3S5.43.1 结构化程序设计基本原理结构化程序设计基本原理3.1.1 程序设计基本要素程序设计基本要素1.解题的基本模式解题的基本模式 人解题的基本模式人解题的基本模式计算机解题的基本模式计算机解题的基本模式以人为主导以人为主导,
8、计算机为主体计算机为主体计算机只部分替代人脑的功能计算机只部分替代人脑的功能2.问题分析问题分析问题分析的诸环节问题分析的诸环节精确描述问题精确描述问题:力求考虑周密力求考虑周密,分析详尽分析详尽,描述精确。描述精确。识别数据输入识别数据输入:识别哪些数据需从外部提供识别哪些数据需从外部提供(输入输入),如何提供如何提供.判定信息输出判定信息输出:从计算机输出必要的信息从计算机输出必要的信息,如何传送。如何传送。正确设置变量正确设置变量:用于输入数据、处理、输出等。用于输入数据、处理、输出等。数据输入(原始数据)数据处理(中间结果)信息输出(最终结果)计算机内存单元以变量形式提供描述、处理和存
9、储如如:求解求解ax2+bx+c=0的实根的实根, 要用系数要用系数a, b, c和和x1, x2变量变量建立数学模型建立数学模型: :对给定问题抽象出数学描述形式。是问题分对给定问题抽象出数学描述形式。是问题分析的核心。数值型问题易建立数学模型析的核心。数值型问题易建立数学模型( (如如F=(9/5)C+32) , ,而而非数值型问题则较难。非数值型问题则较难。数学解析表达式仅仅是数学模型的主要形式之一,而切不可数学解析表达式仅仅是数学模型的主要形式之一,而切不可误以为误以为“数学模型就是数学解析表达式数学模型就是数学解析表达式”。 决定处理方式决定处理方式: :决定用人工还是计算机处理。决
10、定用人工还是计算机处理。采用计算机处理方式的判定条件如下:采用计算机处理方式的判定条件如下: 当人工处理方式所需时间和费用比计算机处理方式代价高时;当人工处理方式所需时间和费用比计算机处理方式代价高时; 当解决所给定问题的数值计算或数据处理工作量非常大,难于用人工当解决所给定问题的数值计算或数据处理工作量非常大,难于用人工处理方式来进行时;处理方式来进行时; 当同一性质的给定问题重复出现率高,要求多次作类似处理,而且每当同一性质的给定问题重复出现率高,要求多次作类似处理,而且每次解决有关问题的处理过程基本上大向小异;次解决有关问题的处理过程基本上大向小异; 当要求解决所给问题的响应速度快、信息
11、可靠性好、数据精度高、自当要求解决所给问题的响应速度快、信息可靠性好、数据精度高、自动化程度高时。动化程度高时。选择计算方法选择计算方法: :精心选择最佳的计算方法精心选择最佳的计算方法. .结论结论:问题分析事关重大问题分析事关重大, 必须高度重视必须高度重视.例例3-11 求一元五次方程求一元五次方程x5+7x-60的实根(绝对误差精确到的实根(绝对误差精确到0.000001)的计算方法,可)的计算方法,可有如下两种迭代法,但其结果却截然不同。有如下两种迭代法,但其结果却截然不同。先看计算方法先看计算方法1:x2= 其迭代计算过程及结果如下:其迭代计算过程及结果如下:迭代次数迭代次数 x1
12、 x2 绝对误差绝对误差 |x1-x2| 1 0.000000 1.430970 1.430970 2 1.430970 - 1.320610 2.751580 10 1.742900 - 1.440400 3.183300 11 - 1.440400 1.742900 3.183300显然,计算方法显然,计算方法1无论迭代计算多少次,永远不可能求得合乎要求的原方程的实根。无论迭代计算多少次,永远不可能求得合乎要求的原方程的实根。再看计算方法再看计算方法2:x2=6(x14+7),其迭代计算过程及结果如下:,其迭代计算过程及结果如下:迭代次数迭代次数 x1 x2 绝对误差绝对误差 |x1-x2
13、| 1 0.000000 0.857143 0.857143 2 0.857143 0.795780 0.061363 3 0.795780 0.810699 0.014919 9 0.807955 0.807957 0.000002 10 0.807957 0.807957 0.000000结论结论: :结果发散结果发散 算法失败算法失败结论结论: :结果收敛结果收敛 看法成功看法成功3.1.2 算法设计初步算法设计初步继问题分析阶段之后,就进入应用计算机解决问题继问题分析阶段之后,就进入应用计算机解决问题的的关键性关键性阶段阶段算法设计(算法设计(algorithm design),),即
14、即设计算法的全过程设计算法的全过程。算法是计算机程序设计的。算法是计算机程序设计的核核心心,是计算机科学中最基本的重要概念之一。,是计算机科学中最基本的重要概念之一。 3.1.2 算法设计初步算法设计初步1.系统与算法系统与算法 可控系统与非控系统可控系统与非控系统可控系统可控系统:与人类关系密切相关与人类关系密切相关. 即系统运行全过程中施即系统运行全过程中施控子系统与受控子系统彼此响应、协同工作的行为方式。控子系统与受控子系统彼此响应、协同工作的行为方式。其根本模式可抽象为系统算法其根本模式可抽象为系统算法(system a1gorithm),简称,简称算法算法 非控系统非控系统:如地震如
15、地震,海啸海啸,台风等台风等.当且仅当系统目标、操作执行者、操作对象、操作方式、当且仅当系统目标、操作执行者、操作对象、操作方式、控制方式都相同的算法,才是相同的算法。控制方式都相同的算法,才是相同的算法。算法公式五大要素算法公式五大要素:算法:算法=系统目标系统目标+操作执行者操作执行者+操作对操作对象象+操作方式操作方式+控制方式控制方式 算法、程序和进程算法、程序和进程算法的定义算法的定义: 算法是一组算法是一组明确明确的的, 可执行可执行的步骤的的步骤的有有序集合序集合。程序程序: 是一个算法的表达。是一个算法的表达。进程进程: 是执行程序的活动是执行程序的活动, 因此一个进程可等价地
16、定因此一个进程可等价地定义为执行算法的活动义为执行算法的活动.结论结论: 程序、算法和进程是不同的程序、算法和进程是不同的, 但也是有联系的但也是有联系的,一个程序是一个算法的表示一个程序是一个算法的表示, 而一个进程又是执行一而一个进程又是执行一个算法的活动。个算法的活动。2.计算机与算法计算机与算法算法算法:是解题过程的精确描述是解题过程的精确描述,由有限条可完全机械执行的由有限条可完全机械执行的,有确定结果的有确定结果的指令指令(或命令或命令,语句语句)构成构成.所谓所谓计算机算法计算机算法,是指是指: “人人计算机计算机”系统为解决给定问题系统为解决给定问题, 需要以需要以“人为人为主
17、导、计算机为主体主导、计算机为主体”, 对所论问题的数据对所论问题的数据, 采取所设定的顺序结构、选择采取所设定的顺序结构、选择结构、循环结构、并行结构、子算法结构及其结构化组合的控制方式结构、循环结构、并行结构、子算法结构及其结构化组合的控制方式, 来来组织和控制所认定的操作方式组织和控制所认定的操作方式, 并一步一步具体实施的有穷操作过程的描并一步一步具体实施的有穷操作过程的描述。述。 人的人的主导主导作用作用:算法设计算法设计程序编码程序编码结果分析。结果分析。计算机的计算机的主体主体作用作用:计算机按好算法编写的程序执行并出结果计算机按好算法编写的程序执行并出结果借助计算机来解决给定的
18、问题,其热点、重点、难点都是算法设汁,而借助计算机来解决给定的问题,其热点、重点、难点都是算法设汁,而绝不是人们常常误认为的程序编码。因此循着绝不是人们常常误认为的程序编码。因此循着“对对好好巧巧妙妙绝绝”的的算法设计发展轨迹,努力探索和追求解决同一问题的算法族中佼佼者算法设计发展轨迹,努力探索和追求解决同一问题的算法族中佼佼者最优算法,是算法设计人员应有的宝贵品质和良好习惯。最优算法,是算法设计人员应有的宝贵品质和良好习惯。 3.算法的系统目标算法的系统目标算法之所以特别重要和有用,并不是算法本身,而是算法算法之所以特别重要和有用,并不是算法本身,而是算法被执行(即其操作被一步一步具体施行)
19、后所输出的信息被执行(即其操作被一步一步具体施行)后所输出的信息执行结果执行结果。因为执行结果不仅是算法的系统目标的具体。因为执行结果不仅是算法的系统目标的具体实现,尤其是人们所关心结果的具体兑现。因此,凡能正实现,尤其是人们所关心结果的具体兑现。因此,凡能正确实现系统目标的算法,即能向人们提供正确及时、清晰确实现系统目标的算法,即能向人们提供正确及时、清晰直观、简明易懂、信息完备的执行结果的算法,都是应当直观、简明易懂、信息完备的执行结果的算法,都是应当提倡的良好算法;反之,则是应该防止的病态算法甚至错提倡的良好算法;反之,则是应该防止的病态算法甚至错误算法误算法 。例例3-13:试设计并比
20、较:试设计并比较“求最小求最小1、2、3位数的算术平均数位数的算术平均数”的良好算法和病态算法。的良好算法和病态算法。4.算法的操作执行者与操作对象算法的操作执行者与操作对象算法的操作执行者,其主导是人,其主体是计算机,要妥然算法的操作执行者,其主导是人,其主体是计算机,要妥然处理好两者关系;处理好两者关系;算法的操作对象必然是解决给定问题所涉及到的算法的操作对象必然是解决给定问题所涉及到的数据数据; 避免出现脱离数据的算法和脱离算法的数据;避免出现脱离数据的算法和脱离算法的数据;优先使用优先使用最基础的数据类型最基础的数据类型, 特别是整型、实型、字符(串)特别是整型、实型、字符(串)型和逻
21、辑型。型和逻辑型。5.算法的操作方式与控制方式算法的操作方式与控制方式操作方式:分成数据运算和职能操作操作方式:分成数据运算和职能操作职能操作职能操作:是数据输入、内部处理和数据输出操作的总称。是数据输入、内部处理和数据输出操作的总称。三大基本职能操作:三大基本职能操作:输入输入操作、操作、赋值赋值操作与操作与输出输出操作操作,是算法设计的基础是算法设计的基础. 算法的流程控制与控制结构算法的流程控制与控制结构 :顺序顺序:最简单最简单选择选择:最常用结构之一最常用结构之一循环循环:也是最常用结构之一也是最常用结构之一并行并行:子算法子算法:上述前三种统称为上述前三种统称为算法基本结构算法基本
22、结构 共性共性: :一个入口一个入口. .一个出口一个出口, ,无死程序无死程序( (永远执行不到永远执行不到),),无死循环块无死循环块举例举例设计一算法,求设计一算法,求S=12+23+34+910算法算法1:算法:算法:开始开始S0S0;k k 1K10?Ss+k*(k+1)k k k+1“S= ”,s结束结束开始开始S0S0;k k 1Ss+k*(k+1)k k k+1K10?“S= ”,s结束结束先判后运算先判后运算先运算后判先运算后判6.算法的基本特征算法的基本特征 有穷性有穷性:有始有终是算法的最基本特征有始有终是算法的最基本特征, 即算法必须由有即算法必须由有限步组成(限步组成
23、(P53中的例中的例3-16不是算法)。不是算法)。确定性确定性:算法的每步操作必须唯一确定算法的每步操作必须唯一确定, 无歧义性。无歧义性。数据输入数据输入:有零个或多个输入项。有零个或多个输入项。信息输出信息输出:一个算法至少有一个已获得有效信息的输出操一个算法至少有一个已获得有效信息的输出操作。作。可执行可执行 性性:各步操作均能由计算机执行有穷次完成。各步操作均能由计算机执行有穷次完成。3.1.3 数据结构初步数据结构初步结构结构:可认为是特定元素间的关系可认为是特定元素间的关系数据结构数据结构: 即数据间的关系即数据间的关系.一般说来,一般说来,数据的组织和构造方式称为数据结构数据的
24、组织和构造方式称为数据结构( Data structure),且可概述为且可概述为: 数据结构数据结构=系统目标系统目标+操作执行者操作执行者+数据性质数据性质+数据组织。数据组织。也可简单理解为也可简单理解为 数据结构数据结构=数据数据+关系关系 数据结构数据结构=(D,R)其中,其中,D是数据元素的有限集,是数据元素的有限集,R是是D上关系的有限集。上关系的有限集。研究数据的性质、规律及其组织和构造方式、方法的计研究数据的性质、规律及其组织和构造方式、方法的计算机科学分支也称为数据结构算机科学分支也称为数据结构 常见的数据结构常见的数据结构:数组、记录、文件、队列、串、链表、数组、记录、文
25、件、队列、串、链表、树、图、数据库等树、图、数据库等学习数据结构的目的学习数据结构的目的早期的计算机主要处理数值问题早期的计算机主要处理数值问题, 程序员的精力主要代集中在程程序员的精力主要代集中在程序设计的技巧上序设计的技巧上, 无需重视数据结构无需重视数据结构, 随着计算机应用领域的发展随着计算机应用领域的发展, 非数值计算问题占了非数值计算问题占了90%以上的时间以上的时间, 解决这类问题的关键不再解决这类问题的关键不再是数学分析和计算方法是数学分析和计算方法, 而是要设计出合适的数据结构。而是要设计出合适的数据结构。例学生信息检索系统例学生信息检索系统, 当需要查找某学生的有关情况当需
26、要查找某学生的有关情况, 需建立一个需建立一个按学号顺序排列的信息表按学号顺序排列的信息表,以及分别按姓名、专业、年级排列的索以及分别按姓名、专业、年级排列的索引表,这引表,这4个表构成的文件就是学生信息系统的数学模型。在这个表构成的文件就是学生信息系统的数学模型。在这类文档管理数学模型中,计算机处理的对象间存在简单的线性关类文档管理数学模型中,计算机处理的对象间存在简单的线性关系。故称为线性数据结构。系。故称为线性数据结构。描述这类非数值计算问题的数学模型不再是数学方程,而是如表、描述这类非数值计算问题的数学模型不再是数学方程,而是如表、树、图之类的数据结构。树、图之类的数据结构。因此,因此
27、,数据结构主要研究非数值计算的程序设计中所出现的计算数据结构主要研究非数值计算的程序设计中所出现的计算机操作对象,以及它们间的关系和操作的学科。机操作对象,以及它们间的关系和操作的学科。学号学号姓名姓名性别性别专业专业年级年级980001吴志成吴志成男男计算机计算机98级级980002李芳李芳女女信息管理信息管理98级级990301刘丽刘丽女女数学数学99级级990302张会友张会友男男信息管理信息管理99级级990303石宝国石宝国男男计算机计算机99级级000801何文颖何文颖女女计算机计算机2000级级000802赵胜利赵胜利男男数学数学2000级级000803崔文靖崔文靖男男信息管理信
28、息管理2000级级010601刘丽刘丽女女计算机计算机2001级级010602魏永呜魏永呜男男数学数学2001级级崔文靖崔文靖8何文颖何文颖6李芳李芳2刘丽刘丽3,9石宝国石宝国5魏永呜魏永呜10吴志成吴志成1赵胜利赵胜利7张会友张会友4计算机计算机1, 5, 6, 9信息管理信息管理2, 4, 8数学数学3, 7, 102000级级6. 7, 82001级级9, 1098级级1, 299级级3, 4, 5学生信息表学生信息表姓名索引表姓名索引表专业索引表专业索引表年级索引表年级索引表123456 78910学生信息查询系统中的数据结构学生信息查询系统中的数据结构四类基本逻辑数据结构示意图四类
29、基本逻辑数据结构示意图集合集合: :数据元素属同一集合数据元素属同一集合, ,松散结构松散结构线性结构线性结构: :数据元素间存在一对一关系数据元素间存在一对一关系树型结构树型结构: :数据元素间存在一对多关系数据元素间存在一对多关系 图状结构图状结构: :数据元素间存在多对多关系数据元素间存在多对多关系3.1.4 程序设计方法初步程序设计方法初步当用计算机语言来描述一个算法时当用计算机语言来描述一个算法时, 则其表述形式则其表述形式就是计算机语言程序就是计算机语言程序, 简称计算机程序。简称计算机程序。(Computer program)或程序。而设计程序的全过或程序。而设计程序的全过程,则
30、称程序设计(程,则称程序设计(Program design)。)。算法是程序的源泉和基础,算法设计是程序设计算法是程序的源泉和基础,算法设计是程序设计的核心和关键的核心和关键 。程序是算法与数据结构的统一。程序是算法与数据结构的统一。1.程序设计方法学的产生程序设计方法学的产生源于软件危机的产生源于软件危机的产生 程序设计方法学是计算机科学的重要分支;程序设计方法学是计算机科学的重要分支;其核心是其核心是结构化算法的控制原则结构化算法的控制原则主要包括下述重要内容:主要包括下述重要内容:如何设计数据结构的方法;如何设计数据结构的方法; 算法构造、实施与证明方法;算法构造、实施与证明方法; 程序
31、连接方法;程序连接方法; 程序调试、测试及验证方法;程序调试、测试及验证方法; 程序设计技术与方法程序设计技术与方法 。2.程序设计表现技术程序设计表现技术(1)程序流程图与程序流程图与N-S图图程序设计表现技术无非是两大类:以图形为描述基础的程序设计表现技术无非是两大类:以图形为描述基础的图图形表现技术形表现技术和以语言为描述基础的和以语言为描述基础的语言表现技术。语言表现技术。其中图其中图形表现技术有许多种,例如:形表现技术有许多种,例如:Jackson图(把数据结构转换图(把数据结构转换成软件结构与过程)、成软件结构与过程)、SPD(Structured Programming Diag
32、ram)图、图、PAD(Problem Analysis Diagram,问题分析图)问题分析图)和和N-S图图,又名盒图等。又名盒图等。程序流程图是最古老的设计表达工具程序流程图是最古老的设计表达工具, 但存在一定缺点但存在一定缺点;N-S图代替了程序流程图。图代替了程序流程图。 (2)用)用N-S图表示的图表示的3种基本控制结构种基本控制结构三种基本控制结构三种基本控制结构:顺序结构顺序结构: 顺序执行;顺序执行;选择结构框选择结构框: 多者必择其一多者必择其一,且仅择其一;且仅择其一;循环结构框:循环结构框: 当型循环当型循环(Do While P)结构框结构框:先测试循环先测试循环 直
33、到型直到型(Do Until P)循环结构框循环结构框:后测试循环后测试循环 S1S2T 条件 FS1S2DO WHILE条件SDO UNTIL 条件S 顺序顺序 选择性选择性 先测试循环先测试循环 后测试循环后测试循环两种循环结构框两种循环结构框psNFTDO WHILE PDO WHILE P当型循环当型循环先判断终止条件先判断终止条件SDO WHILE PspNFTDO UNTIL PDO UNTIL P直到型循环直到型循环先执行再判终止条件先执行再判终止条件SDO UNTIL P循环体即循环体即S S块块例:在一组数中找出其中的最大数例:在一组数中找出其中的最大数TrueFalseMa
34、x=A(1), I=2IN ?MaxA(I) ?Max=A(I)I=I+1FalseMax=A(1)For I = 2 To NMax A(I)TMax = A(I) F输出输出MAXMAX值值True程序流程图程序流程图N-S图图3.2 银行常用程序设计语言银行常用程序设计语言面向机器的语言高级语言(第3代)甚高级语言机器语言(第1代)汇编语言(第2代)基础语言结构化语言面向对象语言第4代语言图图 3.7 3.7 程序设计语言的发展和分类程序设计语言的发展和分类FORTRANCOBOLBASICPASCALCC+JAVA3.2.1 COBOL语言概述语言概述1.COBOL语言语言(Commo
35、n Business Oriented Language, 通用商业语言通用商业语言)的的发展概况发展概况 :问世于问世于1959年年, 被称为是被称为是”用于管理的语言用于管理的语言”,是目前世界上使,是目前世界上使用最多的计算机语言之一,上至大型机小到微型机用最多的计算机语言之一,上至大型机小到微型机.2.COBOL语言的特点语言的特点 优点优点:最适合数据处理领域;最适合数据处理领域;比较接近于自然语言比较接近于自然语言(英语英语):看程序好像读一篇英语文章看程序好像读一篇英语文章ADD A TO B ;A+BB MOV C TO D ;将变量将变量C的值送到变量的值送到变量D中中通用性
36、强通用性强:标准化早标准化早, 程度高程度高结构严谨结构严谨, 层次分明层次分明:分分4部若干节部若干节, 段后是语句段后是语句缺点缺点:繁琐繁琐, 源程序冗长源程序冗长 3.最简单的最简单的COBOL程序介绍程序介绍例例3-19 使计算机在指定的外部设备使计算机在指定的外部设备(终端显示器或打印机终端显示器或打印机)上上显示显示(或打印或打印)出字符串出字符串“This is a COBOL program”,然后停,然后停止运行。止运行。列列:1 6 7 8 12 IDENTIFICATION DIVISION. (标识部标识部) PROGRAM-ID. EXAM1. (程序段标识程序段标
37、识) ENVI RONMENT DIVISION. (环境部或称设备部环境部或称设备部) DATA DIVISION. (数据部数据部) PROCEDURE DIVISION. (过程部过程部) S. DISPLAY This is a COBOL program. STOP RUN.说明说明: 程序倒数第程序倒数第2段的段的“S.”是段名是段名, 在本例中过程部只包含一在本例中过程部只包含一个段个段, 即即S段段; 在在S段中有两个句子段中有两个句子, 每个句子以句点每个句子以句点“.”和空格和空格结束。结束。程序名程序名保留字保留字指出程序名指出程序名举例举例列:列:1 678 12 ID
38、EN TIFICATION DIVISION. (标识部)(标识部) PROG RAM ID. EXAM2. (程序标识段)(程序标识段) ENVI RONMENT DIVISION. (环境部)(环境部) DATA DIVISION. (数据部)(数据部) WORK ING-STORAGE SECTION. (工作单元节)(工作单元节) 77 A PICTURE IS 9(3). (对变量(对变量A进行描述)进行描述) 77 B PICTURE IS 9(3). (对变量(对变量B进行描述)进行描述) PROC EDURE DIVISION. (过程部)(过程部) S. ACCEPT A (
39、输入(输入A的值)的值) ACCEPT B (输入(输入B的值)的值) ADD A TO B (A + BB) DISPLAY A,B. (显示(显示A和和B的值)的值) STOP RUN. (停止运行)(停止运行)对对4个部的说明个部的说明4个部的作用个部的作用标识部标识部: IDENTIFICATION DIVISION. ,作用是指出源程序作用是指出源程序名。名。环境部环境部: ENVI RONMENT DIVISION. ,是来说明程序运行是来说明程序运行时使用的计算机系统。时使用的计算机系统。数据部数据部: DATA DIVISION. ,说明程序中用到的全部数据说明程序中用到的全部
40、数据, 含含输入输出数据及中间结果等。输入输出数据及中间结果等。过程部过程部: PROCEDURE DIVISION. ,是整个程序的核心是整个程序的核心, 是程是程序执行操作的主要部分。序执行操作的主要部分。书写规则书写规则:保留字后加句点和空格。保留字后加句点和空格。节和段节和段:是构成上述是构成上述4个部的成分个部的成分, 节由保留字节由保留字SECTION表示表示运行运行COBOL程序的步骤程序的步骤1. 按按COBOL语言规定编写对应的语言规定编写对应的COBOL程序;程序;2. 利用编辑工具利用编辑工具(如如EDIT等等)在硬盘上建立该程序的源程序文件在硬盘上建立该程序的源程序文件
41、,文件的扩展名必须为文件的扩展名必须为COB。3. 调用调用COBOL编译程序编译程序, 把上述源程序文件编辑成二进制目标把上述源程序文件编辑成二进制目标文件文件(.OBJ), 具体操作文件命令为具体操作文件命令为: COBOL 文件名文件名.COB 4. 调用连接程序调用连接程序, 把把.OBJ文件连接成一个计算机可执行文件文件连接成一个计算机可执行文件(.EXE), 具体操作命令为具体操作命令为:LINK 文件名文件名.OBJ 5. 运行执行文件运行执行文件, 其命令为其命令为:文件名文件名.EXE(EXE可省略可省略)。3.2.2 C语言概述语言概述1.C语言的发展简史语言的发展简史:上
42、世纪上世纪70年代发明年代发明 2.C语言的特色语言的特色C语言与其他语言的比较语言与其他语言的比较把其他高级语言的基本结构与低级语言把其他高级语言的基本结构与低级语言的实用性结合了起来。的实用性结合了起来。与汇编语言的比较与汇编语言的比较C语言的结构化、模块化克服了汇编语言语言的结构化、模块化克服了汇编语言难读难维护的缺点。难读难维护的缺点。C语言又具有汇编语言又具有汇编语言的功能,语言的功能, 1983 1983年图灵奖的得主年图灵奖的得主 肯尼思肯尼思. .汤普森汤普森 (Kenneth Lane Thompson) (Kenneth Lane Thompson) 丹尼斯丹尼斯. .里奇
43、里奇 (Dennis MacAlistair Ritchie) (Dennis MacAlistair Ritchie)19781978年出版年出版2. C语言的特色语言的特色与其他高级语言的比较与其他高级语言的比较:C语言有丰富的运算符多达语言有丰富的运算符多达34种。种。C语言有多样化的表达式类型语言有多样化的表达式类型, 在其他高级语言中,表达式则要在其他高级语言中,表达式则要受到很大的限制。受到很大的限制。C语言的数据类型丰富,具有现代语言的各种数据结构。语言的数据类型丰富,具有现代语言的各种数据结构。C语言的输入输出使用的是数据流,而其他高级语言使用的是语言的输入输出使用的是数据流,
44、而其他高级语言使用的是记录。记录。C程序生成的机器代码质量高,内存占用少,运行速度快,程程序生成的机器代码质量高,内存占用少,运行速度快,程序执行效率高。序执行效率高。但但C毕竟是面向过程的语言毕竟是面向过程的语言, 不太适合编制大型程序。不太适合编制大型程序。于是于是, 增强版的增强版的C即即C+应运而生应运而生, 它在它在C的功能作了部分扩充的功能作了部分扩充, 并增加了面向对象的机制。并增加了面向对象的机制。3.简单的简单的C程序介绍程序介绍例例3-21:屏幕输出一条信息,程序如下:屏幕输出一条信息,程序如下:main ( ) Printf ( “This is the first pr
45、ogram . n ” )运行结果:运行结果:This is the first program .其中其中main( )被称作被称作“主函数主函数”,在任何一个,在任何一个C程序中都必须有程序中都必须有一个且只有一个一个且只有一个main( )函数。在函数。在main( )函数中有很多函数中有很多C语句,语句,用一对大括号括起来。在本例的程序中,共有一条用一对大括号括起来。在本例的程序中,共有一条C语句。语句。这条这条C语句是一个输出函数,作用是向屏幕输出信息。它将语句是一个输出函数,作用是向屏幕输出信息。它将双引号之间的内容原样输出到屏幕。双引号之间的内容原样输出到屏幕。“n”是换行符,它
46、的是换行符,它的作用是将光标移到下一行的开始处。作用是将光标移到下一行的开始处。3.2.3 面向对象程序语言概述面向对象程序语言概述1.面向对象程序设计面向对象程序设计:把数据结构与操作结合起来把数据结构与操作结合起来 2.面向对象技术的应用和发展面向对象技术的应用和发展面向对象分析(面向对象分析(OOA Object Oriented Analysis) 面向对象设计(面向对象设计(OOD Object Oriented Design) 面向对象语言(面向对象语言(OOL Object Oriented Language) 面向对象数据库(面向对象数据库(OODB Object Orient
47、ed Data Base) 面向对象的智能程序设计(面向对象的智能程序设计(Object Oriented Intelligent Programming) 面向对象的体系结构(面向对象的体系结构(Object Oriented Architecture面向对象方法学的最基本特点面向对象方法学的最基本特点:尽可能模拟人的思维方式尽可能模拟人的思维方式.3.面向对象语言的分类面向对象语言的分类(1)基于对象的语言基于对象的语言 它支持对象作为语言特征。例它支持对象作为语言特征。例Ada语言。语言。(2)基于类的语言基于类的语言 类是功能很强的软件部件。类是功能很强的软件部件。(3)面向对象的语言面向对象的语言 具有继承性和多态性。具有继承性和多态性。 总之总之, 面向对象的语言可在语言中实施对象与类两者面向对象的语言可在语言中实施对象与类两者的管理。的管理。