1、只有一个出口。图2-14-2-17中的b点为出口。注意,一个判断框有两个出口,但一个选择结构只有一个出口。不能混淆。 3:结构内的每一部分都有被执行到的机会。也就是说,对每一个框来说,都应当有一条到出口的路径通过它。图2-20中就没有一条从入口到出口的路径通过A框。 4:结构内不存在死循环(无终止的循环)。图2-21就是一个死循环。 需要说明的是基本结构并不一定只限于以上3中,只要有以上四种特点就可以。人们可以自己定义之。例 : 如下两图2.3用传统流程图表示求解一下问题的算法。(1)有两个瓶子A和B,分别放醋和酱油,要求将他们互换。#includevoid main()int a;int b
2、;int c;a=10;b=5;printf(%d,%dn,a,b);c=a;a=b;b=c;(2)一次将10个数输入,要求将将其中最大的数输出。int a10;int i;int max;input 10 numbers.n);for(i=0;i10;i+) scanf(%d,&ai); printf(nmax=a0;for(i=1; if(maxai) max=ai;the max is: %dn,max) ; (3)有3个数a b c,要求安大小顺序把他们输出。int t;scanf(%d%d%da,&b,&c);the first numbers:%d,%d,%dn,a,b,c);if
3、(ab)t=a;b=t;c)a=c;c=t;if(bt=b;the changed numbers:(4)求1+2+3+100。int sum=0;=100;sum=sum+i;the sum is:%dn,sum);(5)判断一个数n能否同时被3和5整除。input ini);if(i%3=0 & i%5=0)%d is ok!,i);else%d can not!(6)将100200之间的素数输出。int i,j;for(i=100;=200;for(j=2;jn) t=m;m=n;n=t;for(i=2;=m;if(m%i=0 & n%i=0) z=i;the answer is:,z)
4、;(8)求方程式的根。分别考虑:有两个不等的实根;有两个相等的实根。math.hfloat a,b,c;float dt;float m,n;float x1,x2;input a,b,c!a=%f,b=%f,c=%fdt=sqrt(b*b-4*a*c);m=-b/(2*a);n=dt/(2*a);if(dt1e-6)x1=m+n;x2=m-n;the equation has distinct real roots:x1=%f, x2=%fn再次说明一下由于我们考虑了实数在内,而实数在计算和存储时有细小误差,所以dt=0用 dt=1e-6表示。即10的-6次方。 2.5用N-S图表示2.4题
5、中各题的算法。2.6用伪代码表示2.4题中各题的算法。(1)输出1900-2000年中是闰年的年份,符合下面俩个条件之一的年份是闰年。(一)能被4整除但不能被100整除 (二)能被100整除且能被400整除。for(i=1900;=2000;i+) if(i%4=0 & i%100) printf(else if(i%400=0) printf(2.7什么叫结构化程序设计?他的主要内容是什么?结构化程序设计是进行以模块功能和处理过程设计为主的详细设计的基本原则。它用基本结构(一般认为是3种:顺序、选择和循环)为基本思想设计的程序。这种程序便于编写、便于阅读、便于修改和维护。这就减少了程序出错的
6、机会,提高了程序的可靠性,保证了程序的质量。 它的主要内容为:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。 具体说:采用以下方法来保证得到结构化的程序:(1)自顶向下(2)逐步细化(3)模块化设计 (4)结构化编码。 拓展:结构化程序的概念首先是从以往编程过程中无限制地使用转移语句而提出的。转移语句可以使程序的控制流程强制性的转向程序的任一处,在传统流程图中,用很随意的流程线来描述转移功能。如果一个程序中多处出现这种转移情况,将会导致程序流程无序可寻,程序结构杂乱无章,这样的程序是令人难以理解和接受的,并且容易出错。2.8用自顶向下、逐步细化的方法
7、进行以下算法的设计:(1)输出1900-2000年中是闰年的年份,符合下面两个条件之一的年份是闰年。能被4整除但不能被100整除;能被100整除切能被400整除。(2)求分别考虑D=大于0、等于0、小于0这3种情况。dt=b*b-4*a*c;if(fabs(dt)x1=(-b+sqrt(dt)/(2*a);x2=(-b-sqrt(dt)/(2*a);else m=(-b)/(2*a);n=sqrt(-dt)/(2*a);the equation has complex real roots:nx1=%f+%fin,m,n);x2=%f-%fin(3)输入10个数,输出其中最大的一个数。input the 10 numbers:=9;i+) scanf(if(aimax) max=ai;the largest number is:,max); (注:可编辑下载,若有不当之处,请指正,谢谢!)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1