4.用流程图表示算法
最后更新于:2022-04-01 23:15:34
# 4.用流程图表示算法
除了很简单的问题,一般不用自然语言表示算法。我们推荐使用流程图表示算法。
流程图表示算法,直观形象,易于理解。
常用流程图说明:
![用流程图表示算法](http://www.lvtao.net/content/uploadfile/201404/4bbbc4ee2dae00833993a75b7ac11e9220140421033157.gif)
【例2.6】将【例2-1】求5!的算用流程图表示。
![将例2.1求5!的算用流程图表示](http://www.lvtao.net/content/uploadfile/201404/dc6baed0f3bc3a8a58deb6741bcdb27720140421033158.gif)
【例2.7】将【例2-2】的算用流程图表示。
![将例2.2的算用流程图表示](http://www.lvtao.net/content/uploadfile/201404/5480308776fb8e5281bef5ea2a5e864420140421033158.gif)
【例2.8】将【例2-3】判定闰年的算用流程图表示。
![将例2.2的算用流程图表示](http://www.lvtao.net/content/uploadfile/201404/38f39d8afc2c8af7a32657d7a4edc08220140421033158.gif)
### 2.1.1三种基本结构和改进的流程图
顺序结构:
![顺序结构](http://www.lvtao.net/content/uploadfile/201404/2cfb4eed8cbfecb7b1e7ba23b34ad33020140421033158.jpg)
选择结构:
![选择结构:](http://www.lvtao.net/content/uploadfile/201404/f845b79a5968a7b4b9f3bb1db100b4d020140421033158.jpg)
循环结构:
![循环结构](http://www.lvtao.net/content/uploadfile/201404/04ca6ecb09724447e59e6baf4f5773cc20140421033159.jpg)
三种基本结构的共同特点:
* 只有一个入口;
* 只有一个出口;
* 结构内的每一部分都有机会被执行到;
* 结构内不存在“死循环”。
### 2.1.1用N-S流程图表示算法
1973年美国学者提出了一种新型流程图:N-S流程图。
顺序结构:
![用N-S流程图表示算法](http://www.lvtao.net/content/uploadfile/201404/ba45dd3f4e0663eb11b66ab3a7b2834920140421033159.jpg)
![](http://www.lvtao.net/content/uploadfile/201404/2f4294d56c88649732190842bc046f2a20140421033159.jpg)
### 2.1.1用伪代码表示算法
伪代码使用介于自然语言和计算机语言之间的文字和符号来描述算法。
### 2.1.2用计算机语言表示算法
* 我们的任务是用计算机解题,就是用计算机实现算法;
* 用计算机语言表示算法必须严格遵循所用语言的语法规则。
【例2.20】求1×2×3×4×5用C语言表示。
~~~
main()
{int i,t;
t=1;
i=2;
while(i<=5)
{t=t*i;
i=i+1;
}
printf(“%d”,t);
}
~~~
【例2.21】求级数的值。
~~~
main()
{
int sigh=1;
float deno=2.0,sum=1.0,term;
while(deno<=100)
{ sigh= -sigh;
term= sigh/ deno;
sum=sum+term;
deno=deno+1;
}
printf(“%f”,sum);
}
~~~
### 2.2结构化程序设计方法
* 自顶向下;
* 逐步细化;
* 模块化设计;
* 结构化编码。
';