B90E3A3E-285B-3C1D-D8FE-573A44992524 【编程学习】用Scratch画任意正多边形 | 电脑报·蛋黄星球

【编程学习】用Scratch画任意正多边形

2020年2月14日 17 : 26

小猫和小明一起玩游戏,小明对小猫说:“小猫你能根据我的指令在舞台上行走吗?”小猫说:“好啊,开始吧。”小明说:“走一个正三角形,走一个正方形,走一个正五边形……”“哎呀,正五边形我可不会走。”小猫说:“你教教我吧。”

编程是可以解决实际问题的,现在我们就用“分析问题—抽象建模—算法设计—编程执行”的步骤来解决怎样走出符合要求的形状这个实际的问题吧。

1.分析问题

根据问题场景,界定需要用Scratch解决的问题是:从键盘给出“边数”赋值,根据边数画出对应的正多边形。

分析角色:“小猫”,“要画出正几边形?”,需要输入框。如图1

1

 2. 抽象建模

抽象是软件开发的基础,就是找到事物的重要特征,过滤或忽略非本质的细节。比如地图就是地形的抽象。根据抽象到的条件构造一个与之相似的问题,这个新问题称之为模型。相同的事物可以有不同的模型,解决问题也会因此有差异。抽象建模是实用但又非常高深的学问,我们这里有个简单的概念就可以了。

这里我们抽象出画正三角形的方法,发现主要特征有:边数、内角和外角。如图2。这就是抽象建模过程。

2

 通过表格继续总结更多正多边形的规律:正多边形内角公式(n-2)×180°/n,正多边形外角为360°/n

正多边形种类

边数(重复次数)

内角

外角(旋转的角度)

边数×外角

正三角形

3

60°

180°-60°=120°

360°

正方形

4

90°

180°-90°=90°

360°

正五边形

5

108°

72°

360°

正六边形

6

120°

60°

360°

3. 算法设计

算法是解决问题的方法。根据刚才的总结,在确定边数n的情况下,图形的内角和的公式为(n-2×180°,正多边形外角和恒定为360°。我们的抽象模型中要素除了边数n以外,选择内角或外角都是可以的,但是经过分析选择外角要素用于计算更简单。

下面用流程图描述算法。如图3

3

4. 编程执行

首先根据功能需求自定义“赋值”和“绘画”积木。通过模块区分可以分别执行需要的功能,便于调试和升级。比如1.0版只询问边数,根据边数画出固定边长的正多边形,在调试中发现边数过多时会画出舞台边缘。于是2.0版就新增变量“边长”,并相应升级赋值和绘画积木。在3.0版中还可以判断输入的数值,避免出现小数、负数的输入导致绘图错误。

4 赋值模块

 赋值部分的编程,通过询问和回答为变量“边数”和“边长”赋值。询问时显示,绘图时小猫隐藏。如图4

5:绘图模块

绘画部分的编程,在自制积木中制作新的积木并添加边数和边长两个输入项。重复执行边数次,每次移动边长后左转360°÷边数。如图5

6

整体编程就非常简单了,擦除上一次的结果,开始新的一次赋值和绘画就可以了。如图6

5. 总结

虽然整个实例非常简单,一句话就是正多边形外角和为360°,但是编程解题的思路“分析问题—抽象建模—算法设计—编程执行”都体现在这里面了哦。同时我们还复习了控制中的重复执行、侦测模块的询问和回答、数据模块的建立变量。

分享到: