




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章语言、程序和软件6.1概述6.2程序和指令6.3程序设计语言6.4程序的程序:翻译系统6.5高级语言的概念6.6怎样编程6.7软件工程6.1概述计算机完成各种不同的任务,需要不同的软件软件开发算法程序软件程序设计是软件开发的一部分程序设计分解为几个步骤程序设计需要使用程序设计语言算法设计 算法解决特定问题的方法和步骤软件开发是一个过程,任务之一选择一种计算机语言使用这个语言编写完成任务的代码最终得到的代码就是程序软件开发的核心工作是算法设计程序和软件是两个不同的概念程序算法的实现软件程序加上该程序的文档如
:readme.txt程序设计中,首先寻找算法,算法找到后,实现算法的步骤算法是程序设计的基础可视化程序设计成为今天程序设计的主流6.1概述6.2程序和指令程序program程序是算法(解决问题的步骤)的实现
程序:算法+语言计算机执行某种任务的一系列操作步骤一组计算机指令的有序集合程序的执行按步骤执行例:一个加法程序的步骤为:输入被加数和加数进行加法运算将加法运算得到的结果即和数输出6.2程序和指令指令instruction计算机执行的最基本的操作如:处理器从内存中读取一个数据 二进制的算术运算加、减、乘、除 逻辑判断等计算机处理器能执行的二进制代码指令作为计算机软件和硬件的接口指令在处理器中以逻辑电路实现
软件硬件指令指令系统InstructionSet一个CPU能够执行的所有指令的集合指令的主要类型 数据传输类
将数据从一个地方(源)传输到另外一个地方(目的)
一般把“取出”操作叫做“读”(Read),把“存入”操作叫做“写”(Write)
传输的数据长度为字节或字节的倍数,如16、32、64位等 算术逻辑类基本的算术运算和逻辑运算、比较运算(是否相等、大于、小于等) 控制操作类 改变程序的执行顺序:有条件转移、无条件转移6.3程序设计语言计算机语言的级别根据它们和机器的密切程度划分的:越接近机器的语言级别越低,越远离机器的语言越“高级”机器语言 低级语言汇编语言 中级语言面向过程的高级语言面向对象的高级语言机器语言和指令机器语言MachineLanguage计算机能直接执行的程序设计语言二进制语言,用二进制机器指令来编写程序机器指令的信息操作类型:如加法、访问存储器、输入输出操作等操作数或操作数的地址(操作数的存储地址)操作结果的存储地址下一条指令的地址信息指令格式操作码操作数或地址码下一条指令的地址机器语言和指令指令的例子:数1和3的相加指令000001010000000000“加”操作码Number1:1Number2:3指令长度为5个字节实现过程用计算器计算机程序过程一条指令的执行过程特点既简单又难执行速度最快面向机器,兼容性差,移植性差,最低级语言计算器的工作原理用VB设计的加法程序PrivateSubCommand1_Click()DimAAsInteger,BAsInteger,SAsIntegerA=Val(InputBox("请输入第一个数"))B=Val(InputBox("请输入第二个数"))S=A+BPrintA;"+";B;"=";SEndSubMemoryInputOutput控制器ALUForExample:1+3=4命令:输入111命令:输入333WriteWriteReadRead134OutAdd+
一条加法指令的执行过程1.取操作码2.内部译码3.取第一个数4.取第二个数5.ALU完成加6.保存结果7.取下一条指令汇编语言AssembleLanguage机器语言的“符号化”用比较容易记忆的文字符号(助记符)表示指令中的操作码和地址码指令格式 助记符符号地址例:加法语句ADD
A,B特点可读性好机器不能直接识别面向机器,兼容性差,移植性差中级语言高级语言Higher-levelLanguage与机器指令系统无关、表达形式更接近于被描述的问题特点面向问题,通用,可移植分类面向过程(强制性语言)BASIC(Microsoft)C
(贝尔实验室)Pascal(教学语言)Fortran(IBM,1957)COBOL(商用语言)Ada面向对象VisualBasicC++Java(Sun)Delphi(PowerSoft)PowerBuild(Borland)Python面向对象程序设计程序的基本成分对象 是具有特殊属性(数据)和方法(行为、操作)的实体特点封装Encapsulation继承Inheritance多态性Polymorphism把对象的属性和操作结合在一起,构成一个独立体子类可以拥有父类的属性和行为某些对象可以有多种操作行为对象的行为可以同名,OOP可以根据使用环境加以区分其它语言函数型语言LISPScheme说明性语言逻辑语言,用于根据逻辑推理的原则回答问题Prolog(ProgramminginLogic)超文本标记语言(HypertextMarkupLanguage,HTML)由一种格式标记和超链接组成的“伪语言”,主要用于网络上的信息服务XML(ExtensibleML)可扩展标记语言其它语言如SQL(结构化查询语言)基于组件的程序设计基于组件的程序设计是微软提出的思想COM(ComponentObjectModel,组件对象模型)组件技术属于面向对象的程序设计技术COM也叫中间件通过组件“组装”软件快速开发、降低成本、增加程序灵活性软件开发技术的主流方向程序设计语言的发展历史6.4程序的程序:翻译系统基本概念源程序 ResourceProgram用高级语言编写的程序目标程序ObjectProgram
源程序经过翻译,成为机器可执行的机器语言程序库文件 由一些标准子程序(函数和过程)及常用的应用程序块组成的文件可执行程序 目标程序与库文件连接后形成的程序程序的整个处理过程 翻译和库文件连接装入源程序目标程序可执行程序 执行翻译系统语言处理系统,翻译计算机程序任务是把非机器语言编写的源程序翻译成目标程序是系统软件不同编程语言的翻译系统是不同的分类汇编程序编译程序解释程序逐条翻译并执行源程序的语句,不生成可执行文件把源程序代码一次性翻译成目标程序代码,最终生成可执行文件把汇编语言源程序翻译为机器语言程序编译系统的结构和工作过程词法分析程序语法分析程序中间代码生成程序优化程序目标代码生成程序目标程序源程序Ifx>=0Theny=1Elsey=-1编译系统只能够发现不合法的语句和表达,它并不能发现算法上的错误大多数语言系统都将源程序的编辑、翻译、调试、运行等功能集成为开发环境(IDE)6.4程序的程序:翻译系统6.5高级语言的概念常量、变量和数据类型数据类型程序设计语言需要给参与运算的各种数据定义其类型,每一种数据类型都有其取值范围三种基本数据类型:整型、实型(浮点数)和字符型
如:123,12.345,’A’其他,如:Java语言有逻辑型(Boolean)
VB语言有货币、日期/时间等类型语法规则要求运算对象的数据类型保持一致,如果不一致的话则按规则强制转换常量常量在程序执行过程中,这个量将固定不变有两种:文字常量、符号常量变量变量就是可以被改变的量使用标识符代表变量的内存位置程序员只需要对这个变量进行赋值、运算变量在使用前要定义类型有些语言规定使用变量前必须给变量赋初值6.5高级语言的概念y=x+5……1…………x23Y8构造数据类型(派生数据类型)将基本类型和数据结构联系起来组成新的、复杂的数据类型数组使用一个标识符代表一组相同类型的数据以下标形式区分各个元素,如:a[1],a[2],a[3],…...结构和指针结构可以表示复杂的数据记录指针是一种对变量访问的形式,存放的是数据变量的地址字符串String(文本类型)一组字符,如:“program”6.5高级语言的概念基本语句语句是使程序执行的动作,被翻译程序翻译成一条或几条指令赋值语句如:x=2x=x+2按规则将一个值存入到变量名所代表的存储单元中表达式语句不同表达式构成的语句如:x++;复合语句用括号将多行语句定义为一个语句称为复合语句(语句块)程序将复合语句视做一个语句进行处理6.5高级语言的概念{………………}基本语句转移语句著名的goto语句返回语句通过调用的方法构造程序时,使用return语句可以将运算结果返回调用程序输入、输出语句6.5高级语言的概念分支语句
——选择语句、条件语句、判断语句实现分支结构的语句,根据条件决定程序下一步该执行程序的哪一条语句或语句块6.5高级语言的概念分支语句6.5高级语言的概念循环语句实现循环结构的语句为循环语句;大多数高级语言有多种循环语句;6.5高级语言的概念函数和方法(子程序)公共代码
y=f(x)通过调用获得其实现的功能调用时参数要求 如:max(x,y){……}m=max(a,b)主程序调用时给出的参数称“实际参数”,而子程序中对应的参数称为“形式参数”“实际参数”与“形式参数”要求类型一致、数量一致、顺序一致参数传递:值调用(实参的值传送给形参)
引用调用(实参的地址传送给形参)6.5高级语言的概念6.6怎样编程程序设计是一个系统过程不是简单的编写程序代码一般可以分为六个步骤问题的定义设计方案编写代码测试编写程序文档运行与维护一、理解问题:程序说明程序设计中最重要的部分是对问题的描述设计一个程序是为了解决某个特定的问题分析特定问题,决定应该做什么,如何做
——系统分析员主要弄清以下问题:程序的目标是什么?即程序需要解决什么样的问题可能需要输入哪些数据?数据具体的处理过程和要求是什么?程序可能产生的数据输出以及输出形式是什么?示例1
示例2二、设计方案对要解决的问题设计出具体的解决方案关键—设计算法使用合适的逻辑结构要确定使用的程序范式(ProgrammingParadigm)使用哪种编程技术(过程型、基于GUI)选择哪种语言作为开发工具考虑程序运行环境网络环境中单台机器上新程序如何兼容以前的旧程序三、编写代码编写程序代码选择合适的编程语言按照上阶段设计的算法编写代码选择哪种程序设计语言?主要看是否能够完成程序设计任务编程人员对这个语言的熟悉程度程序代码的例子计算n!
fac=1*2*3*4*…*n
分别用C语言和Java实现 一个程序代码的例子(C语言)
计算n!
#include<stdio.h>
/*使用C语言编译系统提供的库函数*/main() /*程序开始*/{inti,n,fac; /*定义变量*/scanf("%d",&n)/*输入n*/fac=1; /*变量fac被赋值1*/for(i=1;i<=n;i++) /*从1到n,循环执行乘法得到n的阶乘*/fac=fac*i;printf("The%d!=%d",n,fac);/*输出运算结果*/}一个程序代码的例子(Java语言) publicclassFactorial{ //Java程序为类
publicstaticvoidmain(Stringargs[]){//程序开始
Scannermyin=newScanner(System.in) //使用Java的输入方法
inti,n,fac; n=myin.nextInt();//输入n值
fac=1; //初始化fac for(i=1;i<=n;i++) fac=fac*i; System.out.printf("The%d!=%d",n,fac);
} } 计算n!四、测试:寻找错误测试程序中的错误,不是使得程序中没有错误调试程序,找出程序中的错误语法错误违反编程语言的语法规则逻辑错误程序得到的结果不对需用大量数据测试 测试方法黑盒测试 例:加法程序把一组测试数据输入程序,检查程序的结果是否是预期的白盒测试
专业测试,输入一组特意设计的数据让程序执行,测试程
序是否按照设计流程要求执行五、编写程序文档对前面所做的各种设计形成完整的手册设计过程中形成的文档 流程图 变量列表 程序代码 运行结果等 供日后程序的维护、升级使用设计完成后的使用手册 程序的功能 操作说明六、运行与维护培训用户程序的安装、设置等程序进行修改甚至升级6.7软件工程简介程序设计仅仅是软件开发工作中的一部分众多开发人员的协调、管理也是软件开发需要考虑的问题开发软件不是一个单纯的计算机问题需要运用到有关系统分析原理需要建立必要的数据模型需要使用工程管理的方法进行开发管理在创建计算机应用系统过程中,必须清楚计算机能够做什么然后才是如何做软件生命周期软件危机SoftwareCrisis开发成本上升,软件质量没有提高软件工程SoftwareEngineering像管理传统的大型工程一样去管理软件开发软件工程的两层含义管理,要有必要的理论和方法加以支撑把软件当作工程,具有自己的特点软件工程方法典型的有软件生命周期法软件的生命周期指软件的生产、使用和消亡的过程软件生命周期法包括分析、设计、实现和维护等过程软件生命周期软件开发模型SoftwareDevelopmentModel是软件开发过程中各项任务的架构通过一整套的规则、规范,使开发过程能够顺利进行,保证开发获得成功1.瀑布模型Waterfallmodel2.增量模型IncrementalModel3.RAD模型RapidApplicationDevelopment4.其他模型
如转换模型、喷泉模型、编码-修正模型、智能模型等瀑布模型最流行的模型包括5个方面分析、设计、实现(编码)、测试和维护结构自上而下,如瀑布流水一般特点:线形下一个过程必须在上一个过程结束的基础上如编写代码前,设计工作必须完成缺点缺乏灵活性,无法解决软件需求不明确的问题增量模型又称为演化模型软件是“逐渐”开发出来的开发人员先开发出一部分程序,向用户展示,用户提出修改意见,不断完善,最终获得满意的软件产品软件开发是一个迭代的过程具有较大的灵活性适合于软件需求不明确、设计方案有一定风险的软件项目RAD模型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025标准版汽车租赁合同范本
- 2025二手车买卖交易合同范本
- 2025年个人租房合同范文
- 羽毛球知到课后答案智慧树章节测试答案2025年春山东工艺美术学院
- 2025简易办公室租赁合同
- 2024年浙大宁波理工学院招聘事业编制人员真题
- 2024年伊春市南岔县招聘社区工作者真题
- 太原境内旅游合同范本
- 2024年启东农村商业银行招聘真题
- 手绘学术论文答辩模板
- 小黑鱼续集6篇
- 云南旅游股份有限公司财务风险的分析与防范
- 我们的衣食之源第一课时
- 2022中国大连高级经理学院网络培训岗位人员公开招聘模拟检测试卷【共500题含答案解析】
- YY 0341.1-2020无源外科植入物骨接合与脊柱植入物第1部分:骨接合植入物特殊要求
- 自考04747Java语言程序设计(一)自学辅导资料
- 三级动火证 模板
- 毕业论文-基于单片机的智能浇花系统的设计与实现
- XK3168电子称重仪表技术手册
- 电梯系统质量检查记录表
- 最新山东地图含市县地图矢量分层可编辑地图PPT模板
评论
0/150
提交评论