c语言程序设计3(算法初步).pptVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言程序设计3(算法初步).ppt

利用计算机求解问题的一般过程 (1)问题分析阶段 (2)数据结构设计阶段 (3)算法设计阶段 计算机解题的步骤。 (4)编码与调试阶段 用某种程序设计语言描述的解题算法-----计算机程序。 算法描述 P65例1(自学):求解一元二次方程 问题分析 假设一元二次方程可以书写成ax2+bx+c=0。可以看出,任何一个一元二次方程都由三个系数a、b、c惟一确定,所以,首先需要用户输入三个系数,然后再根据一元二次方程的求解规则计算最终的结果,并将结果显示输出。 算法描述 程序代码 算法描述 程序代码 P69 例3:百钱买百鸡。 问题分析 假设:公鸡x只,母鸡y只,小鸡z只。 5x+3y+z/3=100 x+y+z=100 公鸡数量在 0 ? 100/5 母鸡数量在 0 ? 100/3 小鸡数量在 0 ? 100,或:100-x-y 算法描述 程序代码 递推法与迭代法是基于分步递增方式进行求解的解题方法。 递推法的基本方法: 其基本策略是将复杂的运算划分为可以重复操作的若干个简单的运算,将解决问题的过程分为若干个步骤,每个步骤都产生一个子解,每个子解都是由前面若干个子解生成的,它们均与问题规模相关,且是相关问题规模的完整解。 迭代法的基本方法 迭代法与递推法类似,也是递增求解。但递推法每步得到的解都是对应问题规模的完整解,而迭代法中间步骤得到的解一般只是“近似解”,而不代表子问题的解。 问题分析 等比数列的递推公式为: itemi = itemi-1 * ratio 后项等于前项乘以比例值 sumi = sumi-1 + itemi 前i项之和等于前i-1项之和加当前项 由于在重复上述递推计算之前,需要将第1项的值累加到sum中,所以,需要先将item存入sum中。 算法描述 P74例6:按位分解整数。 问题分析 可以利用程序设计语言提供的整除和求余运算实现将整数分解的目的。例如,对于整数7326,用7326/1000就得到了最高位7,而7326%1000得到了其余的位数326。但是,这种方法要求首先获得整数最高位的权,因此,算法应该先求整数最高位的权,然后从高向低逐个分离出每位数字。 〖break语句〗 break的功能是结束当前语句结构的继续执行,将控制转移到当前语句结构的下一条语句处。应用在循环结构中,可以实现提前结束循环的目的。 〖continue语句〗 continue语句只能用在循环结构中,其功能是提前终止本次循环体的执行,转去执行下一次循环。 作业 P77 习题 1,2,3,4,5, P78 上级练习题 2 P79 编程题 1,2 * * 第3章 计算机算法初步 3.1 算法的概念 正确、易读、高效、通用 例:求n! 即1×2 ×3 ×… ×n 设两个变量,p 存放乘积,i 存放乘数。 S1: 输入n S2: 使 p=1 S3: 使 i=2 S4: 使 p ×i, 乘积仍放在变量p中, 可表示为p×i ? p S5: 使i的值加1, 即i+1? i S6: 判断in否。是:输出p; 不是: 返回S4执行步骤S4以及其后的步骤。 开始 2?i, 1?p p×i ? p i+1? i in? 输入n 结束 N Y 打印p N N Y Y 开始 输入 a,b,c b 2 - 4ac ? t t 0 t = 0 结束 输出一个解 输出“无解” 输出两个解 #include stdio.h #include math.h main( ) { int a, b, c,t; printf( “Input a,b,c: ” ); scanf( “%d%d%d”, a, b, c ); t = b*b – 4*a*c; if (t0) printf( “No solution\n” ); else if ( t==0 ) printf( “X = %lf\n”, -b/(2.0*a) ); else { double t0; t0 = sqrt( (double)t ); printf( “X1 = %lf, X2= %lf\n”, (-b+t0)/(2*a), (-b-t0)/(2*a) ); } } 3.2 穷举法 概述 列举出每一个可能性,逐个进

文档评论(0)

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

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

1亿VIP精品文档

相关文档