《计算机基础与应用》教学课件-第4章-问题求解与算法.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《计算机基础与应用》教学课件-第4章-问题求解与算法.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机基础与应用 计算机 基础 应用 教学 课件 问题 求解 算法
- 资源描述:
-
1、1本章学习目标本章学习目标n掌握计算机问题求解的一般步骤。掌握计算机问题求解的一般步骤。n了解程序、算法的概念。了解程序、算法的概念。n了解枚举法、迭代法、排序算法、查找算法、了解枚举法、迭代法、排序算法、查找算法、程序设计一般过程。程序设计一般过程。3 4.1 问题求解问题求解 4.2 程序与算法程序与算法 4.2.1 程序程序 4.2.2 算法的概念算法的概念 4.2.3 算法的表示算法的表示 4.3 算法设计的基本方法算法设计的基本方法 4.3.1 枚举法枚举法 4.3.2 迭代迭代 4.3.3 排序排序 4.3.4 查找查找 4.3.5 程序设计的一般过程程序设计的一般过程 4.3.6
2、 程序设计方法程序设计方法44.1 问题求解n科学探究的过程:提出问题、发现问题、解决问题n解决问题的科学方法:一般科学方法 专门科学方法n目前,计算成为一般科学方法 大量的问题都可以通过计算来解决n三大科学思维:理论思维、实验思维、计算思维5计算思维求解问题的过程:问题抽象 完全超越物理的时空观用符号来表示 自动化 机械地一步一步自动执行,即编写程序1.抽象 本义:从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征 在计算机科学中:简化复杂的现实问题的最佳途径。形式化 采用严格的数学语言,具有精确的数学语义的方法。基于数学的方法,不同的形式化方法的数学基础是不同的 有以集合论和递
3、归函数为基础的,有以图论为基础的6 数学建模 通过计算得到的结果来解释实际问题,并接受实际的检验,来建立数学模型的全过程。实际事物的一种数学简化,常常是以某种意义上接近实际事 物的抽象形式存在的,但与真实的事物有着本质的区别。如:龙卷风模型、潮汐模型 形式化和数学建模都是基于数学的方法。2.自动化 抽象是自动化的前提和基础 计算机通过程序实现实现自动化 程序的核心是算法 常见的简单问题,自动化:设计算法和编写程序7【例9.1】猴子吃桃问题。猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个;第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第
4、10天想再吃时,只剩下一个桃子了。问第一天共摘了多少个桃子?假定用xn表示第n天桃子的数量(1)抽象 采用逆向思维,发现数学的递推公式:89(2)自动化 设计算法和编写程序。算法设计 自然语言描述算法自然语言描述算法 置初态:x1,i10;如果i等于为1,则转;x(x+1)*2 ii-1 转 输出x的值;结束 伪代码描述算法伪代码描述算法 Begin x=1 i=10 While(i=1)x=(x+1)*2 i=i-1 Print x End 10 编写程序/用用C语语言言编写编写的的程序程序:#include int main()int x,i;x=1;i=10;while(i=1)x=(x
5、+1)*2;i=i-1;cout第一天共摘了第一天共摘了x个桃子个桃子endl;return 0;计算机求解问题的过程:抽象和自动化114.2 程序与算法12 4.1 问题求解问题求解 4.2 程序与算法程序与算法 4.2.1 程序程序 4.2.2 算法的概念算法的概念 4.2.3 算法的表示算法的表示 4.3 算法设计的基本方法算法设计的基本方法 4.3.1 枚举法枚举法 4.3.2 迭代迭代 4.3.3 排序排序 4.3.4 查找查找 4.3.5 程序设计的一般过程程序设计的一般过程 4.3.6 程序设计方法程序设计方法一、程序 【例4.2】下面是某一个学校颁奖大会的程序:主持人宣布颁奖会
6、开始,介绍出席颁奖会的领导 校长讲话 领导宣布获奖名单 领导颁奖 获奖代表发言 主持人宣布大会结 按一定的顺序安排的工作即操作序列 描述完成某项功能所涉及的对象和动作规则 计算机学科中,程序描述了计算机处理数据、解决问题的过程13n什么是程序?【例4.2】下面是某一个学校颁奖大会的程序:主持人宣布颁奖会开始,介绍出席颁奖会的领导 校长讲话 领导宣布获奖名单 领导颁奖 获奖代表发言 主持人宣布大会结 按一定的顺序安排的工作即操作序列 描述完成某项功能所涉及的对象和动作规则 计算机学科中,程序描述了计算机处理数据、解决问题的过程14【例4.3】教师节到了,要对教龄满30年的教职工发荣誉证书,要求从
7、存放教职工档案的“d:zg.dat”文件中,显示出教龄满30年的教职工的姓名和所在部门。C语言程序如下:#include stdafx.h#include int main()char xm80,char bm80;int jl;FILE*fp;fp=fopen(d:zg.dat,r);while(!feof(fp)fscanf(fp,%s,xm);fscanf(fp,%s,bm);fscanf(fp,%d,&jl);if(jl=30)cout姓名:xm所在部分:bm30且性别且性别为女?为女?从文件中读入一行从文件中读入一行truefalse当型循环3 3 算法的特点算法的特点有穷性有穷性
8、任意一个算法在执行有穷个计算步骤后任意一个算法在执行有穷个计算步骤后必须终止。必须终止。每一个计算步骤,必须是精确地定义、每一个计算步骤,必须是精确地定义、无二义性无二义性可行性可行性 有限多个步骤应该在一个合理的范围内有限多个步骤应该在一个合理的范围内进行进行输入输入 一般有一般有0 0个或多个输入,它们取自某一特定个或多个输入,它们取自某一特定的集合。的集合。输出输出 一般有若干个输出信息,是反映对输入数一般有若干个输出信息,是反映对输入数据加工后的结果。据加工后的结果。264 4 算法的分类算法的分类(1 1)数值计算算法)数值计算算法u 用于科学计算用于科学计算u 特点是少量的输入、输
9、出,复杂的运算。特点是少量的输入、输出,复杂的运算。u 例如:计算圆周率,积分例如:计算圆周率,积分(2 2)非数值计算算法)非数值计算算法u 对数据的管理对数据的管理u 特点是大量的输入、输出,简单的算术运算特点是大量的输入、输出,简单的算术运算 和大量的逻辑运算。和大量的逻辑运算。u 例如:排序例如:排序 查找替换查找替换 随着计算机技术的发展和应用面的普及,非数值计算算法随着计算机技术的发展和应用面的普及,非数值计算算法涉及面更广,研究的任务更重。涉及面更广,研究的任务更重。275 算法的表示算法的表示u自然语言自然语言u传统流程图传统流程图u伪代码伪代码u计算机语言计算机语言28利用求
10、圆周率公式利用求圆周率公式 计算圆周率计算圆周率1119171513114分析分析:对通项式:对通项式:t ti i=,i=1i=1,2 2,进行累加,直到某项进行累加,直到某项t ti i绝绝对值小于精度即对值小于精度即|t|10|t|=0.00000001)/当当前项还没有到达精度,继续求和当当前项还没有到达精度,继续求和pi=pi+t;/求和求和s=-1*s;/为下一项作准备,符号变化为下一项作准备,符号变化/i+;/t=s*1.0/(2*i-1);/下一项值下一项值coutsetprecision(8)pi*4endl;只有用计算只有用计算机语言编写机语言编写的程序才能的程序才能被计算
11、机执被计算机执行行必须严格遵循必须严格遵循所选择的编程所选择的编程语言的语法规语言的语法规则则344.3 4.3 算法设计的基本方算法设计的基本方法法36 4.1 问题求解问题求解 4.2 程序与算法程序与算法 4.2.1 程序程序 4.2.2 算法的概念算法的概念 4.2.3 算法的表示算法的表示 4.3 算法设计的基本方法算法设计的基本方法 4.3.1 枚举法枚举法 4.3.2 迭代迭代 4.3.3 排序排序 4.3.4 查找查找 4.3.5 程序设计的一般过程程序设计的一般过程 4.3.6 程序设计方法程序设计方法1.1.枚举法枚举法n亦称亦称穷举法穷举法或或试凑法试凑法。n例:计算机破
12、案例:计算机破案 张三在家中遇害,侦查中发现张三在家中遇害,侦查中发现A A、B B、C C、D D四人到四人到过现场。过现场。A A说:说:“我没有杀人。我没有杀人。”B B说:说:“C C是凶手。是凶手。”C C说:说:“杀人者是杀人者是D D”D D说:说:“C C在冤枉好人。在冤枉好人。”侦查员经过判断四人中有三人说的是真话,四人中侦查员经过判断四人中有三人说的是真话,四人中有且只有一人是凶手,凶手到底是谁?有且只有一人是凶手,凶手到底是谁?37分析分析 用用0 0表示不是凶手,表示不是凶手,1 1表示凶手,则每个人的表示凶手,则每个人的取值范围就是取值范围就是00,11 38算法算法
13、在每个人的取值范围在每个人的取值范围00,11的所有可能中进行搜索,的所有可能中进行搜索,如果表格的组合条件同时满足,即为凶手。如果表格的组合条件同时满足,即为凶手。相应的伪代码为:相应的伪代码为:For A=0 To 1For A=0 To 1 For B=0 TO 1 For B=0 TO 1 For C=0 To 1 For C=0 To 1 For D=0 To 1 For D=0 To 1 If(A=0)+(C=1)+(D=1)+(D=0)=3And(A+B+C+D=1)If(A=0)+(C=1)+(D=1)+(D=0)=3And(A+B+C+D=1)Print A,B,C,D/Pr
展开阅读全文