第2部分算法(08改)学习课件.pptVIP

  • 5
  • 0
  • 约2.49千字
  • 约 20页
  • 2016-12-06 发布于江苏
  • 举报
第二章 本章要点 算法的基本概念 算法的描述 程序的基本结构 主要内容 2.1 算法的概念 2.2 简单算法举例 2.3 算法的特性 2.4 怎样表示一个算法 2.5 结构化程序设计方法 第二章 程序的灵魂-算法 第二章 程序的灵魂-算法 §2-1 算法的概念 §2-1 算法的概念 §2-1 算法的概念 §2-2 简单算法举例(自然语言描述法) §2-2 简单算法举例 改进:设两个变量,一个代表被乘数,另外一个代表乘数。今设p为被乘数,i为乘数,结果放在p中 §2-2 简单算法举例 §2-2 简单算法举例 §2-2 简单算法举例 例2.3:判定2000-2050年中的每一年是否闰年,将结果输出。 ?闰年条件: 能被4整除,但不能被100整除;(例如:1996年,2004年) 能被100整除,又能被400整除;(例如:1600年和2000年) 算法表示如下:设y为被检测的年份。 §2-2 简单算法举例 S1:2000 → y S2:若y不能被4整除,输出y “不是闰年”,转S6。 S3: 若y能被4整除,不能被100整除,输出“y是闰年”。转S6。 S4:若y能被100整除,又能被400整除,输出“y是闰年”;否则输出“y不是闰年”。转S6。 S5: 输出“y不是闰年”。 S6: y+1→y S7: 当y≤2500时,转S2;若y>2500,算法停止。 例2.3框图 §2-2 简单算法举例 例2.4:求 §2-2 简单算法举例 例2.5:对于一个大于或等于3的正整数,判断它是不是一个素数。 ?素数:是指除了1和该数本身之外,不能被其他任何整数整除的数。 例:13是素数,因为它不能被2,3,4,…,12整除 ?方法:判断一个数n(n≥3)是否素数的方法是:将n作为被除数,将2到(n-1)各个整数轮流作为除数,如果都不能被整除,则n为素数。 §2-2 简单算法举例 算法可表示如下: S1: 输入n的值 S2: i = 2 ( i 作为除数) S3: n被 i 除,得余数r S4: 如果 r = 0,表示n能被 i 整除,则打印n “不是素数”,算法结束,否则执行S5 S5: i + 1 ?i S6: 如果i ≤n-1,返回S3;否则打印n“是素数”,然后结束。 §2-3 算法的特性 有穷性:一个算法必须在执行有穷步之后结束。 确定性:算法的每一步必须是确切定义的,对于相同输入必须得到相 同结果。 有效性:算法的每一步都是能够实现的,即可操作的。 输 入:算法有零个或多个输入。 有输出:算法执行完毕,必须有一个或若干个输出结果。 小结 需要复习的知识点 ?算法(algorithm)的概念 对特定问题求解步骤的一种描述 ?沃思公式(Wirth): 数据结构+算法=程序 ?沃思公式的扩展: 程序=数据结构+算法+程序设计方法+编程语言 ?算法的五个特性 有穷性,确定性,零个或多个输入,一个或多个输出,有效性。 C语言程序设计(第三版) * ?程序应包括的内容: ?对数据的描述 在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure)。 ?对操作的描述 即操作步骤,也就是算法(algorithm)。 ?沃思公式(Wirth): 程序=数据结构 + 算法 ?沃思公式的扩展: 程序=数据结构+算法+程序设计方法+编程语言 数据结构 算法设计与分析 面向过程 面向对象 面向组件 软件 工程 程序设计 方法学 什么叫算法? ?算法(algorithm)是对特定问题求解步骤的一种描述。 ?算法(algorithm)是为解决一个问题而采取的方法和步骤。 算法:做什么?怎么做? 算法的分类: ?数值运算算法 求方程的根;求函数的定积分;矩阵运算… ?非数值运算算法 事务管理;图书检索;人事管理;信息查询 ...… 算法的要素: ?正确 ?简单 1+2+3+…+98+99+100=? 例2.1 求1*2*3*4*5. 步骤1:先求1*2,得到结果2。 步骤2:将步骤1得到的结果2再乘以3,得到结果6。 步骤3:将6再乘以4,得到24。 步骤4:将24再乘以5,得到120。 缺点:太烦琐。 考虑1*2*3*...*1000,要写999个步骤。 例2.1 求1*2*3*4*5. S1:使p=1 S2:使i=2 S3:使p*i,乘积仍放在变量p中,表示为p*i?p S4:使i的值加1,即i+1 ? i S5:如果i不大于5,返回重新执行步骤S3、S4、S5;否则,算法结束。最后得到的p的值就是

文档评论(0)

1亿VIP精品文档

相关文档