第六章程序设计方法.PDFVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章程序设计方法 本章主要内容: 尝试法及其程序模块结构 2 课时 递推算法程序 2 课时 迭代算法程序 2 课时 重点、难点:尝试法、递推算法、迭代算法对应的基本程序模块及程序实现 上机试验: 6 课时 第一节 尝试法及其程序模块结构 凡是约束条件或方程个数少于变量个数的所有算法都属于尝试法。除了明显的约束条件 (即能用常用数学公式描述的条件)之外,能用尝试法解决的所有问题都还带一个特殊条件: 这个条件使问题只有有限个解。 尝试法在其它书籍和文献中也被称为枚举法或穷举法,因尝试范围不是唯一的,用穷难 以解释清楚,故这里称为尝试法。 用尝试法编写程序时,首先得确定尝试范围,尝试范围由循环重数和循环条件确定,循 环重数等于变量个数,各变量的取值范围就是对应循环的循环条件,用尝试法求解的所有问 题所涉及的变量至少可确定其上限和下限中的一个,对于上下限都能确定的循环用for 型循 环,否则用while 型循环。 其次要确定定解条件。所谓尝试就是用约束条件作为条件语句中的条件判断是否是解, 这一过程称为定解。因此约束条件也称为定解条件,定解通常在最内层循环中进行,当变量 之间存在简单数学关系时,循环重数可减少。利用关系减少了循环重数后,定解条件自然变 少(自然满足)。定解条件中还应显含或隐含特殊条件,尝试法的算法也可用带计算过程和 计算条件的数学公式表述。 例6.1 百钱买百鸡,公鸡只三文,小鸡文三只,母鸡一文一,品种要齐全,各买多少只? 算法及分析: 设公鸡、母鸡及小鸡只数分别为x,y,z ,由题目知: x y z 100     6 1.1 9x 3y z 300  本题的隐含条件是x,y,z 为整数,假设解为x * ,y * ,z * T ,则有: *   x  x x y  z 100 x 1,2,3, ,99      *       y y y 1,2,3, ,99 6 1.2     *     z  z 9x 3y  z 300 z 3,6,9, ,99      (6- 1.2)式对应一个三重循环,外循环头为: for(x=1;x=99;x++) 中循环头为: for(y=1 ;y=99 ;y++) 内循环头为: for(z=3;z=99;z+=3) 定解条件 (为约束条件)及内循环体为: if((x+y+z==100) (9*x+3*y+z==300)) printf(x=%d, y=%d, z=%d,x,y,z); 加上说明和输出语句则会很快写出程序: main( ) { int x,y,z; int num=0; for(x=1;x100;x++) for(y=1;y100;y++) for(z=3;z100;z+=3) if(((x+y+z)==100) (

文档评论(0)

***** + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档