第一章算法和算法的表示.ppt_第1页
第一章算法和算法的表示.ppt_第2页
第一章算法和算法的表示.ppt_第3页
第一章算法和算法的表示.ppt_第4页
第一章算法和算法的表示.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

算法与程序设计,张依,计算机解决问题的过程,走进编程,汉诺塔问题分析:,问题的条件: 每次只能移动一只盘子 任何时候大盘不能压在小盘之上 圆盘只能套在A,B,C三根柱子之一上存放,将n个盘子从A柱移到C柱可以分三步进行: 从A柱移动1至n-1号盘到B柱,C柱作为辅助柱 从A柱移动n号盘到C柱 从B柱移动1至n-1号盘到C柱,A柱作为辅助柱,有一种较巧妙的方法,古代孙子就提出“砍脚算法”:如果将鸡和兔的脚都砍去一半,则1鸡对应1脚,1兔对应2脚,那么脚数减去鸡兔总数即为兔的数量。可得兔有94/2-35=12只,鸡有351223只。,假如鸡兔共有a只头,b只脚,由此可知,鸡+兔=a,2鸡+4兔=b,计算得知,鸡=a-(b-2a)/2只,兔=(b-2a)/a只,直接公式计算可以得出 自然语言描述的算法如下: 1 (初始化鸡兔总头数与总脚数)初始总头数a=35,总脚数b=94 2 (计算鸡的数目)输出鸡的数目为a-(b-2a)/2 3 (计算兔的数目)输出兔的数目为(b-2a)/2 4 (结束)计算完成,结束,使用计算机解决问题的一般过程,1、分析问题确定要用计算机做什么? 2、寻找解决问题的途径和方法。 3、用计算机进行处理。,人工解题与计算机解题,人工解题过程: 理解和分析所面临的问题; 寻找解题的途径和方法; 用笔、纸、计数器等工具进行计算; 验证计算结果。,计算机解题过程: 理解和分析所要求的问题; 寻找解题的途径和方法; 生成解题算法; 选用一种算法语言根据算法编写程序; 通过编辑、编译、连接产生计算机能够识别的指令序列; 在计算机上执行该指令序列; 检测结果。,用计算机程序解决问题的基本过程,设计算法,分析问题,编写程序,调试程序,检测结果,人工解题与计算机解题的异同点,1.2 确定解决问题的方法,例1 使用一根长度为L厘米的铁丝,制作一个面积为S平方厘米的矩形框,要求计算该矩形框应有的高h和宽w.这里,铁丝的长度L和矩形框面积S是根据需要预先指定的,如图1.2.1所示。,面积S,宽 w,高 h,长度为L厘米的铁丝,高h,则宽W=L/2-h,面积 h(L/2-h)=s,h2-Lh/2+S=0,h1,h2=?,d=L2-16S,d0 h= w= d0 无实数解 d=0 h=w=L/4,P4问题与练习,2.你在学习、生活中遇到的问题是否都能表示成数学公式? 列举几个能表示成数学公式的问题的例子。 例如:行程问题 列举几个不能表示成数学公式的问题的例子,并说明你的解决步骤。 例如数列的排序,1.3 把解决问题的方法步骤化,在小品钟点工中,宋丹丹讲了这样一个笑话:说要把大象装冰箱,一共分几步? 答案:第一步先把冰箱门打开,第二步把大象放进去,第三步把冰箱门关上。,一个农夫带着一条狼、一头山羊和一篮蔬菜要过河,但只有一条小船。乘船时,农夫只能带一样东西。当农夫在场的时候,这三样东西相安无事。一旦农夫不在,狼会吃羊,羊会吃菜。 参考答案; 渡河的方法与步骤:第一步:农夫带山羊过河;第二步:农夫自己返回;第三步:农夫带狼过河,同时带山羊返回;第四步:农夫带蔬菜过河;第五步:农夫返回;第六步:农夫带山羊过河。,程序的组成部分,指令部分,数据部分,1 显示文字“请输入长度:” 2 接受输入数据(铁丝的长度)送到变量L 3 显示文字“请输入面积:” 4 接受输入数据(矩形框的面积)送到变量S 5 计算L2-16S,结果送到变量d 6 若d=0转到12 7 若d0转到15 8 输出文字“两条不同的边长” 9 输出:(L+d)/4 10 输出(L- d)/4 11 结束 12 输出文字“两条相同的边长” 13 输出:L/4 14结束 15 输出文字“ 无解“ 16结束,指令区,变量L中的数值 变量S中的数值 变量d中的数值,数据区,设计程序需考虑的问题,1.数据的存储 铁丝的长度L和矩形框的面积S 以及中间结果(L2-16S)需要存储在不同的变量中 2.计算的过程,输入指令 输出指令 算术运算指令 逻辑判断指令 控制转移指令,什么是算法?,广义地说为了解决某一问题而采取的方法和步骤,就称之为算法。 乐谱是乐队演奏和指挥的算法;菜谱是厨师烧菜的算法。 在计算机中,算法通常是指可以用计算机来解决某一类问题的程序或步骤,这些程序或步骤必须是明确的和有效的,而且能够在有限步之内完成。,1.4 算法的概念和表示方法,算法:解决问题的方法 算法的特征 有穷性 确定性 能行性 有0个或多个输入 有一个或多个输出 我们可通过一个算法的特征来判定一个算法是否正确,是否合理,计算1+2+3+4+5的值,无论手算、心算或者用算盘,计算器计算,都要经过有限的事先设计好的步骤。 太极拳动作图解就是一个“太极拳的算法”。 一个工作计划、生产流程、乐谱、珠算口诀等都可称为是“算法”。 对同一个问题往往有不同的解题方法。 例:1-1/2+1/3-1/4+1/99-1/100 方法:自左向右追项顺序相加或减。 方法:先计算1+1/3+1/5+1/99,再计算1/2+1/4+1/100,然后再做减法运算。 不仅数值计算的问题要研究算法,做任何事情都要有一定的步骤。,算法的表示,一个算法可以用多种不同的方法来描述。 常用的表示方法有: 流程图 自然语言 伪代码 计算机语言,流程图“5框1线”,处理框,输入输出框,判断框,连接框,开始结束符,流程线,用流程图描述例一的算法,变量和变量的用途,变量的作用:存储数据 变量的实质:内存中的存储单元(变量时存储数据的容器,而不是数据本身) 不同的变量有不同的名称,我们可以通过变量名引用变量中的数据 变量的操作 读(取)操作:从存储单元中复制数据; 写(存)操作:将数据覆盖到存储单元中。,变量和变量的用途,专门用途的变量: 计数器:用于记录某种指定的事件所发生的次数。 累加器:用于记录若干个数据的累加结果。 特殊的变量:如数组。(将在第四章中学习),算法的执行流程,算法的执行流程是指算法中各个处理步骤的执行次序和模式。 算法执行流程的三种基本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论