1、
程序流程图
编 写
马磊
编写 时间
2023-07-04
审 批
审批者姓名(及其职务)
审批 时间
版本
V0.9
1 概述
运用计算机进行程序设计时,不仅仅只解决一些简朴的数据,在大部分的程序设计里解决的问题还是相称复杂的。对于那些复杂的程序设计,读者不也许直接就能写出程序的源代码,而是要通过一些具体的设计方法(如用程序流程图)把程序设计思想先写出来,然后根据程序流程图编写代码。本章将具体介绍进行程序设计时使用的基本方法和C程序的流程控制。
2 程序设计的基本知识
2.1 程序流
2、程图
在描述一个程序的基本结构思想时有很多种方法,其中程序流程图是最常用也是最基本的方法。
2.1.1 传统程序流程图
传统流程图表达法的特点是用一些图框表达各种类型的操作,用线表达这些操作的执行顺序。美国国家标准化协会ANSI规定了一些常用的流程图符号,现已为世界各国普遍采用。我国也有自己的国家标准GB 1526-89与该标准基本相同,本书就参照ANSI标准做具体介绍。标准中各种图示如图3.1所示。
起止框 输入输出框 判断框
3、 解决框
或
流程线 连接点 注释框
图 3.1 传统流程图表达法
下面对其中一些重要符号作简要说明:
(1)起止框是用来标记程序的开始和结束位置的。规定流程图以起止框开始,以起止框结束。
(2)输入输出框也叫数据框,其中可以注明数据名称、来源、用途或其它的文字说明。
(3)菱形框的作用是对一个给定的条件进行判断,根据给定的条件是否成立来决定如何执行其后的操作。
(4)解决框用矩形表达各种解决功能。例如,执行一个或一组特定的操作,从而使信息的值、信息的形式或所在位置发生变化。此
4、外在矩形框内可注明特定解决名称或其简要功能。
(5)流程线用带箭头的直线表达程序的执行顺序。当流程自左向右或自上向下时流程线可以不带箭头,其它情况应加箭头表达流程。
(6)连接点用小圆圈表达将画在不同地方的流程线连接起来。下图中有两个以①为标志的连接点,它表达这两个点是互联在一起的,实际它们是同一个点。这种连接通常用在图形画不下而需要分开画时。
①
①
(7)注释框不是流程图的必要部分,其不反映流程操作,只是为了流程图中某些操作做解释补充的,以帮助阅读流程图的人更好的理解流程图的作用。
2.1.2 N-S流程图
灵活的流程线在程序设计中有它自己的优点,
5、但也隐藏着许多导致错误的祸端。由于它允许用流程线使流程任意转移,这对程序设计是一个隐患,它使程序流程看起来很乱,使程序难以理解和维护。针对这一弊病,1973年美国学者I . Nassi和B . Shneiderman提出了一种无流程线的流程图,称为N-S图。它的基本表达方法是用一个矩形框,把整个程序算法像堆积木同样组成。其基本结构如图3.3、3.4、3.5、3.6所示。
2.2 程序的三种基本结构
结构化的程序设计方法是面向过程的程序设计的基本方法。1996年意大利Bobra和Jacopini提出了三种基本程序结构。已经证明,这三种算法可以解决任何复杂的问题。
1. 顺序结构
语句
6、组1
语句组2
语句组1
语句组2
(传统流程图表达) (N-S流程图表达)
图3.3 顺序结构流程图
2. 选择结构
条件P
真 假
语句组1 语句组2
条件P
语句组1
语句组2
成立
不成立
(传统流程图表达) (N-S流程图表达)
图3.4 选择结构流程图
3. 循环
(1)while循环结构
条件P
语句组
当条件P成立
7、 语句组
不成立 成立
( 传统流程图表达) (N-S流程图表达)
图3.5 当型循环结构流程图
(2)do…while循环结构
语句组
直到条件P成立
语句组
条件P
不成立
成立
( 传统流程图表达) (N-S流程图表达)
图3.6 直到型流程图
例: 画出求s=1+2+3+ … +100的传统流程图和N-S流程图。
i=1; s= 0;
i<=100?
输出s
s=s+i; i=i+1;
成立
不成立
结束
开始
i=1; s=0;
i<=100
s=s+i;
i=i+1;
输出s