c程序设计教程.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C 语言程序设计教程 3 算法 3 算 法 本章内容 3.1 算法概述 3.2 程序结构 3.3 结构化程序设计方法 程序 = 算法 + 数据结构 + 程序设计方法 + 语言环境 灵 魂 加工对象 工具 结构化程序设计 (顺序、循环、选择) 3.1 算法的概念 ? 广义的说 , 为解决一个问题而采用的方 法和步骤 , 就称为算法。 ? 选择合适的算法 ? 算法分两类:数值算法和非数值算法 买电视机的步骤: 选好货物 开票 付款 拿发票 取货 回家 考大学上大学的步骤 填报名单 交报名费 拿准考证 参加考试 得到录取通知书 报到注册 简单算法举例 例 1 :求 5 ! ( 1 × 2 × 3 × 4 × 5 )。 可先写出这样的算法: ( 1 )先求 1 × 2 ,得到结果 2 ; ( 2 )将步骤 1 得到的结果再乘以 3 ,得到结果 6 ; ( 3 )将 6 再乘以 4 ,得到 24 ; ( 4 )将 24 再乘以 5 ,得到 120 。 求 5 ! ( 1 × 2 × 3 × 4 × 5 ) ? 上述算法太繁琐,我们找一种通用的表示方法: s1: 设变量 p ,被乘数, p=1; s2: 设变量 i, 代表乘数, i=2; s3: 使 p × i, 乘积放在被乘数变量 p 中,可表示为: p × i p; s4: 使 i 的值加 1 ,即 i+1 i; s5: 如果 i 不大于 5 ,返回重新执行步骤 s3 以及其后的 s4 、 s5; 否则,算法结束。 最后得到的 p 就是 5! 的值。 例 2. 求 1 × 3 × 5 × 7 × 9 × 11 上述算法稍作改动: s1: 1 ? p; s2: 3 ? i; s3: p × i ? p; s4: i+2 ? i s5: 若 i ? 11, 返回 s3; 否则,结束。 请同学们仔细分析循环结束的条件,即 s5 步骤,如果在求 1 × 3 × 5 × 7 × 9 × 11 时, 将 s5 步骤写成: s5 :若 I11 ,返回 s3 。 这样会有什么问题?会得到什么结果? 例 2 有 50 个学生,要求将他们之中成绩在 80 分以上 者打印出来。 解:用 n 表示学生学号, n 1 代表第一个学生学号, n i 代表第 i 个学生学号。用 g 代表学生成绩, g i 代表第 i 个学生成绩,算法表示如下: S1: 1 ? i; S2: 如果 g i ? 80, 则打印 n i 和 g i , 否则不打印。 S3: i+1 ? i; S4: 如果 i ? 50, 返回 s2, 继续执行,否则算法结束。 本例中,变量 i 作为下标,用它来控制序号 (第几个学生,第几个成绩)。当 i 超过 50 时,表 示已对 50 个学生的成绩处理完毕,算法结束。 算法的特性 ? 有穷性 ? 确定性 ? 有零个或多个输入 ? 有一个或多个输出 ? 有效性 ? 用语言表示算法(自然语言、结构化语言) ? 用流程图表示算法(传统、 N-S 流程图) ? 用伪代码表示算法 ? 用计算机语言表示算法 要记住常用的流程图符号(请学生说出各自的名称) 怎样表示一个算法 例如:描述计算并输出 z=y/x 的流程,可以用自然语 言描述如下: ( 1 )输入 x , y 。 ( 2 )判断 x 是否为 0 : 若 X=0, 则输出错误信息; 否则计算 y/x ? z ,且输出 z 。 自然语言描述举例 例如:描述计算并输出 z=y/x 的流程,可以用结构化 语言描述算法如下: ( 1 ) input x , y 。 ( 2 )if x=0 print (“非法输入”)

文档评论(0)

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

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

1亿VIP精品文档

相关文档