当前位置: 首页 > 科技观察

编写儿童编程书系列:学习函数打包命令

时间:2023-03-19 13:27:13 科技观察

在上一节中,小伊恩已经熟悉了使用命令来解决一些简单的编程挑战。虽然moveFoward()、collectGem()、toggleSwitch()等简单的命令在Playground中组合执行,但可以看出,孩子每完成一次编程挑战游戏,孩子的编程思维也在不断发展。是逐渐建立起来的。在本节中,我们将介绍另一个编程学习中的重要工具——函数。识别功能在我们的日常生活中,即使是最简单的任务也是由一系列按一定顺序组合的步骤组成的。比如我们每天做的系鞋带的动作,也可以分为三个步骤。每双鞋有两个,所以我们需要重复同样的过程两次。想象一下,如果我们用上一节学习的命令方式让计算机完成系鞋带的任务,是否需要输入以下6条命令?但是想一想,我们在穿鞋的时候,其实并不是按照这些说明来完成穿鞋的任务的。我们只是把系鞋带的步骤记在脑子里,然后在每次需要系鞋带的时候把这些步骤从脑子里拿出来,应用到我们穿的每只鞋上。那么,同理,有没有办法让电脑记住这些步骤,需要的时候再用呢?在这里,我们需要用到一个新的工具——函数。一个函数可以将一组命令打包并给它起一个名字。并且这套命令在需要的时候可以通过这个函数的名字来调用。定义一个函数我们还是以系鞋带为例,看看如何通过定义一个函数解决方案让计算机记住系鞋带的步骤:首先,我们使用func关键字声明一个函数func,后面跟着我们给的名字函数,上面函数的名字是tieMyShoe-tiemyshoelaces,和前面提到的命令一样,我们也在函数名后面加上一对括号。我们用一对花括号{}来定义函数包含的内容,我们也称它为函数体。通过向函数体中添加命令,我们可以为这个函数添加我们想要的行为。调用函数我们定义了一个函数后,计算机并不会自动执行它。相反,我们需要明确地告诉计算机何时何地调用它。我们调用并执行函数名封装的命令集。在这里,我们通过两次调用tieMyShoe()函数来完成系两只鞋的任务。Tips:理解函数定义和调用的关系非常重要。函数用于封装命令,但定义后不会直接执行。只有当它们被函数名调用时,函数体中的命令才会被执行。.通过函数简化问题求解函数是程序员在编程时最常用的工具,但是对于初学者来说,他们往往很难判断什么时候使用函数,因为在大多数情况下,我们也可以通过结合命令提问来解决问题。以下是函数最常见的使用场景,第二点是这些场景中最常见的:当需要组合现有命令来创建新的或更复杂的行为时重复或多次使用时过于复杂,也会分解成多个更小的行为。让我们回到Ian最喜欢的Playground,看看我们如何使用函数来解决那些复杂的问题。在这个挑战游戏中,我们需要帮助Byte抓住所有4颗宝石并打开4个开关。伊恩一眼就看到了迷宫的法则,4颗宝石,4个开关,均匀分布在迷宫的4个边上。宝石和开关在每一侧都位于相同的位置。因此,我们只需要定义一个函数来解决一侧的gems和switch,然后调用它四次就可以完成这个编程挑战。让我们给这个函数起个名字,我们称它为resolveRow()。看,我们刚刚成功完成了这个编程挑战。与使用命令来实现我们需要的27条命令相比,使用函数的方式是不是简单多了?上面的编程挑战不是Playground中的函数。小节中的第一个编程挑战,但是我们在这个挑战游戏中使用的方法与程序员在日常工作中解决问题常用的思路非常相似:首先明确任务的目标:抓住所有的宝石,打开所有的开关来分析问题,通过尽可能识别模式,把大问题分解成小问题:这里的小问题是一边解决宝石和开关。为每个单独的小问题找到解决方案:通过定义函数resolveRow()来处理一侧的宝石和开关。通过组合这些小问题的解决方案来解决整个任务中包含的大问题:通过调用resolveRow()函数4次来完成挑战。Tips:这种解题思路和方法不仅广泛应用于编程,而且几乎适用于所有学科和领域。孩子在学习编程的过程中,实际上是在学习如何识别问题、分解问题和解决问题,这对培养他们独立解决问题的能力很有帮助。函数,通过定义函数,我们使用一个名称来指代一组命令中包含的行为。并在需要时,通过调用函数名告诉计算机执行这组命令。此外,我们还学习了如何分解大问题,通过定义和调用函数来解决问题。这个方法会一直贯穿我们以后的编程实践。在下一节中,我们将了解编程中一个重要的控制逻辑,即For循环。练习请完成Playground函数部分中的其他编程挑战,其中包括:定义一个新函数;向函数添加命令以创建新行为;函数之间的嵌套调用;通过函数等解决复杂问题等等。完成这些练习后,你将对函数的使用有更深入的理解,这也将成为你日后构建更强大的应用程序的基础。【本文为专栏作家“陈义和”原创文章。如需转载请联系作者本人(微信♂:techmask】点此查看作者更多好文