跳转到内容

编程基础/流程图

来自维基教科书,开放的书籍,开放的世界
显示“Hello world!”的流程图

流程图是一种图表,用于表示算法、工作流或过程。流程图将步骤显示为各种类型的框,并通过箭头连接框来表示它们的顺序。这种图表表示说明了给定问题解决方案模型。流程图用于分析、设计、记录或管理各个领域的流程或程序。[1]

流程图将代码中的步骤显示为相互连接的形状,并用箭头连接。主要目标是创建对编码问题解决方案的粗略草稿。流程图中看到的形状类型取决于程序员想要创建的语句。例如,“if”语句(仅在特定条件为真时才起作用的代码部分)由菱形表示,而循环语句(允许代码部分根据需要重复自身)由六边形表示。流程图还可以对不同类型的语句进行颜色编码,使代码更易于阅读。

以下是常见的流程图符号和示例。在第一次阅读本节时,请重点关注简单符号和示例。在后面的章节中再回到本节,回顾高级符号和示例。

简单的流程图符号

[编辑 | 编辑源代码]

圆角矩形或终点表示流程图的起点和终点。

Terminal

流程线

[编辑 | 编辑源代码]

注意:默认流程是从左到右,从上到下(与阅读英文的方式相同)。为了节省时间,箭头通常只在流程线与正常方向相反时绘制。

Line

输入/输出

[编辑 | 编辑源代码]

平行四边形表示输入或输出操作。

Input/Output

矩形表示过程,例如数学计算或变量赋值。

Process

菱形用于表示决策符号中测试的真/假语句。

Decision

高级流程图符号

[编辑 | 编辑源代码]

模块调用

[编辑 | 编辑源代码]

程序模块在流程图中用一个矩形表示,并用一些线来区分它与过程符号。程序员通常会在程序控制和特定任务模块之间,或在本地函数和库函数之间进行区分。

Predefined Process

连接符

[编辑 | 编辑源代码]

有时流程图会分成两个或多个更小的流程图。这通常是在流程图不适合单个页面,或者必须分成几个部分时进行的。连接符符号(是一个带字母或数字的小圆圈)允许你在同一页面上连接两个流程图。看起来像衬衫上口袋的连接符符号,允许你连接到不同页面上的流程图。

On-page Connector Off-page connector

简单示例

[编辑 | 编辑源代码]


简单示例

[编辑 | 编辑源代码]

我们将通过显示一些伪代码的流程图来演示各种流程图元素。

伪代码:没有参数传递的函数

Function clear monitor
    Pass In: nothing
    Direct the operating system to clear the monitor
    Pass Out: nothing
End function

伪代码:主函数调用清除监视器函数

Function main
    Pass In: nothing
    Doing some lines of code
    Call: clear monitor
    Doing some lines of code
    Pass Out: value zero to the operating system
End function

顺序控制结构

[编辑 | 编辑源代码]

下一个项目是关于一个简单的温度转换程序的伪代码。这演示了页面内和页面外连接符的使用。它还说明了顺序控制结构,其中没有发生任何不寻常的事情。只需按照列表中的顺序依次执行每个指令。

伪代码:顺序控制结构

Filename: Solution_Lab_04_Pseudocode.txt
Purpose:  Convert Temperature from Fahrenheit to Celsius
Author:   Ken Busbee; © 2008 Kenneth Leroy Busbee
Date:     Dec 24, 2008

Pseudocode = IPO Outline

input
    display a message asking the user for the temperature in Fahrenheit
    get the temperature from the keyboard

processing
    calculate the Celsius by subtracting 32 from the Fahrenheit temperature then multiply the result by 5 then divide the result by 9. Round up or down to the whole number.
    HINT: Use 32.0 when subtracting to ensure floating-point accuracy.

output
    display the Celsius with an appropriate message
    pause so the user can see the answer 

高级示例

[编辑 | 编辑源代码]

选择控制结构

[编辑 | 编辑源代码]

伪代码:如果则否则

If age > 17
    Display a message indicating you can vote.
Else
    Display a message indicating you can't vote.
Endif

伪代码:情况

Case of age
    0 to 17   Display "You can't vote."
    18 to 64  Display "You are in your working years."
    65 +      Display "You should be retired."
End case

迭代(重复)控制结构

[编辑 | 编辑源代码]

伪代码:While

count assigned zero
While count < 5
    Display "I love computers!"
    Increment count
End while

伪代码:For

For x starts at 0, x < 5, increment x
    Display "Are we having fun?"
End for

for 循环没有标准的流程图方法,您会发现它以不同的方式完成。 作为计数循环的 for 循环可以类似于作为计数循环的 while 循环进行流程图。

伪代码:Do While

count assigned five
Do
    Display "Blast off is soon!"
    Decrement count
While count > zero

伪代码:Repeat Until

count assigned five
Repeat
    Display "Blast off is soon!"
    Decrement count
Until count < one

关键术语

[编辑 | 编辑源代码]
决策符号
流程图中用于提出问题和做出决策的菱形。
流程线
连接各个流程图符号的线(有时带箭头)。
流程图
一种编程设计工具,它使用图形元素来直观地描述函数中逻辑的流程。
输入/输出符号
流程图中用于输入/输出交互的平行四边形。
处理符号
流程图中用于正常流程(如赋值)的矩形。

参考资料

[编辑 | 编辑源代码]
华夏公益教科书