结构化程序设计的原则
结构化程序设计的基本思想是采用“自顶向下,逐步求精”的程序设计方法和“单入口单出口”的控制结构。
1.自顶向下
程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。
2.逐步细化
对复杂问题,应设计一些子目标作为过渡,逐步细化。
3.模块化设计
一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,把每一个小目标称为一个模块。
4.单入口单出口
“单入口单出口”的思想认为一个复杂的程序,如果它仅是由顺序、选择和循环三种基本程序结构通过组合、嵌套构成,那么这个新构造的程序一定是一个单入口单出口的程序。据此就很容易编写出结构良好、易于调试的程序来。
结构化程序的基本结构和特点
解决任何一个复杂的问题,都可以由3种基本结构来完成:顺序结构,选择结构,循环结构。由这3种基本结构构成的算法称为结构化算法,它不存在无规律的转移,只有在本结构内才允许存在分支或者向前向后的跳转。由结构化算法编写的程序称为结构化程序。结构化程序便于阅读和修改,提高了程序的可读性和可维护性。
1.顺序结构
顺序结构是程序设计中最简单、最常用的基本结构。程序是由一条条语句组成的,在顺序结构中,各语句按照出现的先后顺序依次执行。顺序结构它是任何程序的主体基本结构,即使在选择结构或循环结构中,也常以顺序结构作为其子结构。
顺序结构其流程图见图所示:
2.选择结构
在信息处理、数值计算以及日常生活中,经常会碰到需要根据特定情况选择某种解决方案的问题。选择结构是在计算机语言中用来实现上述分支现象的重要手段,它能根据给定条件,从事先编写好的各个不同分支中执行并且仅执行某一分支的相应操作。
选择结构又称为分支结构,其流程图见图所示。该结构能根据表达式(条件P)成立与否(真或假),选择执行语句1操作或语句2操作。
案例:输入3个不同的数,将它们从大到小排序输出。
分析:
(1)先将a与b比较,把较大者放入a中,小者放b中;
(2)再将a与c比较,把较大者放入a中,小者放c中,此时a为三者中的最大者;
(3)最后将b与c比较,把较大者放入b中,小者放c中,此时a、b、c已由大到小顺序排列。其N-S图如图所示:
3.循环结构
当需要在指定条件下反复执行某一操作时,可以用循环结构来实现。使用循环可以简化程序,提高工作效率。
(1)当型循环
条件表达式P成立时反复执行循环体语句A操作,直到P为假结束循环。可以用图表示其流程:
案例:求1+2+3+…+100。
分析:计算累加和需要两个变量,用变量sum存放累加和,变量i存放加数。重复将加数i加到sum中。根据分析可画出N-S图。
根据流程图写出程序:

1+2+3+…+100流程图
#include<iostream.h>
int main( )
{
int i=1,sum=0;
while (i<=100)
{ sum=sum+i;
i=i+1;
}
cout<<"sum="<<sum<<endl;
return 0;
}
(2)直到型循环
反复执行循环体语句A操作,直到条件P为假结束循环;可以用图表示其流程:
#include<iostream.h>
int main( )
{
int i=1,sum=0;
while (i<=100)
{ sum=sum+i;
i=i+1;
}
cout<<"sum="<<sum<<endl;
return 0;
}
(2)直到型循环
反复执行循环体语句A操作,直到条件P为假结束循环;可以用图表示其流程:



