内容正文:
第5章
算法与程序框图
5.1 算法
5.2 程序框图
5.3 应用举例
5.2 程序框图
5.2.1 程序框图基本图例
我们将设计的算法步骤绘制成图形,那么整个算法流程就会比较直观形象,容易理解.
我们将描述一步一步完成算法步骤的图形称为程序框图.绘制程序框图时,要使用规定的图形、指向线及文字说明,准确、直观地表示出算法.程序框图所用的基本符号如表5-1所示.
表5-1
5.2 程序框图
5.2.1 程序框图基本图例
绘制程序框图时一般要遵守以下规则:
(1)使用标准规范的图形符号;
(2)一般按照从上到下、从左到右的方向画图;
(3)起、止框只有一个输入点或输出点;判断框有“是”与“否”两个分支,有一个输入点,有且仅有两个输出点;处理框和输入、输出框都只有一个输入点和输出点;
(4)图框内的语言要表达清楚、简明扼要;
算法的三种基本结构,通常使用下面的程序框图来表示.
5.2 程序框图
5.2.1 程序框图基本图例
1.顺序结构算法的程序框图
顺序结构是描述算法的最简单的结构,语句和语句之间、框与框之间是按照从上到下的顺序进行的,如图5-1所示.
图5-1
5.2 程序框图
5.2.1 程序框图基本图例
2.条件结构算法的程序框图
条件结构需要进行逻辑判断,其程序框图包括判断框的结构.根据指定条件来决定执行哪一个后继框,在A和B中只能有一个被执行,执行完就脱离此结构.这样的结构也叫做条件分支结构.如图5-2所示.
3.循环结构算法的程序框图
循环结构算法中,需要反复执行某项任务直到条件得到满足为止,如图5-3所示.
下面就三种结构举例说明.
5.2 程序框图
5.2.1 程序框图基本图例
图5-2
图5-3
5.2 程序框图
5.2.1 程序框图基本图例
例1 已知点P(, )和直线l:Ax+By+C=0,求点P到直线l的距离d.
解 用数学语言来描述算法分为以下五步.
第一步:输入点P的坐标, ,输入直线方程的系数A,B,C;
第二步:计算 =A +B +C;
第三步:计算 =+;
第四步:计算d=;
第五步:输出d.
用框图来描述算法,如图5-4所示.
5.2 程序框图
5.2.1 程序框图基本图例
图5-4
图5-5
5.2 程序框图
5.2.1 程序框图基本图例
例2 求一个数a的绝对值.
解 用数学语言来描述算法分为以下四步.
第一步:输入a;
第二步:判断条件a≥0是否成立;
第三步:若a≥0成立,计算b=a,若a≥0不成立,计算b=-a;
第四步:输出b.
用框图来描述算法,如图5-5所示.
5.2 程序框图
5.2.1 程序框图基本图例
例3 计算1++ +…+ + .
解 用数学语言来描述算法分为以下六步.
第一步:令i=1,S=0;
第二步:计算a= ;
第三步:将S 的值加a;
第四步:将i 的值加1;
第五步:判断i >10是否成立,若不成立返回第二步;若成立,进入下一步;
第六步:输出S.
用框图来描述算法,如图5-6所示.
5.2 程序框图
5.2.2 程序框图案例
例4 求30名学生的数学平均成绩,画出算法的程序框图.
解 本题算法可分为以下四步.
第一步:输入30名学生的数学成绩;
第二步:将30名学生数学成绩加和,记为S;
第三步:计算=;
第四步:输出.
算法的程序框图如图5-7所示.
5.2 程序框图
5.2.2 程序框图案例
图5-7
5.2 程序框图
5.2.2 程序框图案例
例5 设计一个算法,任意输入5个正整数,按照从小到大的顺序输出.画出这个算法的程序框图.
分析 依次比较相邻的两个数,将小数放在前面,大数放在后面.第一趟:首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后.至此第一趟结束,将最大的数放到了最后.第二趟:仍从第一对数开始比较,将小数放前,大数放后,一直比较到倒数第2个数,第二趟结束,在倒数第二的位置上得到一个新的最大数.如此下去,重复以上过程,直至最终完成排序.由于在排序过程中总是小数往前放,大数往后放,如同气泡往上升,所以这种排序方法称为冒泡排序.
5.2 程序框图
5.2.2 程序框图案例