第12章 流程图的概念与描述
info

对应 GESP C++ 2 级知识块③:流程图

官方要求:了解流程图的概念及基本表示符号,掌握绘制流程图的方法,能正确使用流程图描述程序设计的三种基本结构(顺序、分支、循环)。

第12章 流程图的概念与描述

12.1 流程图定义与作用

流程图是标准化图形工具,用图形、箭头、文字描述算法/程序执行步骤。 作用:梳理逻辑、排查漏洞、方便沟通、编程前规划思路。

流程图四大标准符号

流程图四大标准符号

  1. 圆角矩形:开始 / 结束(唯一入口,可多个出口);
  2. 矩形:处理框(赋值、计算、输入输出操作);
  3. 菱形:判断框(分支条件,多条出口标注 是/否);
  4. 平行四边形:输入 / 输出;
  5. 箭头:流程走向,从上到下、从左到右。
tip

画流程图三步走 ① 把问题拆成"开始→每一步处理→判断→输出→结束"; ② 用对的符号画每个步骤; ③ 用箭头把顺序连起来,分支用菱形并标"是/否"。

12.2 三种基础流程结构(所有程序均可组合)

1. 顺序结构

步骤从上到下依次执行,无分支无循环。 例:输入 a、b → 求和 → 输出结果。

2. 分支(选择)结构

根据条件选择执行路径

  • 双分支:if … else
  • 多分支:if - else if、switch

3. 循环结构

  1. 当型 while:先判断条件,满足再执行循环体;
  2. 直到型 do-while:先执行一次,再判断是否继续。
caution

顺序 / 分支 / 循环是全部程序的"积木" 无论多复杂的程序,都能由这三种基本结构组合而成。考试选择题常给一张流程图,让你判断它属于哪种结构,或让你把代码还原成流程图。

12.3 绘制规则

  1. 符号规范,判断必须菱形;
  2. 单入口,分支最后汇合;
  3. 文字简洁,流向不交叉;
  4. 复杂流程用连接标记拆分。

12.4 流程图与 C++ 代码对应

下面用一个完整例子,把"流程图 → 代码"串起来:求两数中较大值。

求两数中较大值的流程图

  1. 顺序:逐行代码
  2. 双分支
#include <iostream>
using namespace std;

int main()
{
int a, b;
cin >> a >> b; // 输入(平行四边形)
int max;
if (a > b) // 判断(菱形)
max = a; // 是
else
max = b; // 否
cout << max << endl; // 输出(平行四边形)
return 0;
}
  1. 当型循环
初始化;
while (条件)
{
循环体;
}
  1. 直到型循环
do
{
循环体;
} while (条件);
tip

练习 试着把"输入 3 个数,输出最大值"画成流程图:先用一个菱形比 a 和 b,再用一个菱形把较大的和 c 比。画完再用 if 嵌套写出代码——这正是第 15 章"分支嵌套"的雏形。

练习题(2 级单选风格)

  1. 流程图中表示"判断/分支"应使用的符号是?
    • A. 圆角矩形
    • B. 平行四边形
    • C. 菱形
    • D. 矩形
  2. 表示程序"开始/结束"的符号通常是?
    • A. 菱形
    • B. 圆角矩形(起止框)
    • C. 平行四边形
    • D. 箭头
  3. 流程图中用于表示"输入/输出"的符号是?
    • A. 矩形
    • B. 平行四边形
    • C. 菱形
    • D. 圆形
  4. 结构化程序的"三种基本结构"不包括?
    • A. 顺序结构
    • B. 分支结构
    • C. 循环结构
    • D. 递归结构
  5. 流程图里带箭头的连线表示?
    • A. 数据内容
    • B. 程序的执行顺序(流向)
    • C. 判断结果
    • D. 存储位置
参考答案(点击展开)
  1. C — 菱形是判断框,内部写条件,引出"是/否"两条分支。
  2. B — 起止框用圆角矩形(或椭圆),标"开始/结束"。
  3. B — 平行四边形表示输入/输出(I/O)。
  4. D — 三种基本结构是顺序、分支、循环;递归是函数调用技巧,不属于基本控制结构。
  5. B — 流程线(带箭头)表示执行流向,箭头方向即执行顺序。
SShowball OI知识手册