《标志技巧》.ppt

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
标志技巧 S1: 输入n S2: i 2 S3: flag 0 S4:求n被i整除的余数r。 S5 如果r为0 flag 1 否则 i i+1 S6: 当 i ≤sqrt(n) 并且flag = 0 转S4 S7: if flag =0 则打印 n是质数,否则打印不是。 * 算法(自然语言描述): S1、输入n S2、i=2 S3、求n被i整除的余数r。如果r为0,转S6;否则转S4; S4、i=i+1 S5、如果i=(n-1),则转S3;否则打印“n是素数”,算法结束。 S6、打印“n不是素数”,算法结束; 问题3算法思想: 1) 输入n 2) 求2整除n的余数r,如r为0,则打印“n不是素数”,算法结束 3) 求3整除n的余数r,如r为0,则打印“n不是素数”,算法结束 …… … … … n-1) 求(n-1)整除n的余数r,如r为0,则打印“n不是素数”,算法结束 n) 打印“n是素数”,算法结束。 也可以设计算法如下: S1、输入n S2、寻找n的大于1的最小因子fact; S3、如果fact等于n,则打印“n是素数”,否则打印“n不是素数”。 而S2又可以设计算法为: S2_1、fact=2 S2_2、用fact整除n,得余数r, S2_3、如果r不为0,则fact= fact+1,转S2_2;否则fact为所求。 得求解的另一种算法(自然语言描述): S1、输入n S2_1、fact=2 S2_2、用fact整除n,得余数r, S2_3、如果r不为0,则fact= fact+1,转S2_2; S3、如果fact等于n,打印“n是素数”,否则打印“n不是素数” 我们把刚才的例题:“判断一个正整数n是否是素数”的算法用流程图表示如下: Y 开始 输入n i = 2 求n除以i的余数r r为0 i = i+1 i=n-1 Y N N 打印n是素数 打印n不是素数 结束 打印“n不是素数”,结束 S6、 如果i=(n-1),则转S3; 否则打印“n是素数”,结束。 S5、 i=i+1 S4、 求n被i整除的余数r。如果r为0,转S6;否则转S4; S3、 i=2 S2、 输入n S1、 算法(自然语言描述): 有两个出口 第二种方法呢? 流程图和NS图P30——31 可以再修改! 如果fact等于n,则打印“n是素数”,否则打印“n不是素数”。 S3、 如果r不为0,则fact= fact+1,转S22; S23、 用fact整除n,得余数r, S22、 fact=2 S21、 S1、 输入n 求解的一种算法(自然语言描述): fact=n 结束 n是素数 开始 输入n fact=2 用fact整除n, 得余数r r不为0 fact=fact+1 Y N n不是素数 Y N 另解: 参见P18——20例子 C语言程序设计 第二章 程序的灵魂——算法 P17-20 简单算法举例 例2.1 方法1:累乘 方法2:用循环结构解决,灵活、通用。 例2.2 通过循环选择打印 例2.3 判断闰年 例2.4 累加求级数的和,循环改变正负号和分母加1。 例2.5 判断素数 课后认真思考,加深什么是算法的概念 C语言程序设计 第二章 程序的灵魂——算法 2.5 结构化程序设计方法 结构化程序:用三种基本结构组成的程序 基本设计思路: 复杂问题分解成 几个最基本问题,再分别处理。 采用的方法: 自顶向下; 逐步细化; 模块化设计:复杂问题按功能分成多个子模块 结构化编码:正确采用三种基本结构实现 * * * * *

文档评论(0)

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

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

1亿VIP精品文档

相关文档