46-逆序输出-青少年编程Scratch四级准备

Scratch 少儿编程 1508浏览 0评论
少儿编程Scratch01

友情提示:视频教程观看时请手动设置清晰度。

 

46-逆序输出-青少年编程Scratch四级准备
46-逆序输出-青少年编程Scratch四级准备

数字逆序输出

Scratch

C

四级

★★★★

逆序输出 · 目标

    对一个数字或字符串进行逆序输出,是编程中非常常见问题。在C中,在Python如此,在Scratch中也如此。

   目标:产生或录入一个几位的数字,例如12345,要求输出为54321。

   看起来,这很简单。对于初步接触“数学”编程的人来说,还是要花点功夫的。实现的方法也有很多,不同的人做出来的结果肯能是完全不同的。这里,我们探讨了几种方法,例如把数字当做字符串处理,使用循环,也可以使用数学算算式。同时这里还列出了一种C语言的方法(下一篇)。我们能够看到C和Scratch的不同特点。上一篇我们学习了简单的数列加总,和逆序输出相同,都属于编程中的“数学”问题。在考试中,数学问题估计能占一半。

逆序输出 · 面向读者

    根据实现方法的难易程度,适用于2-6年级学生,预计用时字20分钟到90分钟。

逆序输出 · 用时

    本文第一种方法,很简单明了,把数字当成字符串处理,是小孩独自完成的。用时在30分钟以内。

    第二种方法,是经过指导,使用了循环,预计用时40分钟。

    第三种方法:需要使用到数学运算,当做数字来处理,用时需要根据小孩的理解能力来确定,预计要用60分钟。(下一篇)

    第四种方法:就是第三种方法的C语言版本,视学生基础,要准备好1个小时。虽然代码只有几行,有些大人也可能看不懂。(下一篇)

方法一· 字符串取值

    和C/Python不同,Scratch的变量定义是不分类型的。定义变量时并不能指定为整数、浮点数或者字符。因此我们将用户录入或产生的数字,直接当做字符串处理,取出第几位,然后拼接起来即可。对于数字的处理,一般都不会太长,例如规定是4位数,或者2-5位数字。因此,甚至都可以不用循环。不使用循环、递归的操作对小孩来说是最容易理解的。

1 · 效果

46-逆序输出-青少年编程Scratch四级准备

系统自动产生一个数字,然后逆序输出。

设置角色和背景

46-逆序输出-青少年编程Scratch四级准备

    小孩对背景、角色设置已经“炉火纯青”了,很快就能搭出一个场景出来。时间都花在图片上了,虽然我认为这没有多少意义。学会了在百度上搜索各种美图,然后直接用角色当做背景。每个程序都是颜色亮丽丰富的。题目要求使用白色背景,保留小猫咪角儿,因为是练习,所以基本上都会加上一些“颜色”。

3 · 定义变量

46-逆序输出-青少年编程Scratch四级准备

这里只使用了两个变量,原来的随机数和逆序处理后的数字。

4 · 2/3/4位数字的逆序处理

46-逆序输出-青少年编程Scratch四级准备

    一上来就产生随机数,连变量初始化都没做,这可不大好。

直接判断数字的位数,产生的随机数是数字,但完全可以当字符串处理。因此这里直接取出了字符数。如果等于2,只要先取出第二个字符,然后取出第一个字符,然后连接起来。字符串连接的方法,小孩已经掌握了。

46-逆序输出-青少年编程Scratch四级准备

    如果这个数字是三个字符,那就依次取3,2,1的字符,并且连接,一行就搞定了。

46-逆序输出-青少年编程Scratch四级准备

    如果这个数字是四个字符,那就依次取4,3,2,1的字符,并且连接,一行就搞定了,虽然这个连接很长很长。

其实到这里,已经可以发现规律了,处理方法相同,完全可以使用循环。当然题目规定了2-4位数,因此直接使用判断也能实现出来。

46-逆序输出-青少年编程Scratch四级准备

    说出原数字。

46-逆序输出-青少年编程Scratch四级准备

    说出逆序数字。

总结

    这种方法似乎比较“笨”,但应该是最容易理解的一种方法。没有使用循环,没有使用数学算式。只要会获取某一位的数字,然后使用连接,就能逆序输出。在Scratch四级考试中,这种方法得个80分以上应该是没问题的。

那么问题来了,如果来个1-10位的数字,那这种方法显然是不合适的。

方法二· 字符串+循环

    这种方法和第一种方法类似,只是加上了循环,因此其实可以处理任意位数的逆序输出,程序也变得简单明了了。但理解上,这种方法回会比第一种方法要难一些。这算式正规的一种方法了,在Scratch四级考试中,应该能得90分以上。

1 · 效果

46-逆序输出-青少年编程Scratch四级准备

    系统自动产生一个数字,然后逆序输出,这是一个8位数,这得使用循环了。

2 · 任意位数字的逆序处理

46-逆序输出-青少年编程Scratch四级准备

    可以产生一个很大的随机数。然后把这个数字的位数保存在一个变量中。这个变量将用于循环处理中,有几个字符,我们就需要输出计几次。因为我们要倒着输出,所以从最后一位开始处理。

46-逆序输出-青少年编程Scratch四级准备

    开始的时候计数器指针放在最后一位,取出计数器所在位置的字符,然后和结果连接起来。

    第一次取出最后一个数字,第二次取出倒数第二个数字,以此类推。

每做完一个循环,就将计数器减少1。

总结

    这种方法就比较正规了,还是把数字当做字符串处理,直接从最后一位取值,有几位就重复做几次。

微信号:ABO_CRM

2020.08.01 周六

北京

后续…

    篇幅已经不少,使用数学算式和C语言的版本,就放在后面一篇文章吧。

    自家广告:指导着指导着自己的小孩学习scratch编程,结果我自己写了一本书。本人的Scratch专著《零基础学Scratch 3.0少儿编程》预计将在2020年出版。到时,欢迎购买。如果需要青少年编程和机器人的私教培训陪练,请留言。

转自公众号:
艾博特

您必须 登录 才能发表评论!