信息科技· 第3章 算法与 Python 编程
3.2知识点 · 课时

描述算法:流程图与伪代码

掌握用自然语言、流程图、伪代码三种方式描述算法。

用三种方式描述同一个算法

上一关我们理解了"算法是什么"。这一关学习怎么把算法表达出来——让别人(或计算机)能看懂。

用「自动批改一道选择题」作为例子,对比三种描述方式。

方式一:自然语言

就是用日常说话的方式描述:

  1. 读入标准答案(假设是 A)
  2. 读入学生的答案
  3. 如果学生答案等于 A,得 2 分;否则得 0 分
  4. 输出分数

缺点:自然语言有歧义。"等于"是指大小写都要一样吗?含空格算不算?不够严谨。

方式二:流程图

用图形符号表示,直观、无歧义。常用符号:

符号含义形状
圆角矩形开始 / 结束椭圆
矩形处理步骤方框
菱形判断(是/否)菱形
平行四边形输入 / 输出平行四边形

「批改一道选择题」的流程图:

开始
输入标准答案如:正确答案是 A
输入学生答案如:学生选了 B
学生答案 = 标准答案?
分数 = 2
分数 = 0
输出分数
结束
开始/结束输入/输出处理判断

方式三:伪代码

介于自然语言和编程语言之间,逻辑清晰、结构紧凑:

1读入 标准答案 A
2读入 学生答案 X
3如果 X == A:
4分数 = 2
5否则:
6分数 = 0
7输出 分数

三种方式对比

方式优点缺点
自然语言容易懂有歧义、啰嗦
流程图直观、无歧义画起来费时
伪代码简洁、接近代码不够直观

实际开发中,常用伪代码描述思路,再用流程图做复杂逻辑的示意,最后用编程语言(Python)实现。

从伪代码到 Python

伪代码几乎就是 Python 的雏形。对比看:

伪代码Python
读入 Xx = input()
如果 X == A:if x == a:
否则:else:
输出 分数print(分数)

是不是很像?下一关我们就正式学 Python,把这份伪代码变成真正能跑的程序。

📱 项目推进·第 2 关

本关项目任务:画出「自动批改助手」批改一道题的流程图

要求:

  • 包含开始/结束
  • 输入标准答案和学生答案
  • 有一个判断:学生答案是否等于标准答案
  • 输出得分

画完后对照上方的示例流程图检查。下一关我们开始用 Python 实现它。

随堂练习

检验一下你对本节内容的理解

下面哪个图形符号,在流程图中表示「判断」(如:答案是否等于 A)?