单元四 · 发挥算法的优势

第13课 让计算机会数数

任务场景
任务场景:让计算机会数数

一、学习目标

  • 通过描述让计算机从 1 数到 100 的算法,了解用循环结构解决问题时的重复过程。
  • 了解循环结构与计算机工作特点的关系,体会利用计算机的快速运算能力来解决问题的方法。

二、情境导入

要让计算机「从 1 数到 100」,应该怎样描述算法步骤呢?用计算机进行计算处理有什么优势?

三、核心讲解

本课学习路径:

1描述「从 1 数到 100」的算法
2验证「从 1 数到 100」的算法
3感受计算机运算处理的优势

1.描述「从 1 数到 100」的算法

先把问题规模缩小,以依次从 1 数到 10 为例进行分析。

想一想:

  1. 我们数数的过程是什么样的?——1,2,3,4,5,6,7,8,9,10。
  2. 数完一个数后,怎么数下一个数?——在 1 的基础上加 1,以此类推。
  3. 如何让计算机数数?——需要进行同样的过程。

让计算机直接数数不好体现,可以选择用输出这些数来表示。规律是依次加一,重复操作可以用循环结构描述。

如果「第一次输出 1、第二次输出 2、第三次输出 3……」每次都不同,流程图会有 100 个操作框。把重复的操作提取出来,就可以通过循环结构来描述:

流程图:从 1 数到 100(循环示意)

开始i = 1(初值)i ≤ 100?是输出 ii = i + 1继续循环否结束
  1. 初始时:这个数为 1。
  2. 输出这个数,然后把这个数加 1。
  3. 判断这个数是否小于等于 100:若满足,继续循环;若不满足,结束(此时数为 101)。

让计算机「从 1 数到 100」只数其中的奇数时:输出这个数,然后把这个数加 2,同样判断是否小于等于 100。

2.验证「从 1 数到 100」的算法

用 while 实现「从 1 数到 100」(while 已在第 10 课出现,算法见流程图)。

3.感受计算机运算处理的优势

强大的算力:利用程序让计算机完成数数时,即使是一台普通的个人计算机,1 秒也可以枚举几百万个数。人类翻书页、数物品、排队报数时,每秒最多也只能完成少量操作。

本课用 while 数数;while 已在第 10 课首次出现。算法见流程图,请直接载入练习。

弄清以上要点后,再进入下方 Python Online,用 while 循环体验从 1 数到 100。

四、动手体验 · Python 3 Online 编程

本课含 2 个程序,请在下拉中切换后分别「载入」运行。

五年级 · 数数:用 while 从 1 数到 100,每行打印一个数。

五、课堂总结

  • 简单的数数问题,从本质上体现出计算机解决问题的基本方法。循环结构能够实现有规律的重复操作。
  • 用循环结构寻找问题的答案是计算机解决问题的常用方法。
  • 在计算机强大的算力面前,很多问题都可以用循环结构来解决。循环操作符合计算机的工作特点,能体现利用计算速度和存储能力来解决问题的优势。

六、拓展提升

  • 如果知道起始数 b 和终止数 e,编程找出 b 到 e 之间的所有奇数。
  • 有一个「逢七必过」的游戏:参与者按顺序排好队;从 1 依次报数到 100,如果是 7 的倍数或末位数是 7,就报「过」;违规就要被「罚」。尝试玩一玩并思考:游戏中的判断条件是什么?如何用流程图描述算法?

测评

选出后点「检查」。答错会显示简短说明。

  1. 从 1 数到 100 的算法,最适合用哪种结构描述重复操作?

  2. 在 while 循环数数程序中,c = c + 1 的作用是什么?

  3. 用计算机循环数数,相比人工数数的主要优势是?

本节小结

数数是有规律的重复操作,用循环结构描述最恰当;while 循环靠条件控制结束。计算机的算力让大量重复任务变得高效。