算法与流程图

基础

算法是解决问题的有限明确步骤序列;流程图以起端终端、输入输出、处理、判断与流程线五类符号把算法画成图,伪代码则以接近日常语言的方式写出,两者可互相转换。

适合:中五资讯及通讯科技 · 单元:编程概念 · 建议学习路径第 4/6 课

学完呢课,你会识:
  • 算法是解决问题的有限明确步骤,具输入、输出、明确、有限、可行五项特性。
  • 流程图五类符号:圆角框起终、平行四边形输入输出、矩形处理、菱形判断、箭嘴流程线。
  • 顺序、判断、循环由同一套符号组合表达;判断出口必须标明是与否。
文体:科技知识说明文有声朗读

文体小知识:科技知识说明文——讲解算法的意义与特性,重点训练流程图符号的辨认与流程图、伪代码之间的互相转换。

资讯及通讯科技Information & Communication Technology
读呢课前,你应该识: 网页编写基础

§课文原文 Passage

1算法是解决特定问题的一连串明确步骤:按次序执行每一步,便能由已知的输入得出所需的输出。食谱、组装说明书其实都是算法的日常版本。在电脑科学中,算法先于程式:想清楚步骤,再用任何程式语言表达,这个次序不能倒过来。

2严谨的算法具备五项特性:有零个或以上的输入;至少产生一个输出;每个步骤含义明确,不会模棱两可;步骤数目有限,经过有限次执行后必定结束;每一步都切实可行,能够付诸执行。缺一便不算合格的算法。

3流程图是算法的图形表示,采用约定的符号:圆角框表示起端与终端;平行四边形表示输入与输出;矩形表示处理,例如赋值与计算;菱形表示判断,按条件成立与否选择不同路径;带箭嘴的流程线连接各符号,指明执行次序。

4把算法画成流程图有两大好处:一是逻辑一目了然,判断与循环的位置清楚可见,方便检查错误;二是便于沟通,不懂任何程式语言的人也能看懂流程,故设计文件与考试题目常用流程图表达算法。

5伪代码是算法的文字表示,以接近日常语言加上简单关键词写出步骤,例如 INPUT、OUTPUT、IF、WHILE,毋须理会任何程式语言的严格语法。同一算法可以画成流程图,也可以写成伪代码,两者结构一一对应,互相转换是文凭试的常考题。

1重点摘要 Summary

算法是解决问题的有限明确步骤序列;流程图以起端终端、输入输出、处理、判断与流程线五类符号把算法画成图,伪代码则以接近日常语言的方式写出,两者可互相转换。

2生字卡 Vocabulary

a
algorithm算法

解决特定问题的有限、明确步骤序列,按序执行即可由输入得出输出。

f
flowchart流程图

以约定符号表示算法的图:包括起端终端、输入输出、处理、判断与流程线。

p
pseudocode伪代码

以接近日常语言的关键词写出算法步骤的文字方式,毋须遵从特定程式语言语法。

t
terminal symbol起端/终端符号

流程图中圆角框形状的符号,标示算法的开始与结束。

i
input/output symbol输入/输出符号

平行四边形符号,表示资料输入算法或结果输出给用户。

p
process symbol处理符号

矩形符号,表示赋值、计算等处理步骤。

d
decision symbol判断符号

菱形符号,按条件是否成立,选择不同的后续路径,出口一般标明是或否。

f
flow line流程线

带箭嘴的线段,连接流程图各符号并指明执行次序与方向。

v
variable变量

储存资料的具名位置,其值可在执行过程中改变,例如总和与计数器。

c
counter计数器

记录已发生次数的变量,常用于控制循环次数,例如已输入的分数个数。

3逐步讲解 Steps

  1. 第一步:甚么是算法算法是解决特定问题的一连串明确步骤,按次序执行便能由输入得出输出。它不限于电脑:一份食谱列出备料与烹调步骤,一份组装说明书列出安装次序,都是算法的日常版本。在资讯科技中,算法先于程式:先用算法想清楚解题步骤,再选用任何程式语言把它写成程式;语言会过时,解题思路却通用。举个例子:计算三位同学分数的平均,步骤是输入三个分数、求总和、除以三、输出结果,这就是一个简单算法。
  2. 第二步:算法的五项特性严谨的算法具备五项特性。输入:有零个或以上由外界提供的资料;输出:至少产生一个结果,否则算法没有意义;明确性:每一步含义唯一,不含糊、不模棱两可;有限性:步骤有限,必定在有限时间内结束,不会永远做下去;可行性:每一步都实际做得到。举个例子:写下「把总和除以全班人数」若没有先说明人数如何得知,步骤便不够明确;而「重复输入分数直至永远」违反有限性,都不是合格算法。
  3. 第三步:流程图的五类符号流程图以五类约定符号表达算法。圆角框是起端与终端符号,分别标示开始与结束,一图各有其一;平行四边形是输入输出符号,代表资料进入或结果输出;矩形是处理符号,承载赋值与计算,例如把总和加一分数;菱形是判断符号,内写条件,按成立与否分出是与否两条出口;流程线带箭嘴,把符号连成通路,指明次序与方向。举个例子:答题最常见的失分位是把判断写成矩形,或流程线漏画箭嘴,务必辨清形状与用途的对应。
  4. 第四步:顺序算法的流程图最基本的算法只有顺序结构:由起端出发,逐一经过输入、处理、输出,到终端结束。以计算长方形面积为例:起端后先以输入符号读入长与宽,再用处理符号把面积设为长乘宽,然后以输出符号印出面积,最后到达终端;四个符号以流程线依次相连,中间没有分岔。举个例子:凡是能按固定次序一次做完的题目,例如摄氏转华氏、单据计总,流程图都是一条直线,考生只要按输入、处理、输出的次序排列符号即可。
  5. 第五步:含判断的流程图现实问题常要按情况选路,这时用判断符号。以判断成绩是否及格为例:输入分数后,菱形内写条件「分数大于或等于五十」,条件成立走「是」出口输出及格,不成立走「否」出口输出不及格,两条路最后汇合到终端。判断符号的两条出口必须清楚标明是与否,不可含糊。举个例子:求两数中较大值,也是一个判断:甲大于乙时输出甲,否则输出乙;画图时先写条件,再分别完成两条支路,最后合流,结构便不会乱。
  6. 第六步:循环与累加的画法需要重复执行的算法用判断符号构成循环:条件未达成时,流程线走回前面重做,达成才离开。以计全班平均分为例:先输入人数,把总和与计数器设为零;每次输入一个分数加入总和,计数器加一;菱形判断计数器是否少于人数,少于便返回输入分数那一步,不少则离开循环,以总和除以人数求平均并输出。举个例子:三人分数为六十、七十、八十,总和二百一十,平均七十;画图时切记先设初值再累加,否则结果无从计起。
  7. 第七步:流程图与伪代码的互换伪代码以文字写同一算法,常用关键词与符号有固定对应:输入输出符号对应 INPUT 与 OUTPUT;处理符号对应赋值叙述,例如总和设为零;判断符号对应 IF 或 WHILE 条件;循环以 WHILE 条件开始、ENDWHILE 结束。转换时逐个符号对照,保持次序与条件完全一致。举个例子:计平均分的流程图可写成——输入人数;总和与计数器设为零;当计数器少于人数,重复输入分数、累加、计数器加一;离开循环后输出总和除以人数,步骤与图形一一对应。

4图解 Diagrams

流程图符号:四种砖头 Flowchart symbols开始/结束处理 process判断?输入输出圆角方形菱形平行四边形例:计平均分流程开始 → 输入三科分数 → 相加÷3(处理)→ 显示结果 → 结束规矩:箭嘴表示行嘅次序;判断菱形一定要有两条出路(是/否)画流程图=谂清楚先写 code——程式设计师嘅草稿
图 1:流程图符号

5例题示范 Example

转换题:某流程图表示计算全班平均分的算法,结构如下——起端;输入人数 N;把总和 T 与计数器 C 设为零;输入一个分数 S;把 S 加进 T;把 C 加一;判断 C 是否少于 N,是则返回输入分数一步,否则计算 A 等于 T 除以 N;输出 A;终端。试把此流程图改写为伪代码。

  1. 对照符号与关键词:输入输出符号对应 INPUT 与 OUTPUT;矩形处理对应赋值;菱形判断对应 WHILE 条件。
  2. 写出开首:先 INPUT N 读入人数,再把 T 与 C 设为零——累加之前必须初始化,否则结果无从计起。
  3. 写出循环:WHILE C 少于 N 时重复执行三步——输入 S、把 S 加进 T、把 C 加一;条件不成立便离开循环,C 每轮加一保证循环有限。
  4. 写出结尾:离开循环后,以 A 等于 T 除以 N 求平均,OUTPUT A,算法结束。
  5. 答案:伪代码:INPUT N;T 设为 0;C 设为 0;WHILE C < N 重复:INPUT S;T 设为 T + S;C 设为 C + 1;ENDWHILE;A 设为 T / N;OUTPUT A。要点:变量先初始化;循环条件与流程图菱形一致;每轮计数器加一,保证算法有限;平均在离开循环后才计算。

6常见错误 Mistakes

✗ 把判断步骤画成矩形。
✓ 判断必须用菱形符号,并标明是与否两条出口;矩形只表示处理步骤。
✗ 流程线不画箭嘴。
✓ 流程线必须带箭嘴指明执行方向,否则次序不明,流程图不合规范。
✗ 用总和变量累加之前,忘记把它设为零。
✓ 累加前必须初始化:把总和与计数器设为零,否则起点不明,结果错误。
✗ 循环条件写成计数器大于人数才继续输入。
✓ 计算全班平均时,条件应为计数器少于人数便继续;方向写反会令循环一次也不执行。
✗ 在循环之内才计算平均并输出。
✓ 平均须在离开循环、取得完整总和之后才计算;在循环内输出会得到多个错误中间值。

75 题快测 Quick check

Q1流程图中,菱形符号代表甚么?

Q2把一个分数加入总和,应使用哪类符号?

Q3全班六人分数总和为四百零二,平均分是多少?

Q4算法的有限性指甚么?

Q5伪代码中,WHILE 与 ENDWHILE 对应流程图的哪个部分?

8重点回顾 Recap

  • 算法是解决问题的有限明确步骤,具输入、输出、明确、有限、可行五项特性。
  • 流程图五类符号:圆角框起终、平行四边形输入输出、矩形处理、菱形判断、箭嘴流程线。
  • 顺序、判断、循环由同一套符号组合表达;判断出口必须标明是与否。
  • 累加之前先初始化:总和与计数器设为零,循环变量每轮更新。
  • 伪代码与流程图一一对应:INPUT/OUTPUT 对输入输出符号,WHILE 对判断循环。

同级其他科

同一科其他级别