Scratch编程思维练习课:自顶向下分析法

学习目标

分析问题特点,将一个具体的问题进行分解,形成多个有联系的小问题,然后针对每个小问题设计方案并进行实施,最后组合所有小问题的解决方案,从而解决整个问题。

课程准备

自顶向下分析法:充分理解问题是解决任何编程问题的第一步。理解之后,我们可以做出一个大致的解决方案,然后将其划分为多个主要任务。程序分解的结果因人而异,一般没有正误之分,但在经验的帮助下,可以更好地理解“主要任务”的含义。通过细分大致的解决方案,至少可以保证程序的整体逻辑是正确的。

案例:构建脚本描画如图一所示的房子。

图一

分析过程

对该房屋图像进行任务分解,可以看到该房屋由屋顶、墙面和门组成,所以得到如图二所示的分解图。分解任务时,可以从如下角度考虑主要任务。

1. 把这个房子图形看成由直线组成,所以,一个主要任务是描画每一条直线。

2. 把这个房子的图形看成由六个独立的形状组成:墙面1、墙面2、两个门、一个三角形和一个平行四边形。描画每个形状也是一个主要任务。

3. 既然两个门是相同的,就可以定义任务画一个门,然后执行这个任务两次。

4. 把房顶的三角形和平行四边形看成一个单位,描画房顶是一个主要任务。

5. 把墙面1和这个墙面的门看成一个单位,描画这个墙面也是一个主要任务。

当然还可以有其他的任务分解方式。总的来说,自顶向下分析就是把某个任务划分为更小、更易管理的片段。只需要依次关注各个片段并逐一解决。如果发现某些片段有相似之处,尝试归纳并使用通用的解决方法

图二

通过以上分析,利用Scratch编程对应的分解内容如下:

1. 描画侧面一,角色停留在点A面向右。

2. 水平移动1个单元,描画第一个门,角色停留在点B面向右。

3. 水平移动2个单元,描画侧面二,角色停留在点C面向右。

4. 水平移动4个单元,描画第二个门,角色停留在点D面向右。

5. 反向移动7个单元,然后向上移动5个单元,角色停留在点E面向右。

6. 描画屋顶。首先描画三角形,然后移至点F,最终描画平行四边形。

基于程序分解的结果,我们可以构建以下6个程序来解决对应的6个主要任务(通过自定义模块实现) :

图三 墙面1

图四 墙面2

图五 门

图六 房顶侧面三角形

图七 房顶平行四边形

图八 房顶

最后,将解决所有主要任务的程序组合起来,完成整体的描画,如图九所示。

图九 主程序

中小学生编程相关咨询或课程信息,请关注本公众号留言。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180427G1SDVT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券