- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 控制结构与语句;4.1 算法与程序;4.2.1 程序的三种基本结构
结构化程序设计
基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto)
结构化程序:由三种基本结构反复嵌套构成的程序叫~
优点:结构清晰,易读,提高程序设计质量和效率
三种基本结构
顺序结构:由若干块组成,按各块的排列顺序依次执行。
选择结构:又称分支结构,根据给定的条件,从两条或者多条路径中选择下一步要执行的操作路径。
循环结构:根据一定的条件,重复执行给定的一组操作。 ;算法的描述
用自然语言表示
用流程图表示
传统流程图描述算法
;例:求10000之内偶数之和
;例:求ax2+bx+c=0 的根;用N-S流程图描述算法
顺序结构:先执行A操作,再执行B操作
选择结构:根据条件,选择所要执行的语句
循环结构:
当型循环:先判别循环条件,再执行语句
直到型循环:先执行语句,再判别循环条件;例:求10000之内偶数之和
;例:判别m是否素数;判别闰年; 用伪代码表示算法
例:求1000之内的完数(因子之和等于该数本身)
开始
置t的初值为1
当t≤1000,执行下面操作
置a的初值为1,置sum的初值为0
当at,执行下面操作
如果t能被a整除,则sum=sum+a
a=a+1
(循环到此结束)
如果sum与t相同,输出t的因子
t=t+1
(循环到此结束)
结束 ; 用计算机语言表示算法
例:求1000之内的完数(因子之和等于该数本身)
main()
{ int t,sum,a;
for(t=1;t=1000;t++)
{ a=1; sum=0;
while(at)
{ if(t%a==0)sum=sum+a;
a=a+1; }
if(sum==t)
{ printf(“%d 是完数,因子为:”);
for(a=1;at;a++)
if(t%a==0) printf(“%d,”);
printf(“\b\n”); }
} }; 4.2.2 程序设计过程
程序设计的过程:分析问题、设计算法、实现程序。
自顶向下,逐步细化,模块化设计,结构化编程。
例:三数中取大数
(1)基本解题思路
s1:输入三数a,b,c
s2:从a,b,c中找出最大数赋给max
s3:输出max
(2)算法细化
s1:调用scanf()函数
s2:设计一个函数max3()求三数中的最大数
s3:调用printf()函数
(3)设计主函数; main()
{ float a,b,c,max;
float max3(float,float,float);
scanf(“%f%f%f”,a,b,c);
max=max3(a,b,c);
printf(“The max is:%f\n”,max) ;
}
(4)设计max3的算法
设3个参数为x,y,z
s2.1:从x与y中取大数送m中
s2.2:从m与z中取大数送m中
s2.3:返回m给主调函数
用C语言写出max3; float max3(float x,float y,float z)
{ float m;
if(xy)
m=x;
elae
m=y;
if(mz)
m=z;
return m;
}
;例:百钱买百鸡
(1)基本解题思路
cocks:公鸡数,hens:母鸡数,chicks:小鸡数
根据题意,有公式
cocks+ hens
文档评论(0)