您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第九章程序设计基础知识
大学信息技术应用基础主讲教师:第9章程序设计基础知识第9章程序设计基础知识【学习要点】了解程序设计语言的发展及其组成掌握程序设计的一般过程了解程序设计的方法掌握算法的描述、设计、表示掌握常用算法的表示掌握程序结构及流程控制的方法了解常用的程序设计语言9.1程序设计概述第一代语言(MachineLanguage)–也称为“机器语言”。–以二进制代码表示,是计算机能直接识别和执行的语言,执行速度快。第二代语言(AssemblyLanguage)–第二代语言也叫“汇编语言”。–诞生于20世纪50年代中期,是用助记符来表示机器指令的符号语言。9.1.1程序设计语言的发展9.1程序设计概述第三代语言(Procedure-OrientedLanguage)第三代语言也称为“面向过程的语言”。用它设计的程序比较接近于人们习惯使用的自然语言和解决问题的方式,所以也称为“高级语言”(High-levelLanguage)。第四代语言(Object-OrientedLanguage)–第四代语言又叫“面向对象的程序设计语言”。第五代语言–称为“智能化语言”。它主要是指使用在人工智能领域(如专家系统、推理工程、自然语言处理和知识库)的语言。9.1.1程序设计语言的发展9.1.2程序设计语言的组成每一种程序设计语言都有规定的词汇,词汇集由标识符、保留字、特殊字符和数值等组成。当我们学习每一种程序设计语言时,应该注意它的语法和语义。(1)语法:表示语言的各个构成记号之间的组合规则。(2)语义:表示的含义。程序设计语言有很多种,但它们的组成是类似的,都包括数据、运算、控制和传输这4种表示成分。9.1程序设计概述计算机中有两种语言翻译器:解释器和编译器,它们的作用是将已编写的源程序代码转换成计算机能够直接执行的机器代码源程序代码机器代码编译器或解释器编译或解释执行9.1程序设计概述9.1.3语言翻译器所谓程序是表示一些操作序列的计算机指令的集合“程序设计”就是把问题世界转换为程序世界的过程,或者说是为解决某一具体问题而编写计算机程序的活动。概括地说,程序设计就是分析问题、编写程序、调试程序的过程。分析问题编写程序调试程序整理文档确定解决方案确定具体算法9.1程序设计概述9.1.4程序设计的一般过程程序设计步骤:(1)分析问题或建立数学模型(2)算法设计(3)画出流程图(4)编写程序(5)程序调试(6)文档整理9.1程序设计概述9.1.4程序设计的一般过程程序中出现的错误可以分为三类:编译错误运行错误逻辑错误9.1程序设计概述9.1.5程序设计的调试与运行要编写一个程序,必须掌握一种程序设计语言和它的开发环境,同时要熟悉问题世界的知识和掌握把问题世界转换为程序世界的方法,通常称之为“程序设计方法”。抽象步骤1步骤N问题世界建立数学模型程序世界9.2程序设计方法9.2.1面向过程程序设计人们把程序看作是处理数据的一系列过程(Procedure)。一个过程或函数(Function)是指一组特定的一个接一个顺序执行的指令,它们完成某一专门任务或计算出一个结果值。数据与过程是分离的,其程序设计的技巧主要是在处理过程之间的调用及完成任务或计算的算法,关心的是数据的变化。9.2程序设计方法结构化程序设计的主要思想是把功能分解并逐步求精。在问题世界中一个任务太大或十分复杂时,就把它分解为若干个小任务,在程序世界中使一个程序分解为若干个过程,每一过程完成一个确定的小任务。程序=算法+数据结构(包含数据和数据类型)9.2程序设计方法9.2.1面向过程程序设计9.2.2模块化程序设计其程序设计的技巧主要是模块中过程的设计,在模块中既包含具体问题的数据,又包含这些数据上的操作。由于模块化程序设计是把算法和数据结构(数据和数据类型)看作一个独立功能模块。程序=(算法+数据结构)9.2程序设计方法9.2.3面向对象程序设计在面向对象程序设计中,类是具有相同属性和操作的一组对象的集合。它为属于该类的全部对象提供了统一的抽象描述,一个对象是类的一个实例,它具有自己确定的属性。对象属于一个具有一定特性的“类”(Class)或组。使用计算机的方式是利用按钮、菜单或窗口,通过选择后触发计算机去执行某一事件动作,这种编程方法称为“事件驱动”,是一种交互性很强的编程方法。9.2程序设计方法由于在面向对象程序设计中,算法与数据结构被结合在一起成为一个类,问题世界本身就是一个对象世界,任何对象都具有一定的属性与操作对象=(算法+数据结构)程序=(对象+对象+…)9.2程序设计方法9.2.3面向对象程序设计把用来解决问题的有限多个步骤组成的具体过程称为“算法”(Algorithm)。问题描述:就是要说明一些能用来解决问题的要素9.3算法9.3.1问题描述问题描述的3个特征:(1)能说明描述问题的任何假设。(2)列出所有的已知条件。(3)具体说明需要解决什么问题。9.3算法9.3.1问题描述9.3.2算法设计算法:是解决实际问题的方法,然而实际问题的解决往往会有多种方法,不同的方法也可能得到不同的结果。算法设计:就是寻找一种适合的算法算法应具有以下特点:(1)有限性。任何一个算法应该经过有限多个操作步骤得出结果。(2)可行性。有限多个步骤应该在一个合理的范围内,且在有限的时间内能够完成。(3)确定性。算法的每一步骤应该有明确的含义,无二义性。(4)输入/输出。一个算法可以定义若干个输入和输出。9.3算法设计算法的过程就是解决问题的过程,编写程序的人必须知道解决问题的方法和步骤,才能正确编写程序。算法可分为两大类:数值运算算法和非数值运算方法。9.3算法9.3.2算法设计9.3.3算法表示1.自然语言–自然语言描述法,是用一种接近人类语言的方法来描述算法的,它能把算法正确地表达出来,而不涉及到具体的语法细节2.流程图法–流程图(Flowchart)描述了计算机程序的输入、处理和输出模型的中间框图,它描述的是计算机如何一步一步地去完成指定的任务。3.伪代码法–伪代码法是指采用类似于某一种高级语言的代码来描述算法9.3算法9.3.4常用的几种算法1.计数器–赋值号“=”的含义是:获取等号右边的表达式计算结果值,并将结果存放在等号左边的变量中,如下图所示。–一个特别有意义的赋值式子是诸如N=N+l这样的式子,事实证明它非常有用。它用在循环结构中,能够统计出循环执行的次数。因为每当循环一次,该变量的值就会加1,我们把该式子中的变量称为“计数器”变量。N=N+l5N+1变量N取出存入9.3算法2.累加器类似于计数器,如同样的变量名出现在赋值号的两边,所不同的是,累加器通常给变量增加的值不是1,而是一个数Total=Total+Score9.3算法9.3.4常用的几种算法3.交换变量的值排序算法中一般都用到交换变量的值,也就是对换变量,如下图所示,交换的结果是原来变量1中的值现在存贮在变量2中,而原来变量2中的值却存贮在变量1中。21变量143变量243变量121变量29.3算法9.3.4常用的几种算法Variablel=21Variable2=43交换变量值的正确方法是,使用一个中间变量Temp,称为临时变量,因为一旦交换完成,这个变量也就没有用了。用下列的语句来完成:Temp=VariablelVariablel=Variable2Variable2=Temp9.3算法9.3.4常用的几种算法根据结构化程序设计的观点,任何程序只用顺序结构、选择结构和循环结构3种控制结构即可实现。9.4程序结构及流程控制9.4.1顺序结构顺序结构(SequenceStructure)就是计算机按照程序中语句的书写先后顺序,逐一执行每一条语句。整个顺序结构只有一个入口和一个出口。语句A语句B语句C9.4程序结构及流程控制例如:本程序的功能是根据电阻R1,R2,R3,R4和电压U的值,计算出电流I的大小。执行流程图如图所示。输入R1,R2,R3,R4,U值输出电流I计算I=U/R1+R2+R3+R4)结束开始9.4程序结构及流程控制9.4.1顺序结构9.4.2选择结构在许多实际问题中,需要根据不同的条件采用不同的处理动作序列。选择结构(SelectionStructure)也称为分支结构。这种结构中,程序根据是否满足给定的条件来决定是否执行某一条或一组语句。语句1C语句2A条件?YesNo9.4程序结构及流程控制9.4.3循环结构循环结构(LoopStructure)又称重复控制结构或迭代结构。它可以使计算机反复多次执行同一段程序(循环体),节省代码,直到循环条件不满足时结束。A条件?语句SNoYes9.4程序结构及流程控制9.4.4子程序和函数所谓子程序,就是将程序分为更小的逻辑组成部分,这样可简化复杂的程序编写,这些组成部分就叫子程序,也有的语言把它称作为过程或函数。子程序是程序模块化的一种组织形式。通过它可以将一项复杂的任务分为若干项子任务,并如此一步一步地细分下去,直到面对更小的、更具体的任务,而且能够找到解决它的算法。9.4程序结构及流程控制通常情况下,一项任务可以用多种编程语言来实现。当为一项工程选择语言时,应该考虑下面几个问题。(1)这种编程语言是否适合于解决手中的任务?(2)这种语言在其他的应用程序中是否也经常使用?(3)小组中的人是否都精通这门语言?9.5常用的程序设计语言1.Basic语言和VisualBasic2.商务语言COBOL3.科学计算语言FORTRAN4.Pascal语言和Delphi5.C语言和VisualC++6.小型数据库开发系统VisualFoxPro7.SQL语言8.Java和JavaScript9.5常用的程序设计语言
本文标题:第九章程序设计基础知识
链接地址:https://www.777doc.com/doc-2184538 .html