程序设计与问题求解1.ppt
《程序设计与问题求解1.ppt》由会员分享,可在线阅读,更多相关《程序设计与问题求解1.ppt(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、程序设计与问题求解程序设计与问题求解第第1章章 程序设计概述程序设计概述缪裕青缪裕青2011.9.20程序设计与问题求解I本章主要内容本章主要内容问题求解与程序设计问题求解与程序设计算法及其描述方法算法及其描述方法程序设计语言的故事程序设计语言的故事C/C+C/C+语言程序组成语言程序组成程序设计方法程序设计方法程序风格程序风格Visual C+Visual C+开发环境与上机指导开发环境与上机指导2程序设计与问题求解I问题求解与程序设计问题求解与程序设计问题求解问题求解w例:求1+2+100的和。解:(1)分析分析问题特征。连续的100个整数求和。(2)设计设计解决方案。100个数连加:1+
2、2+100采用等差数列求和公式计算:(1+100)*100/2拥有高斯的创造力,直接使用50*101 (3)优化优化解决方案。三种方案比较选择最好(优)的,计算量最小、计算速度最快。(4)描述描述解决方案。可用数学算式50*101来描述。(5)执行执行解决方案。计算50*101结果。分分析析设设计计优优化化描描述述执执行行3程序设计与问题求解I问题求解与程序设计问题求解与程序设计问题求解过程问题求解过程分分析析设设计计优优化化描描述述执执行行计算机做?计算机做?计算机做?计算机做?4程序设计与问题求解I问题求解与程序设计问题求解与程序设计计算机有计算机有智能吗?智能吗?5程序设计与问题求解I问
3、题求解与程序设计问题求解与程序设计计算机行业的梦想w让计算机(让计算机(Computer)能像人一样地)能像人一样地思考,与人自然交流,思考,与人自然交流,w人工智人工智能能AI(Artificial Intelligence)图灵(1912-1954)电子计算机理论和模型的奠基人w1946年诞生世界上第一台电子计算机年诞生世界上第一台电子计算机ENIACw1936年图灵发表论文年图灵发表论文“论可计算数及论可计算数及其在判定问题中的应用其在判定问题中的应用”w1966年年ACM设立设立“图灵奖图灵奖”6程序设计与问题求解I问题求解与程序设计问题求解与程序设计1997年,IBM公司研制的深蓝超
4、级计算机在一场“人机大战”中打败了国际象棋大师卡斯帕罗夫w被誉为被誉为“人工智能的一大胜利人工智能的一大胜利”深蓝的主要研制者之一许峰雄博士:w胜利靠的只是不知疲倦地高速运算,并不是什么胜利靠的只是不知疲倦地高速运算,并不是什么智能智能 7程序设计与问题求解I问题求解与程序设计问题求解与程序设计计算机是用来延伸人能力的工具,具有高速运算的能力。我们的目标是控制计算机按照人的意愿去工作,执行解决方案。完成这一目标的手段就是“编程(Programming)”。8程序设计与问题求解I问问题题是是丰丰富富多多彩彩的的人具有思维人具有思维 人人计算机只认识计算机只认识0 0和和1 1计算机没有思维计算机
5、没有思维 计算机计算机 人和计算机通过程序进行沟通人和计算机通过程序进行沟通程序程序需要解决问题的人需要解决问题的人没有思维的计算机没有思维的计算机 问题求解与程序设计问题求解与程序设计9程序设计与问题求解I问题求解与程序设计问题求解与程序设计问题求解过程问题求解过程分分析析设设计计优优化化描描述述执执行行计算机可以做计算机可以做只能人做只能人做算法设计算法设计编写程序编写程序/算法实现算法实现问题问题思路思路算法算法程序程序程序设计程序设计10程序设计与问题求解I问题求解与程序设计问题求解与程序设计计算机组成计算机组成w硬件硬件:整个过程的执行者是硬件,但硬件是受软件控制的w软件软件:编程,
6、就是编写软件,使硬件按照人的意图工作电脑的“脑”体现在软件硬件受软件控制的执行者程序和数据执行结果11程序设计与问题求解I问题求解与程序设计问题求解与程序设计输入/输出设备存储器运算器控制器源程序和输入数据输出结果取出数据存入数据操作命令存取命令取出程序指令输入输出命令计算结果CPU计算机基本工作过程计算机基本工作过程“冯诺依曼机”结构 大脑记忆装置眼睛、耳朵、嘴、手12程序设计与问题求解I程序与编写程序程序与编写程序 程序:程序:能够实现特定功能的能够实现特定功能的指令序列指令序列,这些指令指,这些指令指示计算机完成特定的操作。示计算机完成特定的操作。编写程序:编写程序:编写指令序列的编写指
7、令序列的过程过程。指令往往以某种。指令往往以某种程序设计语言程序设计语言的的语句语句形式给出。形式给出。问题求解与程序设计问题求解与程序设计13程序设计与问题求解I例:哥尼斯堡七桥问题【问题问题】17世纪的东普鲁士有一座哥尼斯堡城(现在叫加里世纪的东普鲁士有一座哥尼斯堡城(现在叫加里宁格勒,在波罗的海南岸),普雷格尔河流过城中,在河中宁格勒,在波罗的海南岸),普雷格尔河流过城中,在河中有两座小岛,全城共有七座桥将有两座小岛,全城共有七座桥将4个城区连接起来,于是,产个城区连接起来,于是,产生了一个有趣的问题:一个人是否能在一次步行中穿越全部生了一个有趣的问题:一个人是否能在一次步行中穿越全部的
8、七座桥后回到起点,且每座桥只经过一次。的七座桥后回到起点,且每座桥只经过一次。算法及其描述方法算法及其描述方法14程序设计与问题求解I例:哥尼斯堡七桥问题 东区东区北区北区岛区岛区南区南区CADB 抽象抽象【想法想法抽象模型抽象模型】可以用可以用A、B、C、D表示表示4个城区,用个城区,用 7 条线表示条线表示 7 座桥,将七桥问题抽象为一个图模型。座桥,将七桥问题抽象为一个图模型。算法及其描述方法算法及其描述方法15程序设计与问题求解I例:哥尼斯堡七桥问题【想法想法基本思路基本思路】是否存在欧拉回路的判定规则是:是否存在欧拉回路的判定规则是:(1)如果通奇数桥的地方多于两个,则不存在欧拉回路
9、;)如果通奇数桥的地方多于两个,则不存在欧拉回路;(2)如果只有两个地方通奇数桥,可以从这两个地方之一出)如果只有两个地方通奇数桥,可以从这两个地方之一出发,找到欧拉回路;发,找到欧拉回路;(3)如果没有一个地方通奇数桥,则无论从哪里出发,都能)如果没有一个地方通奇数桥,则无论从哪里出发,都能找到欧拉回路。找到欧拉回路。由上述判定规则得到求解七桥问题的基本思路:依次计算由上述判定规则得到求解七桥问题的基本思路:依次计算图中与每个节点相关联的边的个数(称为节点的度),根据度图中与每个节点相关联的边的个数(称为节点的度),根据度为奇数的节点个数判定是否存在欧拉回路。为奇数的节点个数判定是否存在欧拉
10、回路。算法及其描述方法算法及其描述方法16程序设计与问题求解I算法及其描述方法算法及其描述方法例:哥尼斯堡七桥问题【算法算法】设函数设函数EulerCircuit求解七桥问题,算法描述如下:求解七桥问题,算法描述如下:输入:二维数组输入:二维数组mat44功能:计算七桥问题中奇数桥的结点个数功能:计算七桥问题中奇数桥的结点个数输出:通奇数桥的结点个数输出:通奇数桥的结点个数countstep1:count 初始化为初始化为0;step2:下标下标i从从0到到n-1重复执行下列操作重复执行下列操作;step2.1:计算第计算第i行元素之和行元素之和degree;step2.2:如果如果degre
11、e为奇数,则为奇数,则;countstep3:返回返回count17程序设计与问题求解I算法:算法:对特定问题求解步骤的一种描述。算法必须满足下列五个重要特性:1.输入;2.输出;3.有穷性;4.确定性;5.可行性。解决问题的方法解决问题的方法算算 法(法(y=f(x))有穷性:在合理时间内结束;有穷性:在合理时间内结束;确定性:不存在二义性;确定性:不存在二义性;可行性:机器可执行;可行性:机器可执行;输入输入输出输出算法及其特性算法及其特性算法及其描述方法算法及其描述方法 18程序设计与问题求解Iw描述算法:算法设计者在构思和设计了一个算法之后,必须清楚准确地将所设计的求解步骤记录下来。w
12、使用算法:算法使用者知道如何调用算法。算算法描述法描述算法及其描述方法算法及其描述方法 nf=n!19程序设计与问题求解Iw自然语言自然语言算算法描述的方法法描述的方法算法及其描述方法算法及其描述方法 步骤步骤1:输入输入数据数据n;步骤步骤2:将将1保存到保存到f中中;步骤步骤3:将将1保存到保存到i中;中;步骤步骤4:若若i大于大于n,则,则f为最为最后结果后结果,算法执行步骤算法执行步骤7;否则执行步骤否则执行步骤5步骤步骤5:i加加1,将,将i*f的值放在的值放在f中;中;步骤步骤6:重新执行步骤:重新执行步骤4;步骤步骤7:输出数据:输出数据f.不直观,书写繁琐不直观,书写繁琐20程
13、序设计与问题求解IN开始输入n f=1;i=1ini=i+1;f=i*f 输出f结束Y图形符号名 称含 义起止框起止框表示算法的开始或表示算法的开始或结结束束处处理框理框表示表示处处理或运算等功能理或运算等功能输输入入/输输出框出框表示表示进进行行输输入入/输输出操作出操作判断框判断框根据根据给给定的条件是否定的条件是否满满足决定足决定执执行两条路径中的某一条路径行两条路径中的某一条路径控制流控制流表示算法表示算法执执行的路径,箭行的路径,箭头头代代表方向表方向算法及其描述方法算法及其描述方法算算法描述的方法法描述的方法w程序流程图直观,流程线无约束直观,流程线无约束21程序设计与问题求解Iw
14、程序流程图算法及其描述方法算法及其描述方法 规定只能使用三种基本结构规定只能使用三种基本结构AB条件表达式ABFT条件表达式ABTF顺序结构顺序结构选择结构选择结构循环结构循环结构算算法描述的方法法描述的方法22程序设计与问题求解IwN-S图算法及其描述方法算法及其描述方法 只能使用一些基本结构,不允许只能使用一些基本结构,不允许使用带箭头的流程线使用带箭头的流程线AB条件表达式A顺序结构顺序结构选择结构选择结构循环结构循环结构AB条件表达式TF算算法描述的方法法描述的方法23程序设计与问题求解IwPAD图算法及其描述方法算法及其描述方法 只能使用一些基本结构,不允许只能使用一些基本结构,不允
15、许使用带箭头的流程线使用带箭头的流程线顺序结构顺序结构选择结构选择结构循环结构循环结构ABAB条件表达式whileA算算法描述的方法法描述的方法24程序设计与问题求解Iw程序设计语言算法及其描述方法算法及其描述方法 int i,n;cinn;int f=1;for(i=1;i=n;i+)f=i*f;coutn结束结束 4.1 f=i*f;4.2 i=i+1;5.输出输出f;介于自然语言和程序设计语言之间介于自然语言和程序设计语言之间算算法描述的方法法描述的方法26程序设计与问题求解I程序设计语言(Programming Language)是人与计算机进行交流的语言计算机直接能读懂的语言w机器语
16、言机器语言(Machine Code),也叫机器代码),也叫机器代码w一种纯粹的二进制语言一种纯粹的二进制语言程序设计语言的故事程序设计语言的故事27程序设计与问题求解I程序设计语言的故事程序设计语言的故事计算机为什么用二进制呢?为什么不用我们日常熟悉的十进制呢?w二进制在电器元件中容易实现二进制在电器元件中容易实现 w计算机进行二进制运算比进行十进制运算要简计算机进行二进制运算比进行十进制运算要简单得多单得多 45678+56789 10101+1101128程序设计与问题求解I程序设计语言的故事程序设计语言的故事程序设计语言的发展程序设计语言的发展w机器语言(Machine Code)w汇
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 问题 求解
限制150内