济南机器人编程:递归算法在小学中用Scratch就可以学习!~山东机器人编程

递归算法应用

学习scratch编程的同学,到了进阶课程阶段会接触到递归的概念(www.minshu.net)。

但是很多人很难理解什么是递归。

因为正常人的思维,一般是迭代(iteration),比如人都是先学习加减法,再学习乘除法,最后学习微积分。归纳法其实就是一种迭代,从一个简单的起点,推广到一般情况。

而递归(recursion),则是一种反人类的逆向思维,会让程序变得非常之简洁。

递归算法简介

递归算法是一种直接或者间接调用自身函数或者方法的算法,其实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。递归算法对解决一大类问题很有效,它可以使算法简洁和易于理解。

同学们小时候经常念的:从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事!故事是什么呢?“从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事!故事是什么呢?

如此循环往复,是不是像极了scratch里的重复执行模块?

递归算法在scratch里的实际运用

其实重复执行除了可以通过循环结构实现外,还可以通过另一个强大的技术实现,那就是递归。

以画正三角形为例,通常我们是这样画的:

绘制三角形需要循环3次

如果用递归算法怎么做?

这里需要运用到scratch里的更多模块

通过更多模块,我们创建新的功能块,给新功能块命名,并且可以自定义新功能块的含义。

我们将循环3次而成的正三角形重新打包,定义为新的功能块,最终程序改为:

同学们理解了吗?

递归思想的运用非常之广泛,来凤凰机器人一起探索编程的奥秘吧!

递归算法小练习

让我们加点难度吧?下图怎么用递归算法画出来?

公司名称:萍乡市置顺陶瓷有限公司
主营产品:催化剂,塑料填料,陶瓷填料,金属填料,活性氧化铝,化工成型设备,化工管道及配件,耐腐蚀材料