计算机程序设计基础-第三讲.ppt
《计算机程序设计基础-第三讲.ppt》由会员分享,可在线阅读,更多相关《计算机程序设计基础-第三讲.ppt(56页珍藏版)》请在三一办公上搜索。
1、第 三 章 逻辑思维与计算机解题(续),2,例 3-3 求10!,/*/*程序名:3_3.cpp(循环语句示例)*/*作 者:wuwh*/*编制时间:2002年9月20日*/*主要功能:计算10 的阶乘*/*#include/预编译命令void main()/主函数/主函数开始int i=0,j=0,k=0;/声明 i,j,k 为整型变量,并初始化为0long sum=1;/声明 sum 为长整型变量,并初始化为1for(i=10;i=1;i=i-1)/用 for 循环作累乘运算cout i=i;/显示isum=sum*i;/每一步乘积cout tsum=sum endl;/显示每一步乘积fo
2、r(j=1;j=5500;j=j+1)/用 for 循环延迟时间for(k=1;k=10000;k=k+1);/用 for 循环延迟时间 cout 10!=sum endl;/显示运算结果/主函数结束,3,i=10sum=10i=9sum=90i=8sum=720i=7sum=5040i=6sum=30240i=5sum=151200i=4sum=604800i=3sum=1814400i=2sum=3628800i=1sum=362880010!=3628800,该程序的运行结果如下:,4,将10!展开为10987654321让整型变量 i 去表示10,9,1让长整型变量sum来表示乘积,初
3、始时让其为1将求10的阶乘考虑成累乘问题,让i=10去乘sum再将积存至sum中,即sum=sum*i之后让 i=i-1,再用上式累乘,不断地反复做这两个运算,从i=10,9,1。就完成了求10!的任务。见图3.2,求10!的思路是,,5,图3.2,6,恰好计算机擅长做这种重复操作,使用for循环是最佳选择。让循环控制变量 i 就是数字10,9,1。i 的初值为10,终值为 1。for循环的三个表达式为:表达式1 为 i=10;表达式2 为 i=1;表达式3 为 i=i-1;,7,for循环的NS图为了以后讲解的方便,有必要使用更为简便的N-S结构流程图,如图3.3,图3.3,8,if(sum
4、=3)cout This man is char(64+k)endl;g=1;这一段程序可以读作:如果sum真的为 3 时,做下面两件事(1)输出做好事的人;(2)将本题的有解标志置为 1。其中(sum=3)为条件判断语句中的条件,根据其真假使程序分支。,例 3-1 的解要用到分支语句,即需要判断当四句话中有 3 句为真时,我们要将该人判定为做好事者。请看如下程序段,9,下面我们画出分支程序的NS流程图,这种图直观清晰,一目了然。,图3.4,10,一般格式if(表达式)语句1;/语句1,只一句如果表达式为真,执行语句1;否则什么都不做if(表达式)语句块1;如果表达式为真,做语句块1的内容;否
5、则什么都不做;,11,if(表达式)语句1;else 语句2;如果表达式为真,执行语句1;否则执行语句2if(表达式)语句块1;else语句块2;,12,举例:实现如图函数,图3.5,13,/*/*程 序 名:3_4.cpp(分支程序示例)*/*作 者:wuwh*/*编制时间:2001年8月*/*主要功能:实现符号函数*/*#include/预编译命令void main()/主函数/主函数开始int x=0,y=0;/声明x,y为整型变量,并初始化为0cout x;/从键盘输入整数送至x中if(x0)/如果x0,将1赋给yy=1;elseif(x=0)/如果x=0,将0赋给yy=0;elsey
6、=-1;/否则(x0),将-1赋给ycout 当x=x 时,y=y endl;/输出x,y的值/主函数结束,14,NS图,图3.6,15,NS图,有了上述了解之后,我们来看解“谁做的好事”的程序框图,图3.7,16,现在我们来分析“谁做的好事”的NS流程图。它是由两大块组成的,如图3.8,图3.8,第一块循环结构,第二块分支结构,17,第一块是循环结构,功能是产生被试对象,依次为A、B、C、D。并测试四句话有多少句为真,如有3句为真,则可确定做好事者,同时置有解标志为1。第二块为分支结构,功能是判断是否无解,如为真,则输出无解信息。这是粗看。再往细看,第一块的循环体又由两块组成,如图3.9,中
7、含两条赋值语句中含一条分支语句,18,我们讲这一段是希望你掌握NS图,这对今后的学习会有好处。按照程序框图很容易写出程序(如下页所示),thisman=64+k;sum=(thisman!=A)+(thisman=C)+(thisman=D)+(thisman!=D);,图3.9,sum=3,真,假,输出该被测试者;有解标志置1;,19,/*/*程 序 名:3_5.cpp*/*作 者:wuwh*/*编制时间:2001年8月*/*主要功能:谁做的好事*/*#include/预编译命令void main()/主函数/主函数开始int k=0,sum=0,g=0;/声明变量为整数类型,且均初始化为0
8、char thisman=;for(k=1;k=4;k=k+1)/k既是循环控制变量,也表示第k个人/for 循环体开始thisman=64+k;sum=(thisman!=A)+(thisman=C)+(thisman=D)+(thisman!=D);if(sum=3)/如果4句话有3句话为真,则输出该人/输出做好事者cout 做好事者为 char(64+k)endl;g=1;/有解标志置1/for 循环体结束if(g!=1)/则输出无解信息 cout Cant found!endl;/主函数结束,20,/*/*程 序 名:3_6.cpp*/*作 者:wuwh*/*编制时间:2001年8月*
9、/*主要功能:谁做的好事*/*#include/预编译命令void main()/主函数/主函数开始int k=0,sum=0,g=0;/声明变量为整数类型,且均初始化为0for(k=1;k=4;k=k+1)/循环从k为1到4,sum=0;/循环体内的初始化if(k!=1)sum=sum+1;/如A的话为真,则让sum加1;if(k=3)sum=sum+1;/如B的话为真,则让sum加1;if(k=4)sum=sum+1;/如C的话为真,则让sum加1;if(k!=4)sum=sum+1;/如D的话为真,则让sum加1;if(sum=3)/若有三句话为真,则做下列两件事cout This ma
10、n is char(64+k)endl;/输出做好事者g=1;/让有解标志置1if(g!=1)/则输出无解信息 cout Cant found!endl;/主函数结束,21,/*/*程 序 名:3_7.cpp*/*作 者:wuwh*/*编制时间:2001年8月*/*主要功能:谁做的好事*/*#include/预编译命令void main()/主函数/主函数开始int k=0,g=0;/声明变量为整数类型,且均初始化为0for(k=1;k=4;k=k+1)/k既是循环控制变量,也表示第k个人/for 循环体开始if(k!=1)+(k=3)+(k=4)+(k!=4)=3)/如果4句话有3句话为真,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 程序设计 基础 第三
链接地址:https://www.31ppt.com/p-6342641.html