2022年2022年计算机程序设计员程序设计实例 .pdf
《2022年2022年计算机程序设计员程序设计实例 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机程序设计员程序设计实例 .pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、程序设计实例本章介绍了循环程序设计方法,讲述了两种循环程序,三种循环语句。 包括前两章讲述的顺序程序结构、 分支程序结构在内,这些控制结构内的语句部分都允许任意形式的语句。这些控制结构之间可以互相嵌套,而且这种嵌套没有层次限制。比如,if 语句内可以包含循环语句,循环语句内又可以继续包含if 语句,等等。又比如,一个循环语句内可以含有循环语句,内层循环语句内还可以再包含循环语句,形成所谓的多重循环,等等。【例 4.12】编程序,输出如下序列的前50 项。该序列的第一项为0 ; 第二项为1 ; 以后的奇数项为其前两项之和;偶数项为其前两项之差。解 1:该问题应该一项一项的生成,生成一项输出一项。
2、在生成一项时要考虑该项是偶数项还是奇数项; 生成并输出一项后,为生成下一项做准备,应该把后边的项向前串。得如下图 4.30 的 PAD 图。程序如下。 #include stdio.h void main( ) int u,v,w,k ; u=0 ; v=1 ; printf ( %5dn%5dn,u,v); k=3 ; do if ( k%2 = 0 ) w=v-u; else w=v+u; printf ( %12dn,w); u=v ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
3、- 第 1 页,共 10 页 - - - - - - - - - v=w ; k=k+1 ; while ( k=50 ) ; 解 2:该问题生成一项时,可以不用分支判断,而采用标志单元的方法,这种方法在程序设计中是经常使用的。用这种方法PAD 图如图 4.31。程序如下。 #include stdio.h void main( ) int u,v,w,k ; int flag; u=0 ; v=1 ; printf ( %5dn%5dn,u,v); k=3 ; flag = -1 ; do w = v + flag*u; flag = -flag ; printf ( %5dn,w); u=
4、v ; v=w ; k=k+1 ; while ( k=50 ) ; 【例 4.13】编程序,输入两个正整数u 、v ,采用欧几里德辗转相除算法求它们的最大公因数并输出。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 解:欧几里德辗转相除算法求u 、v 最大公因数的计算过程是:u % v R1v % R1 R2R1 % R2 R3R2 % R3 R4 Rn-1 % Rn Rn+1=0到此余数 Rn+1 为0 , 计算过程结束。
5、 Rn 为正整数 u 、 v 的最大公因数。 此计算过程用PAD描述成图4.32。编出程序如下。 #include stdio.h void main( ) int u,v,r ; printf(pleace input u 、v:); scanf(%d%d,&u,%v); r=v ; while ( r!=0 ) r = u%v ; u = v ; v = r ; printf ( gcd(u,v) = %5dnu ); 【例 4.14】编程序,输入正整数N,计算 r1!+r2!+.+rn! 并输出。其中,N=r1r2.rn 。解: 该程序是一个计算若干数据项之和的程序。本章已经编写过多个求
6、和的程序,现在总结一下求和程序模式。所有计算和的程序都使用一个和单元,有类似图4.33 的模式。这里用后判断条件的循环,当然也可以采用先判断条件的循环。其中: S 是和单元;开始进入循环之前和单元S必须清 0;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 在循环体内,每循环一次给和单元加上一项;最后循环结束,和单元中的值即为所求之和。具体落实到本题,求和算法如图4.34 的 PAD 所示。下边求精图4.32 中的计算 r!。
7、阶乘是一个连乘积。r! = 1 * 2 * 3 * * r所有计算连乘积的程序都使用一个积单元,有类似图4.35 的程序模式。这里用后判断条件的循环,当然也可以采用先判断条件的循环。其中: P 是积单元;开始进入循环之前积单元P必须置 1;在循环体内,每循环一次向积单元乘入一项;最后循环结束,积单元中的值即为所求之积。具体落实到本问题计算r!,得如图4.36 的 PAD 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 综合图
8、 4.34 和图 4.36 得图 4.37 的最终算法PAD。程序如下: #include stdio.h void main( ) int N,S,P,u,r ; printf(pleace input N:); scanf(%d,&N); S=0 ; while ( N!=0 ) r = N%10 ; N = N/10 ; P=1; u=1; while ( u=r ) P=P*u ; u=u+1 ; S=S+P; printf ( r1!+r2!+.+rn! = %5dnS ); 【例 4.15】 我国古代有一道著名难题百钱百鸡 问题 : 鸡翁一 , 值钱五 ; 鸡母一, 值钱三;鸡雏三
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年计算机程序设计员程序设计实例 2022 计算机 程序设计员 程序设计 实例
限制150内