您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第10章程序设计基础
1第10章程序设计基础2本章教学目的:了解程序设计的基本概念、思想和方法,为今后更好地学习程序设计语言打好基础。3本章教学内容:1.程序设计语言概述2.程序:程序的类型及程序的执行方式。3.软件工程:目前软件开发和维护的方法。4.软件生命周期:软件开发的具体步骤。410.1程序设计语言概述任何以计算机为处理工具的任务都是对处理对象和处理规则的完整描述,称为程序。软件是程序、数据及相关文档的集合,是用户与硬件之间的接口。5机器语言是计算机硬件系统能唯一识别并执行的语言,计算机指令。计算机指令是硬件唯一能识别的、实现计算机基本功能的二进制编码,是指挥计算机工作的基本命令。指令:计算机指令是计算机执行命令的最小功能单位,是指挥计算机工作的命令,是软件与硬件的接口。6一般来说,指令由操作码和操作数两部分组成:操作码用于指明操作,不同指令具有不同的操作码。操作数可以是要操作的数据(称为立即数),也可以是存放操作数的内存单元地址或寄存器地址等。操作码操作数72.指令系统指令系统:一台计算机中全部指令的集合构成指令系统。一台计算机的指令系统决定了它的基本性能,现代计算机一般都有几十条到上百条指令。8早期计算机,从简化计算机硬件结构和降低成本考虑,指令系统都比较简单,指令条数少、功能弱。为增加计算机功能及缩小指令系统与高级程序设计语言之间的差异,人们研制了复杂指令系统计算机(CISC,ComplexInstructionSetComputer)。CISC计算机指令条数多达二三百条,能直接处理多种数据类型。9RISC,ReducedInstructionSetComputer,指令系统具有指令少、功能简单、指令执行时间短等特点,RISC成为计算机设计的主流。1010.1.2汇编语言汇编语言:指令由英文单词或缩写构成,用符号和十进制数代替机器语言中的二进制编码,便于人们记忆和书写。11101110000000100000000000000001010000011100000000以计算A=8+7为例:机器语言为:汇编语言为:MOVAX,8ADDAX,7;将8存入累加器A中;7与累加器A中的内容相加,;结果仍存放在A中12计算机程序设计语言总体上可以分为低级语言和高级语言两大类,低级语言是指机器语言和汇编语言;低级语言的低级并不是说语言的功能性差,而是指与计算机硬件密切相关,编写程序难度较大。•机器语言和汇编语言都与计算机类型有关;•汇编语言一般用于编制系统软件和过程控制软件1310.1.3结构化程序设计语言结构化程序设计语言:脱离具体计算机硬件结构的程序设计语言。•程序设计的核心是数据结构和算法;•通过数据结构定义数据的存储形式;•通过算法研究如何用快捷、高效的方法来组织解决问题的具体过程。1420世纪50年代后期,出现了许多脱离具体计算机硬件结构的程序设计语言,人们称之为高级程序设计语言。例如Basic、FORTRAN、Pascal等。例如,计算A=8+7并输出结果的BASIC语言程序段如下:A=8+7PrintA15结构化程序设计语言将注意力从机器转移到问题本身,它致力于用计算机能理解的逻辑来描述解决问题的具体方法和步骤。面向过程的程序设计的核心是数据结构和算法。通过数据结构定义数据的存储形式;通过算法研究如何用快捷、高效的方法来组织解决问题的具体过程。161.结构化程序设计语言的基本特征:•程序内部结构化:程序由顺序、选择(分支)和重复(循环)3种结构组成。•程序模块化:一个大程序由若干个功能独立的、相互关联的程序模块(子程序、函数等)组成。程序模块之间通过调用关系完成程序的整体功能。•可移植性好:即为一类计算机设计的程序,经少量改动后可以在另一类计算机上运行。与低级语言相比,结构化程序具有较好的移植性。17具有代表性的结构化程序设计语言:FORTRAN语言:是FormulaTranslator的缩写,在工程、数学和科学研究上是使用最广泛的语言,尤其是在科学计算中发挥着极其重要的作用。Pascal语言:作为一门实用程序设计语言和教学工具,Pascal语言在高校计算机软件教学中一直处于主导地位。C语言:适合于系统描述,可以用于编写系统和应用软件。1810.1.4面向对象的程序设计语言ObjectOrientedProgramming,OOP早在20世纪60年代在实验室中就提出了面向对象方法,最早的面向对象软件是1966年开发的SimulaⅠ它首次提出模拟人类思维方式,将数据和相关操作集成在一起。使得数据和处理数据的方法融为一体,更方便处理现实世界中复杂的事物。19面向对象的程序设计语言:1.对象:是程序中最基本的运行实体,一个程序由若干个对象组成,各个对象既相互独立,又通过消息相互联系。类:是具有相同特征对象的抽象,是创建对象的模板202.可视化程序设计在可视化程序设计中,属性、事件和方法是用于控制和管理对象的3个要素。•属性:用于描述对象的特征。•事件:是对象响应某种操作时的一种反映机制,是响应某种操作的程序代码入口。•方法:一种子程序,调用时依附于对象,运行时执行相关的操作,也称之为对象函数。21具有代表性的面向对象程序设计语言:C++语言:在C语言基础上增加了面向对象的支持,基本兼容C语言程序。其特点是既支持结构化程序设计方法,又支持面向对象程序设计方法,因此,也称之为混合型语言。Delphi语言:是在Pascal基础上开发出来的可视化程序设计语言,是真正的面向对象编程语言,执行效率高,具有强大的数据库管理功能,是开发中小型数据库软件的理想编程工具。Java语言:Java也是一种跨平台的程序设计语言,适合开发基于网络、多媒体、与平台无关的应用程序,应用程序可以在网络上传输,并可以运行在任何计算机上。22网页设计语言:通过网络浏览器浏览的网页可分为动态网页、静态网页两种。1.标记语言主要用于设计静态网页,利用标记标注信息的类型和位置。2.脚本语言是介于HTML和编程语言之间的一种语言,主要用于设计动态网页。23在计算机中,通常将结构化程序设计语言和面向对象程序设计语言统称为高级程序设计语言,简称高级语言。2410.2程序任何以计算机为处理工具的任务都是对处理对象和规则的完整描述,这种描述称为程序。程序是用计算机语言设计的,为完成某一任务、按一定顺序编排的指令序列。要使程序起作用,必须将其装入到内存中执行,程序的实际工作过程称为执行或运行。25在屏幕上显示字符串“HelloWorld”DSEGSEGMENTSTRINGDB‘HelloWorld’,0DH,OAH,’$’;定义缓冲区DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXLEADX,STRINGMOVAH,09HINT21HMOVAH,4CHINT21HCSEGENDSENDSTART26【例8.1】计算阶乘的C语言程序JSJC.C。Longfun(Intx)/*函数fun,用来计算x的阶乘*/{LongResult=1;/*result是变量,用来保存计算结果*/IntI;/*i为循环控制变量*/For(i=2;i=x;i++)/*循环控制语句,用于实现语句的多次执行*/Result=Result*i;/*循环体,实现计算*/Returnresult;/*返回语句,将计算结果提交给调用者*/}Main()/*C语言主程序*/{Inti=1;/*i为循环控制变量*/Longs;/*s是变量,保存计算结果*/While(i!=0)/*循环语句,用于实现多次计算*/{Printf(PleaseInputI(I=0Over):);/*输入数据提示*/Scanf(“%d”,&i);/*输入数据语句,输入数据保存在变量i中*/If(i==0)/*分支语句,用于输入数据判断*/Exit(0);/*输入i值为0,调用函数exit结束程序*/Else/*分支否定条件,当输入i值不为零时*/If(i0||i10)/*判断输入数据范围*/{Printf(“Datamustbewteen1and10.\n”);/*数据超界,提示合理范围*/Continue;/*回到循环开始位置,继续判断循环条件*/}s=fun(i);/*调用函数fun计算i阶乘,结果存于变量s中*/Printf(%d!=%ld\n,I,s);/*在屏幕上输出计算结果*/图8.1.1程序JSJC运行过程}}27DimaAsIntegerDimbAsIntegerPrivateSubCommand1_Click()k=InStr(a,Text2,Text1)Ifk0ThenCommand1.Caption=查找下一个a=k+Len(Text1)Text2.SetFocusText2.SelStart=k-1Text2.SelLength=Len(Text1)b=b+1ElseMsgBox查找完毕!共找到&b&个&Text1Command1.Caption=查找“a=1EndIf'PrintkEndSub28根据程序所处软件的开发阶段或运行方式的不同,程序主要有源程序、可执行程序和动态链接库3种类型。人们将利用程序设计语言设计的内容称为源程序。将保存这些内容的文件称为源程序文件。29可执行程序是由源程序翻译(编译)生成的、真实的机器语言程序。在Windows中,最常用的可执行程序文件扩展名为EXE和COM。30动态链接库是由源程序生成的机器语言程序的另一种形式,主要作为可执行程序的辅助文件,不能独立运行。主要作用:(1)提供应用程序接口(API),User32.dll(2)程序动态加载31源程序的翻译方式:编译方式:通过程序设计语言提供的编译或生成工具,系统自动对整个源程序逐句进行词法分析、语法分析和机器语言指令翻译。解释方式:在程序设计语言环境中直接运行源程序,在执行每条语句前,系统先分析语句的词法和语法,若语句正确,则生成并执行机器语言指令,直到程序运行结束。3210.3软件工程基础软件工程是将系统的、规范的、可度量的方法应用于软件开发和维护整体过程的一门科学,用数学、计算机科学和管理科学的原理,借助传统工程科学的原则和方法创建与维护软件,从而达到提高软件质量、降低软件成本的目的。软件工程学出现的目的是为缓解软件危机。33软件工程的诞生背景程序设计时代:程序设计语言是机器语言和汇编语言,这个阶段被称为程序设计时代。软件开发主要是个体手工劳动,完全依赖程序设计者的个人技能,不重视程序设计方法。程序系统时代:高级程序设计语言出现后,提出了结构化程序设计的方法,并成为软件开发的主要工具,称此阶段为程序系统时代。34供需矛盾;开发成本和时间失控;质量难以保障;维护困难。主要表现:软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。软件发展速度落后于硬件发展水平,人们对软件的需求得不到满足。管理人员缺少开发软件的经验,需求描述不准确,而开发人员又缺少管理经验,二者之间缺乏交流工具,过分依赖开发人员在软件开发过程中的技巧和创造力,因此,很难开发出高质量的实用软件。由于缺乏软件开发规范和技术文档,人们很难阅读和修改其他人开发的软件,使软件维护、移植和升级困难,导致软件重复开发问题严重,软件复用性降低。35软件工程主要包括软件开发技术和软件工程管理。软件工程是一门交叉科学,包含方法、工具和过程3个要素。36软件工程包括三个要素:方法、工具和过程。1.方法:完成软件工程项目的技术手段,它支持项目计划和估算、系统和软件需求分析、软件设计、编码、测试和维护。2.工具:支持软件的开发和管理,支持各种软件文档的生成。人们将用于软件开发的软、硬件工具和软件工程数据库集成在一起,建立了集成软件工程环境;3.过程:支持软件开发各个环节的控制、管理。37软件工程的基本目标是付出较低的开发成本,达到要求的软件功能;按时完成开发任务,及时交付使用;开发出来的软件具有良好的稳定性、可靠性、适应性和可操作性,易于移植和维护。38在软件开发
本文标题:第10章程序设计基础
链接地址:https://www.777doc.com/doc-599263 .html