语言算法和程序设计方法.ppt

上传人:p** 文档编号:477787 上传时间:2023-09-15 格式:PPT 页数:50 大小:1.03MB
下载 相关 举报
语言算法和程序设计方法.ppt_第1页
第1页 / 共50页
语言算法和程序设计方法.ppt_第2页
第2页 / 共50页
语言算法和程序设计方法.ppt_第3页
第3页 / 共50页
语言算法和程序设计方法.ppt_第4页
第4页 / 共50页
语言算法和程序设计方法.ppt_第5页
第5页 / 共50页
语言算法和程序设计方法.ppt_第6页
第6页 / 共50页
语言算法和程序设计方法.ppt_第7页
第7页 / 共50页
语言算法和程序设计方法.ppt_第8页
第8页 / 共50页
语言算法和程序设计方法.ppt_第9页
第9页 / 共50页
语言算法和程序设计方法.ppt_第10页
第10页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《语言算法和程序设计方法.ppt》由会员分享,可在线阅读,更多相关《语言算法和程序设计方法.ppt(50页珍藏版)》请在第壹文秘上搜索。

1、6.1 从算法到程序再到软件从算法到程序再到软件6.2 程序和指令程序和指令6.3 程序的程序:翻译系统程序的程序:翻译系统6.4 程序设计语言程序设计语言6.5 怎样编写程序怎样编写程序6.6 算法算法6.7 *数据表达和数据结构数据表达和数据结构6.8 *软件工程简介软件工程简介6.9 *职业:软件工程师职业:软件工程师 从算法到程序再到软件从算法到程序再到软件 计算机完成各种计算机完成各种不同的任务不同的任务,需要,需要不同的软件不同的软件软件开发软件开发程序设计程序设计是软件开发的一部分是软件开发的一部分l程序设计分解为几个步骤程序设计分解为几个步骤l程序设计需要使用程序设计语言程序设

2、计需要使用程序设计语言算法设计算法设计软件开发软件开发的任务之一的任务之一l选择一种选择一种语言语言l使用这个语言使用这个语言编写编写完成操作任务的完成操作任务的代码代码程序设计程序设计算法算法l一项工作如何被完成的步骤一项工作如何被完成的步骤l数学问题数学问题寻找如何解决特定问题的方法寻找如何解决特定问题的方法一个著名的算法一个著名的算法欧几里德算法欧几里德算法:求两个正整数求两个正整数A和和B的最大公约数的最大公约数 如:如:9、6的最大公约数是的最大公约数是3l第一步:比较第一步:比较A和和B这两个数,将这两个数,将A设置为较大的数,设置为较大的数,B设置设置 为较小的数;为较小的数;l

3、第二步:第二步:A除以除以B,得到余数,得到余数C;l第三步:如果第三步:如果C等于等于0,则最大公约数就是,则最大公约数就是B;否则将否则将B赋值给赋值给A,C赋值给赋值给B,重复进行第二、三步,重复进行第二、三步从算法到程序再到软件从算法到程序再到软件 A B C9 6 36 3 03图灵理论图灵理论只要能被分解为有限步骤的问题就可以被计算机执行只要能被分解为有限步骤的问题就可以被计算机执行l有限的步骤有限的步骤l能够将这些步骤设计为计算机所执行的程序能够将这些步骤设计为计算机所执行的程序程序设计中,首先寻找算法,算法找到后,实现算法程序设计中,首先寻找算法,算法找到后,实现算法的步骤的步

4、骤算法的描述算法的描述l使用某种计算机语言使用某种计算机语言l不同的计算机语言对一个算法具有不同的实现方法不同的计算机语言对一个算法具有不同的实现方法算法是程序设计的基础算法是程序设计的基础从算法到程序再到软件从算法到程序再到软件 程序和指令程序和指令程序程序 l计算机计算机执行执行某种某种任务任务的一系列的一系列操作步骤操作步骤的的总和总和 l一组计算机指令的有序集合一组计算机指令的有序集合 程序和指令程序和指令指令作为计算机软件和硬件的接口指令作为计算机软件和硬件的接口 软件硬件 指指令令翻译系统翻译系统基本概念基本概念 翻译系统翻译系统l语言处理系统,语言处理系统,翻译计算机程序翻译计算

5、机程序l任务是把任务是把非机器语言非机器语言编写的编写的源程序源程序翻译翻译成成目标程序目标程序l是系统软件是系统软件l不同编程语言的翻译系统是不同的不同编程语言的翻译系统是不同的词法分析程序词法分析程序语法分析程序语法分析程序中间代码生成程序中间代码生成程序优化程序优化程序目标代码生成程序目标代码生成程序目标程序目标程序源程序源程序If x=0 Then y=1 Else y=-1程序设计语言程序设计语言发展阶段发展阶段l面向过程的面向过程的的的机器语言和指令机器语言和指令机器语言机器语言l计算机能直接执行的程序设计语言计算机能直接执行的程序设计语言 l二进制语言二进制语言,用二进制机器指令

6、来编写程序,用二进制机器指令来编写程序机器指令的信息机器指令的信息l操作类型操作类型l操作数或操作数的地址(操作数的存储位置)操作数或操作数的地址(操作数的存储位置)l操作结果的存储位置操作结果的存储位置l下一条指令的地址信息下一条指令的地址信息机器语言和指令机器语言和指令指令的例子:指令的例子:数数1和和3的相加的相加“加加”操作码操作码 Number1:1 Number 2:3计算器的工作原理计算器的工作原理用用VB设计的加法程序设计的加法程序Private Sub Command1_Click()Dim A As Integer,B As Integer,S As Integer A=V

7、al(InputBox(请输入第一个数请输入第一个数)B=Val(InputBox(请输入第二个数请输入第二个数)S=A+B Print A;+;B;=;SEnd SubMemoryInputInputOutputOutput控制器控制器ALUFor ExampleFor Example:1+3=41+3=4命令:输入命令:输入111命令:输入命令:输入333Write Write ReadRead134OutAdd+Program CounterControllerRegistorsALU10000000Number1Number2程序/指令1.取操作码4.取第二个数3.取第一个数6.保存结

8、果7.取下一条指令操作码第一操作数第二操作数下一条指令操作码5.ALU完成加2.内部译码1.取操作码取操作码2.内部译码内部译码3.取第一个数取第一个数4.取第二个数取第二个数5.ALU完成加完成加6.保存结果保存结果7.取下一条指令取下一条指令汇编语言汇编语言机器语言的机器语言的“符号化符号化”l用容易记忆的文字符号用容易记忆的文字符号(助记符助记符)表示指令中的操作表示指令中的操作码和地址码码和地址码高级语言高级语言与机器与机器完全独立的语言完全独立的语言,描述解题过程,描述解题过程语法与自然语言接近语法与自然语言接近面向对象程序设计面向对象程序设计程序的基本成分程序的基本成分*其它语言其

9、它语言函数型语言函数型语言 lLISPlScheme*基于组件的程序设计基于组件的程序设计基于组件的程序设计是微软提出的思想基于组件的程序设计是微软提出的思想COM(Component Object Model,组件对象模型),组件对象模型)l组件技术属于面向对象的程序设计技术组件技术属于面向对象的程序设计技术l 使用使用COM技术,一个新的应用系统的开发不必按技术,一个新的应用系统的开发不必按照传统的方法进行所有代码的编写,可以通过组件照传统的方法进行所有代码的编写,可以通过组件进行进行“组装组装”软件软件l对于提高开发速度、降低开发成本、增加应用软件对于提高开发速度、降低开发成本、增加应用

10、软件的灵活性、降低软件维护费用很有帮助的灵活性、降低软件维护费用很有帮助l软件开发技术的主流方向软件开发技术的主流方向程序设计语言的发展历史程序设计语言的发展历史怎样编写程序怎样编写程序程序设计是一个系统过程程序设计是一个系统过程l不是简单的编写程序代码不是简单的编写程序代码一般可以分为一般可以分为六个步骤六个步骤l问题的定义(程序说明)问题的定义(程序说明)l设计解决问题的方案设计解决问题的方案l编写程序代码编写程序代码l进行程序测试进行程序测试l编写程序的文档编写程序的文档l程序应用(程序运行与维护)程序应用(程序运行与维护)一、理解问题:程序说明一、理解问题:程序说明程序设计中最重要的部

11、分程序设计中最重要的部分l是对问题的描述是对问题的描述l设计一个程序是为了解决某个特定的问题设计一个程序是为了解决某个特定的问题l分析特定问题,决定分析特定问题,决定应该做什么,如何做应该做什么,如何做系统分析员系统分析员主要弄清以下问题:主要弄清以下问题:l程序的目标是什么?即程序需要解决什么样的问题程序的目标是什么?即程序需要解决什么样的问题l可能需要输入哪些数据?可能需要输入哪些数据?l数据具体的处理过程和要求是什么?数据具体的处理过程和要求是什么?l程序可能产生的数据输出以及输出形式是什么?程序可能产生的数据输出以及输出形式是什么?二、设计解决问题的方案二、设计解决问题的方案对要解决的

12、问题设计出具体的解决方案对要解决的问题设计出具体的解决方案l确定确定程序的逻辑结构程序的逻辑结构l关键关键 设计算法设计算法例:例:欧几里德算法欧几里德算法 求两个正整数求两个正整数A和和B的最大公约数的最大公约数第一步:比较第一步:比较A和和B这两个数,将这两个数,将A设置为较大的数,设置为较大的数,B设设置为较小的数;置为较小的数;第二步:第二步:A除以除以B,得到余数,得到余数C;第三步:如果第三步:如果C等于等于0,则最大公约数就是,则最大公约数就是B;否则将否则将B赋值给赋值给A,C赋值给赋值给B,重复进行第二、三步重复进行第二、三步程序的逻辑结构程序的逻辑结构所有程序都由三种结构构

13、成所有程序都由三种结构构成 流程图流程图A BA条件YesNoBX=0X=5Y=2*XA条 件Y esNoA条件YesNo当型结构当型结构 直到型结构直到型结构X=0X=0三、编写程序代码三、编写程序代码编写程序代码编写程序代码l选择合适的编程语言选择合适的编程语言l按照上阶段设计的算法编写代码按照上阶段设计的算法编写代码选择哪种程序设计语言?选择哪种程序设计语言?l主要看是否能够完成程序设计任务主要看是否能够完成程序设计任务l编程人员对这个语言的熟悉程度编程人员对这个语言的熟悉程度程序代码的例子程序代码的例子l计算计算 5!分别用分别用C语言、语言、VB和和Java实现实现一个程序代码的例子

14、(一个程序代码的例子(C语言)语言)计算计算 5!#include/*C语言编译系统的库函数语言编译系统的库函数*/main()/*程序开始程序开始 */int i,fac;/*定义变量定义变量*/fac=1;/*变量变量 fac 被赋值被赋值 1*/for(i=2;i=5;i+)/*从从2到到5,循环执行乘法得到,循环执行乘法得到5的阶乘的阶乘*/fac=fac*i;printf(the 5!=%d,fac);/*输出结果输出结果*/一个程序代码的例子(一个程序代码的例子(VB语言)语言)Dim i As Integer,fac As Integer 定义定义 i、fac为整型数变量为整型数

15、变量fac=1变量变量fac赋值赋值1For i=2 To 5 Step 1 循环,从循环,从2到到5,每次步长为,每次步长为1 fac=fac*i 计算计算5的阶乘的阶乘一个程序代码的例子(一个程序代码的例子(Java语言)语言)public class Factorial public static void main(String args)int i=1;/循环控制变量循环控制变量 double fac=1;/存放结果的变量,注意类型存放结果的变量,注意类型 while(i 5开 始1 P2 IP*I P I+1 I结 束NYP算法设计算法设计 程序设计有两个阶段程序设计有两个阶段l第

16、一是第一是设计算法设计算法l第二是第二是实现算法实现算法*常用的算法结构常用的算法结构迭代结构迭代结构 不断用变量的不断用变量的旧值旧值递推出递推出新值新值的过程的过程 l进行数值计算进行数值计算l建立在循环基础上的算法建立在循环基础上的算法l关键关键-找到找到迭代公式迭代公式 递归结构递归结构递归递归指指用一个概念本身用一个概念本身直接或间接地去直接或间接地去定义该概念定义该概念l把一个或者一类问题分解或分割为一个个更小的问题,然把一个或者一类问题分解或分割为一个个更小的问题,然后解决这些小问题后解决这些小问题l确定递归算法的方法:看这个算法定义中是否包含它本身确定递归算法的方法:看这个算法定义中是否包含它本身递归解决方法递归解决方法l计算计算 Factorial(n)=n!递推公式递推公式Factorial(n)=1n=0Factorial(n)=n*(n-1)!n0 =n*Factorial(n-1)递归步骤递归步骤Factorial(0)1Factorial(5)5Factorial(4)Factorial(4)4Factorial(3)Factorial(1)1Factori

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!