用生活中的场景理解程序设计
科技活动
原创
科技学堂/文
阅读:13726
收藏:2

程序是我们解决具体问题所使用的流程和方法的固化。程序一旦上传到Arduino UNO板中,便不会再改变,我们怎么设计程序,程序就会怎么执行。


所以在程序设计之初,理清思路至关重要。

QQ截图20170719173906.png


对于编程的初学者来说,程序设计思路的形成是是编程学习过程中的第一道门槛。程序有(yi)时(ding)是枯燥的,程序的思路与流程设计也往(yi)往(ding)是抽象的,对于初学者来说,熟练的运用抽象的逻辑思维形成清晰且正确的程序算法,着实需要下一番功夫。


那有没有什么简单的办法,降低这种学习的难度呢?


程序解决的问题源于生活,那程序的设计思路也可以回归生活---比如用生活化的场景来类比程序所需解决的问题。


在这里以《Arduino轻松学》入门慕课《第7课:状态提示灯》的作业延时门铃为例,看下如何用生活中的场景来理解程序设计的思路。


课程案例中的门铃功能很简单:

QQ截图20170719180220.png

程序需要检测按键按下与不按下两种不同的状态,并且每种状态蜂鸣器都有唯一的一种状态与之对应,所以程序使用了if/else来处理:

QQ截图20170719180404.png

所以顺着课程案例的思路,不少同学掉到了坑里,依旧使用if/else来进行延时门铃的程序设计,于是就有了接下来的两种程序:

QQ截图20170719174014.png


QQ截图20170719174025.png


而正确的程序应该是这样的:

微信图片_20170719174030.jpg

很多人困惑在于

为什么课程案例蜂鸣器静音是放在“否则”后执行的,而延时门铃使用“否则执行”确是错的呢?


原因在于,课程中的门铃更像是生活中的电路,按键按下电路接通,按键松开,电路中断。

微信图片_20170719174036.gif

课程案例更像是电路


延时门铃,按键按下后,蜂鸣器响3s后,程序会自动切断电路。所以无需检测“按键未按下”这种状态,也就无需使用“否则执行”了。


为了更好的理解前面3种程序执行效果的差异,我们同样借助生活中的场景来理解,比如


收快递


首先将程序模块与收快递的动作一一对应:

微信图片_20170719174040.jpg


然后

QQ截图20170719174054.png

那么正确的程序执行起来是这样的:

QQ截图20170719174105.png

再来看下,另外两个程序的执行效果:

QQ截图20170719174116.png

再来看下另一个程序:

1118.png

我们再一起总结下:

微信图片_20170719174135.jpg
QQ截图20170719174156.png

套用生活化的场景是不是就容易理解了?

投稿邮箱:info@makerclass.cn
标签: Arduinotem
发表评论