CC++ & Algorithm

流程图的概念与基本符号

简单6
语言版本:C++Python
概述:流程图就像做菜看的食谱,用画图和箭头把事情一步一步说清楚。今天我们来认识流程图里的常用符号。

流程图:编程前的“地图”与“食谱”

你有没有看过菜谱?菜谱上画着食材和步骤,箭头指向下一个动作,告诉你先切菜、再炒菜、最后装盘。流程图就像编程的菜谱——它用简单的图形和箭头,把做一件事的步骤画出来,让你一看就明白先做什么、后做什么。

在写代码之前,先画一张流程图,就像出门前先看地图。这样写代码就不会迷路,还能提前发现逻辑错误。今天我们就来认识流程图里的常用符号、三种基本结构,以及如何用它来描述算法。

一、流程图的基本符号

流程图就像积木,只有几种基础形状,却能搭出复杂的程序。记住这四种常用的“积木”:

  • 起止框:椭圆形或圆角矩形,表示事情从哪里开始、到哪里结束。比如写“开始”、“结束”。
  • 处理框:矩形,表示做一步操作,比如“计算总分”、“给变量赋值”。
  • 判断框:菱形,表示问一个问题,答案通常是“是”或“否”,然后根据答案走不同的路。
  • 流程线:带箭头线条,连接各个图形,表示步骤的先后顺序。

举个例子:你每天早起去学校,可以用流程图画出起床流程。
开始 → 穿衣服 → 刷牙 → 吃早饭 → 检查书包 → 出门 → 结束。这里的每一个矩形就是一个处理框,箭头就是流程线。

二、三种基本结构:顺序、选择、循环

你玩过乐高吗?乐高只有几种基础积木,却能拼出飞船、城堡。流程图也一样,任何复杂程序都由三种基本结构组合而成:顺序结构选择结构循环结构

1. 顺序结构——一件事接一件事

早上起床的流程:穿衣服 → 刷牙 → 吃早饭。这就是顺序结构——按顺序执行,没有岔路,没有回头。

在Python代码中,顺序结构就是从上往下一条一条执行:

# 顺序结构:先输出“你好”,再输出“再见”
print("你好")
print("再见")

对应的流程图很简单:开始 → 输出“你好” → 输出“再见” → 结束。

2. 选择结构——看情况决定做什么

过马路时,看到绿灯就走,红灯就等。这是根据“信号灯颜色”这个条件做选择。在程序里,我们用if...else...来实现。

生活中的另一个例子:零花钱不够买零食。你的零花钱有10元,你想买一包5元的薯片和一瓶3元的可乐。钱够不够?判断:10 >= (5+3) → 是,那就买;如果零花钱只有6元,不够,就回家拿钱或者不买。

# 选择结构:判断零花钱是否够买零食
money = int(input("你有多少零花钱?"))
snack_price = 5  # 薯片5元
drink_price = 3  # 可乐3元
total = snack_price + drink_price
if money >= total:
    print("买!")
else:
    print("钱不够,下次再买")

流程图:开始 → 输入零花钱 → 菱形判断“money >= total?” → 是则“买”,否则“钱不够” → 结束。

3. 循环结构——重复做直到条件不满足

在操场跑圈,老师让你一直跑,听到哨声才停。循环就是重复做一件事,直到某个条件不再成立。

另一个例子:妈妈让你每天背5个英语单词,从星期一到星期五,每天重复“背单词”这个动作。用循环结构描述:设day=1,判断day <= 5?是则背单词,day加1,然后回到判断;否则结束。

# 循环结构:从1数到5
i = 1  # 初始化计数器
while i <= 5:  # 判断条件
    print(i)    # 输出当前数字
    i = i + 1   # 计数器加1

对应的流程图里,判断框后面会有一条箭头往回指,形成环路。开始 → 设i=1 → 菱形“i<=5?” → 是则输出i,i加1,箭头回到判断 → 否则结束。

三、用流程图描述算法:求两个数的最大值

“算法”听起来很高深,其实就是解决一个问题的具体步骤。比如“如何给手机充电”:找到充电器 → 插入插座 → 插入手机 → 等待电量变满。如果步骤乱了,可能充不上电。

在编程里,我们也要先想好算法,再用流程图画出步骤,最后翻译成代码。

下面是一个完整例子:输入两个整数,输出较大的那个数。

第一步:画出算法流程图(文字描述)

  1. 开始
  2. 输入两个数a和b
  3. 判断a是否大于b
    • 如果是:最大值 = a
    • 如果否:最大值 = b
  4. 输出最大值
  5. 结束

这个流程只包含顺序和选择结构,通俗易懂。

第二步:对照流程图写Python代码

# 求两个数的最大值
a = int(input("请输入第一个数:"))  # 变量a存储第一个数
b = int(input("请输入第二个数:"))  # 变量b存储第二个数
if a > b:  # 判断框:a > b?
    max_num = a  # 是,最大值设为a
else:
    max_num = b  # 否,最大值设为b
print("最大值是:", max_num)  # 输出结果

看到没?代码和流程图里的步骤一一对应。判断框变成了if-else,处理框变成了赋值和输出。

第三步:用循环结构升级算法——从一堆数中找最大值

如果我们要从一堆数字(比如5个数)中找最大值,这个算法就需要用到循环了。方法:先假设第一个数是最大值,然后从第二个数开始依次比较,如果遇到更大的就替换。

生活例子:班上有10个同学,你想找出谁最高。你让第一个同学先站出来当“临时最高”,然后挨个跟其他同学比,如果发现更高的,就换人。最后剩下的就是全班最高。

# 从5个数中找最大值(循环)
nums = [3, 7, 2, 9, 5]  # 一个整数列表
max_num = nums[0]       # 假设第一个数是最大值
for x in nums[1:]:      # 从第二个数开始遍历
    if x > max_num:     # 判断当前数是否更大
        max_num = x     # 如果是,更新最大值
print("最大值是:", max_num)  # 输出结果

流程图里会有一个菱形判断“还有下一个数吗?”(或者用for循环的隐含判断),是就继续比较,否就输出结果。

四、新手容易犯的错误

  1. 忘记开始和结束
    每个流程图都必须以“开始”开头、以“结束”收尾。有些同学直接从处理框开始,或者漏了结束,就像菜谱没有第一步和最后一步,让人不知道从哪开始、在哪结束。

  2. 判断框的箭头方向混乱
    菱形判断框一定要有两条出路(是/否),而且每条出路都要明确标注“是”或“否”。有些同学只画一条箭头,或者箭头指向不明,导致逻辑不清晰。

  3. 循环结构缺少条件更新
    在循环中,必须有一个语句让条件最终变为“否”(比如计数器加1)。否则循环会无限进行下去,程序“死机”。比如上面的i = i + 1如果漏掉,i永远等于1,循环永远不停。

  4. 流程图和代码不对应
    画完流程图后写代码,要确保每个处理框、判断框在代码中都有对应的语句。如果流程图里画了“计算总分”,而代码里没写计算语句,那就错了。

五、完整可运行的代码示例

下面是一个完整的程序:从5个数中找最大值,用到了顺序、选择和循环三种结构。你可以直接复制运行,并对照流程图理解。

# 从列表中找出最大值(完整示例)
nums = [12, 5, 18, 9, 21]  # 一个包含5个整数的列表
max_num = nums[0]          # 假设第一个数是最大值
for x in nums[1:]:         # 循环遍历后面的每个数
    if x > max_num:        # 判断当前数是否更大
        max_num = x        # 如果是,更新最大值
print("最大值是:", max_num)  # 输出结果

运行这段代码,会输出:最大值是: 21

对应的流程图步骤:

  1. 开始
  2. 创建一个列表nums和变量max_num(赋值)
  3. 判断“是否还有下一个数?”(循环判断)
    • 是:取下一个数 → 判断该数是否大于max_num? → 是则更新max_num,然后回到步骤3
    • 否:跳出循环,输出max_num
  4. 结束

六、相关指引

  • 如果你想知道更多流程图符号(比如输入/输出框、子程序框),可以查阅《流程图国家标准》。
  • 学好流程图能帮你更轻松地理解函数模块化编程——把复杂问题拆成小流程。
  • 在学排序算法(比如冒泡排序)时,先画一张流程图,代码实现就变得清清楚楚。
  • 下一节我们将学习用流程图调试程序:当代码运行结果不对时,对照流程图一步步检查,快速找到bug。

记住:画流程图就是在写代码之前先整理思路。有时候你觉得问题很难,但用流程图一步一步分解,就会发现原来这么简单。下次遇到编程难题,不妨先拿出纸笔来画一画吧!

例题精讲

1单选题

流程图中,平行四边形通常用于表示什么操作?

A开始或结束
B处理步骤
C判断条件
D输入或输出
2判断题

在流程图中,菱形框用于表示判断或决策。

3填空题
下面是一段与“如果温度高于30度,就开空调”流程图对应的Python代码,请补全条件判断部分。\ntemperature = 35\nif temperature ___ 30:\n    print("开空调")
4单选题

在流程图中,用于表示程序开始和结束的符号是?

A矩形
B菱形
C圆角矩形(或椭圆形)
D平行四边形
5判断题

流程图中,箭头方向表示程序执行的先后顺序。