大学C语言第1章 第二部分.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大学C语言第1章 第二部分

* 第一章(2) 算法 主要内容 2.1 算法概念 2.2 简单的算法实例 2.3 算法的设计与表示 2.4 结构化程序设计方法 重点 算法概念、特征 结构化程序设计方法 * 2.1 算法的概念 著名计算机科学家沃思提出公式: 算法+数据结构=程序 Algorithm+Data Structures=Programs 数据结构:对数据的描述 即指定数据的类型和数据的组织形式。 算法:对操作的描述,即操作步骤。在有限步骤内求解某一问题所使用的一组定义明确的规则。 数值计算 数据之间的关系相对比较简单,可以用一个数学方程表示。 非数值计算 数据之间的关系比较复杂,无法用方程表示 对其进行组织、管理和检索。 Niklaus Wirth * 100 1+2+3+……+100,即 ? n n=1 1+2+3+4+5+ … …+100 100+( 99 +1 )+(98+2) + … … +( 51+49)+50=100+50+49*100=5050 1+2+3+4+5+ … …+100=5050 * 算法的特性: 有穷性 在执行有穷步后能结束,每一步都在有穷时间内完成 确定性 每步定义都是确切、无歧义的 一个入口、一个出口 可行性 通过已经实现的基本运算执行有限次来实现 输入 有0个或多个输入,输入取自于某个特定的对象集合 输出 有一个或多个输出,输出同输入有着某些特定关系 * [例2.1] 求5! , 即1*2*3*4*5 最原始的方法 步骤1: 求1*2, 得结果2。 步骤2: 将第1步得到的结果再乘以3, 得结果6。 步骤3: 将第2步得到的结果再乘以4, 得结果24。 步骤4: 将第3步得到的结果再乘以5, 得120。即最后结果。 如果按此方法,求1*2*3*...*100,要写多少步? 因此,上述计算方法不可取! 99步! 2.2简单的算法实例 * 改进的方法 先设两个变量p和i,p代表被乘数,i代表乘数。 将每一步乘积直接放入被乘数变量p中。 用循环算法求结 果。 步骤1:令p=1 步骤2:令i=2 步骤3:使p * i,并将乘积放入p中。通常表示为 p * i = p 步骤4:使 i 的值加1,表示为 i+1= i 步骤5:如果i 不大于5,返回到步骤3继续向下执行;否则算法结束。p中的值即最后结果。 想一想: 采用此方法求1 * 2 * 3*...*100,如何? * 先设两个变量p和i,p代表被乘数,i代表乘数。 将每一步乘积直接放入被乘数变量p中。 用循环算法求结 果。 步骤1:令p=1 步骤2:令i=3 步骤3:使p * i,并将乘积放入p中。通常表示为 p * i = p 步骤4:使 i 的值加2,表示为 i+2= i 步骤5:如果i 不大于11,返回到步骤3继续向下执行;否则算法结束。p中的值即最后结果。 想一想: 采用此方法求1 * 3 * 5*...*101,如何? 若改为求1 * 3 * 5 * 7 * 9 * 11,如何设计算法? * [例2.2] 有两个数a,b,按大小顺序打印它们。 步骤1: 输入a,b的值; 步骤2: 如果a≥b,则先打印a,再打印b; 否则,先打印b,再打印a;算法结束。 * 用自然语言表示 如[例2.1]和[例2.2]的算法 通俗易懂,但不严谨,容易产生歧义 用流程图表示(传统流程图和N-S图) 用伪代码表示 用计算机语言表示 2.3 算法的设计与表示 * 用流程图表示算法 流程图采用一些图形框表示算法要表述的各种操作。 美国国家标准化协会ANSI规定了一些常用的流程图符号。 符号 说明 程序的开始或结束 计算步骤 输入/输出指令 判断和分支 连接符 流程线 * [例2.1]的算法用流程图来表示 计算1*3*5*...*11的值 步骤1:令p=1 步骤2:令i=1 步骤3:使p * i,并将乘积放入p中。通常 表示为 p * i = p 步骤4:使 i 的值加2,表示为 i+ 2 = i 步骤5:如果i 不大于11,返回到步骤3 继续向下执行;否则算法结束。 p中的值即最后结果。 开始 1=p 1=i p* i=p i+2=i i≤11 真 结束 假 输出p的值 * 有两个数a,b,按大小顺序打印它们。

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档