用流程图描述算法
中等2用流程图把算法画出来——让思路一目了然
我们做任何事都有步骤,比如搭积木、做早饭、或者写作业。计算机也一样,它需要按照明确的顺序执行指令。算法就是这些步骤的集合。但是光有步骤还不够,如果步骤太多、太乱,我们容易忘记或者弄错顺序。这时候就需要一张“步骤地图”——流程图。
流程图用简单的图形和箭头,把算法“画”出来。就像玩拼图之前先看效果图,画流程图能帮助我们想清楚每一步做什么、下一步往哪里走。哪怕不会写代码,也能先把逻辑理得清清楚楚。
1. 算法和流程图——一对好搭档
我们生活中的每一步都可以看成算法。比如早上起床:
穿衣服 → 刷牙 → 吃早饭 → 背书包 → 上学
这是一串顺序执行的指令。如果中间加一个判断,比如“今天下雨吗?”要是下雨就带伞,不下雨就不带,那就变成带分支的算法了。流程图最适合表现这种带判断、有分支、甚至重复(循环)的步骤。
2. 流程图里的“积木块”
画流程图就像搭积木,每种图形代表一种动作。认识这几个基本形状,你就能画出大部分算法的流程图。
-
圆角矩形 —— 开始 / 结束
程序的起点和终点。一般只出现两次:最开头写“开始”,最后写“结束”。 -
矩形 —— 处理(做事情)
表示执行某个操作,比如“输入一个数字”“计算总分”“输出结果”。 -
菱形 —— 判断(问问题)
表示一个条件判断,答案只有“是”或“否”(或者“真”/“假”)。从菱形出发要有两条箭头,分别指向“是”和“否”的下一步。 -
箭头 —— 指引顺序
连接各个图形,箭头方向就是算法执行的方向。
生活中的例子
画一个“判断是否带伞”的流程图:(开始) | v [看天气预报] | v <今天下雨?> ← 菱形 / \ 是 否 v v [带伞] [不带伞] \ / v v (结束)
3. 怎样画一个流程图——两个小例子
例1:早上上学流程(含判断)
(开始)
|
v
[闹钟响了,起床]
|
v
[穿衣服]
|
v
[刷牙洗脸]
|
v
<今天要考试吗?>
/ \
是 否
v v
[复习一下] [直接吃早饭]
\ /
v v
[吃早饭]
|
v
[背书包上学]
|
v
(结束)
这个流程图里,菱形判断“今天要考试吗?”分出两条路。画完流程图,你一眼就能看清整个早晨的行动顺序。
例2:判断一个数是奇数还是偶数(课本例子)
这是大家熟悉的例子,流程图如下:
(开始)
|
v
[输入数字n]
|
v
<n % 2 == 0?> ← 判断:n除以2余数是否为0
/ \
是 否
v v
[输出“偶数”] [输出“奇数”]
\ /
v v
(结束)
小技巧:画流程图的时候,从“开始”出发,沿着箭头走一遍,看看每条路最后是不是都能到达“结束”。如果中途卡住了或者有多余箭头,说明算法有漏洞。
4. 从流程图到Python代码
流程图只是草稿,变成代码才是目标。但有了流程图,写代码就像照着说明书拼乐高——每一块图形对应一句或几行代码。
- 开始/结束 → 程序框架,不需特别写,但你的代码要有开始(第一行)和结束(最后一行)。
- 矩形“输入数字n” →
n = int(input("请输入一个整数:")) - 菱形判断“n % 2 == 0?” →
if n % 2 == 0: - 输出矩形 →
print("偶数")或print("奇数")
对照上面的流程图,写出代码:
# 输入一个整数
n = int(input("请输入一个整数:"))
# 判断是否偶数
if n % 2 == 0:
print("偶数") # 余数为0就是偶数
else:
print("奇数") # 否则是奇数
看,是不是很简单?流程图画得越清楚,代码写得越快。
5. 新手常犯的错误(画流程图时要注意)
- 忘记开始和结束:任何流程图都有起点和终点,缺一不可。没有“开始”,执行不知道该从哪启动;没有“结束”,程序会一直跑下去。
- 判断框只画一个出口:菱形必须有两个出口(是/否)。如果只画一个,程序走到这里就不知道往哪走。
- 箭头方向混乱:箭头应该从上到下或从左到右,尽量不要交叉。如果交叉太多,可以调整图形位置或用连接点(圆圈)来简化。
- 处理框里写得太模糊:例如写“处理数据”就不明确,应该写“计算总分”“输出成绩”这样清晰的动作。
生活中的错误例子:
假如你画一个“买冰激凌”流程图,判断“有没有零花钱?”只有“是”的箭头,没有“否”的箭头,那零花钱不够时该干嘛?就卡住了。所以一定要把两条路都画出来。
6. 完整可运行代码示例
下面是一个完整的程序,实现“输入一个数,判断并输出它是不是偶数”。每个变量都写了中文注释。
# 判断奇偶数程序
# 输入部分:让用户输入一个整数
num = int(input("请输入一个整数:"))
# 判断部分
if num % 2 == 0: # 如果num除以2余数为0,则是偶数
print(num, "是偶数")
else: # 否则是奇数
print(num, "是奇数")
# 结束
你可以直接复制到 Python 环境里运行,输入不同数字试试。
如果你想再练一个例子,试试这个:输入考试成绩,判断是否及格(60分以上及格)。流程图和代码你可以自己先画一画,再对照下面的结果。
对应的流程图:
(开始)
|
v
[输入成绩score]
|
v
<score >= 60?>
/ \
是 否
v v
[输出“及格”] [输出“不及格”]
\ /
v v
(结束)
对应Python代码:
# 判断考试成绩是否及格
score = int(input("请输入你的成绩:"))
if score >= 60: # 大于等于60分
print("恭喜你,及格了!")
else:
print("没及格,加油哦!")
7. 学了流程图,接下来学什么?
流程图是描述算法的三大工具之一(另外两个是伪代码和自然语言)。如果你对画流程图已经熟悉,可以继续学习:
- 顺序结构:按顺序一步一步执行,没有分支和循环。
- 选择结构:就是上面的 if 判断,流程图里对应菱形。
- 循环结构:重复做某件事,直到条件满足才停止。流程图里常用一个菱形判断是否继续循环(比如“还要买东西吗?”是→继续,否→结账)。
- 一个更复杂的程序:比如算全班平均分、模拟猜数字游戏等,都适合先用流程图理清思路。
当你遇到一个看似复杂的编程题目,不要急着敲代码。先拿起纸和笔画一画流程图,把步骤理顺,再写代码时就会轻松很多。
记住:流程图是你和计算机之间的翻译官。画好它,写代码就不怕迷路啦!
例题精讲
在流程图中,用于表示条件判断的图形是什么?
流程图的绘制必须从开始框出发,沿着箭头方向进行,最终到达结束框。
以下代码描述了一个流程图:先输入一个整数n,然后判断n是否大于0,如果是则输出"正数",否则输出"非正数"。请补全代码。
n = int(input())
if ___:
print("正数")
else:
print("非正数")在流程图中,要表示“重复执行某段程序直到条件满足”,应该使用什么结构?
流程图中,同一个处理步骤可以用多个并列的矩形框表示,但应尽量合并。