孩子参加信奥赛 NOIP,使用C语言,那学 Scratch 还有用吗?

网友投稿 2018-09-05 22:32

NOIP 一半是编程,一半是数学。 编程部分基本不涉及到语言的特性,也就是说用 C 写和用 Python 还是用 Scratch 来写,核心的算法思路是一样的。数学部分,是和编程无关的,例如鸡兔同笼问题,本身就是一个数学问题,如果数学上找不到解法,只会编程的话,不会有实质性的提升。

这类问题基本就是先得有数学解法(算法),再把算法转写成程序代码。

例如,这里我们演示三个关于鸡兔同笼的算法:

第一种是最常见的,一个一个试(穷举法)。在程序中写出来是这样的:

https://cdn.china-scratch.com/timg/180907/2232395B6-0.jpg

感觉略显复杂。第二种方法是稍微聪明一点的办法,解方程的做法。对应的算法是这样的:

https://cdn.china-scratch.com/timg/180907/22323955Z-1.jpg相比上面的代码,这个算法要简单多了。但是想要理解这个算法,首先得先在草稿纸上解方程。

而最后一种算法是一个有趣可爱的算法,它是这样说的:

https://cdn.china-scratch.com/timg/180907/22323925P-2.jpg

发现了吗?不同的思路,写出来的程序完全是不一样的。而核心是有没有数学算法,而在编程中,它们所需要使用的代码类型是差不多的。

而以上三个算法都是用 Scratch 写的,而不是 C 语言。因为核心不是编程问题,而是数学算法问题。

C 语言更接近计算机硬件,编程语法中有很多莫名其妙的操作学习起来十分困难。 但它的优点恰好也是它特别接近硬件,对内存的申请和释放都得开发者自己来写,程序的执行效率能特别的高。 Scratch 中包含了几乎所有编程语言共通的部分,并且SCRATCH的编程逻辑是通过搭积木的方式实现的。

https://cdn.china-scratch.com/timg/180907/2232395V7-3.jpg

scratch是以图形化编程为主的高级语言,目的是用编程实现自己的想法,不用担心程序执行效率不高,也不用考虑用户的使用场景和平台。非常适合青少年学习编程规则,理解编程思维。

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com