本階段課程适合2年級、3年級、4年級及以上剛開始接觸EV3機器人的同學們。
本篇請下載 LEGO Mindstorms教育版軟件 有條件的話,請為孩子添置一套EV3套裝,讓課程内容可以同步練習進行動手實踐。
通過上兩周的課程,我們基本學習了順序、循環兩種流程。簡單回憶一下,順序,其實就是基本的流程;而循環,是一種特殊的“順序”,也就是一段會自動重複的順序,需要設計停止循環的條件。
應該不算難,我們繼續說今天的。這節課比較重要,有點長。
在我們的軟件中,這個流程叫做“切換”。我們這裡統一一下名詞,就叫做“判斷”吧。因為大家以後學習程序語言的時候,這種流程就叫做判斷。

可以這樣理解,我們原來說的順序,是一條筆直的路。而判斷就像是在筆直的路上面形成了一個岔口。
岔口可以是兩個,也可以是多個。

當程序執行到這裡的時候,會根據某些條件,自己選擇一條路繼續前進。
可以說,這是跟“順序”和“循環”不同的一種流程。我們學習EV3可以不用太多的專用名詞,這裡我們盡量用簡單理解的語言來形容各個要點。
是非判斷,就像是我們平時作業裡面的是非題。
二選其一,非黑即白。這種很基本的選擇項,在編程中經常使用。并且條件設定要求低,不容易産生錯誤和實際誤差。

生活中,這種判斷行為無處不在。并且往往能非常好的表達出目的性。
我們來看一個很簡單的思維。
有1/2/3/5/8/13/21,7個門。看到數字1/2/3/5,開門,看到數字8/13/21不開門。那麼我們如果需要跟别人說明一下這個問題,該如何表達呢?
最準确的表達方式,肯定就是把這個題面重新讀一遍給别人。因為每一個具體的數字對應的動作表達的非常清晰。
而什麼叫做是非判斷?即二選其一。我們就可以說:小于8的數字開門;大于等于8的數字不開門。
我們會發現,如果僅僅隻是要表達這個題面,那麼這種表達是很簡單的。
但是!(注意重點)
是非判斷等于是把數據分成了兩個大類。看似達到的目的是相同的,但其實邏輯上是不同的。
因為我們的第二種表達方式,其實是包含了4/7這樣的體面中沒有的數字,而從8開始到無限大的數字也都包含進去了。
為什麼這裡可以選擇這樣來表達?
那是因為題面已經有明确的限制了。我們隻是在這個限制條件下選擇了一種更方便的表達方式,而不是更準确的。
是非判斷往往用在能夠歸類的情況下,或者其本身就是用來進行一種歸類。
這個知識點是初中(有些其他省市的是高中)數學裡面的“集合”部分。我們暫時不拓展了。大家必須要清楚知道這裡面的關系。
可以用,并不等于準确!
選擇判斷,類似于我們在平時學習中碰到的多選題。可以選擇一個,也可以多選。往往選項有很多個。
比如,看到綠燈停,看到紅燈行,看到黃燈加快行駛。
那麼我們的程序就可以這樣來編寫。

紅、黃、綠是三種準确的數據信息,他們各對應了一個“動作”。我們可以用選擇判斷,來把這個程序寫清楚。
從理論上來說,很簡單,
但是!
(我又來了)
我們要考慮到現實生活中的情況,EV3機器人不是單純的理論學習,我們必須要學會把問題盡可能的分析透徹。
我們會發現,現實中,我們碰到的顔色豈止這三種!那麼問題來了,當看到其他顔色的時候,我們該怎麼辦呢?這個時候,我們就會發現,程序中其實是有Bug(漏洞)的。
機器人不會自己去分析哪個指令是錯誤的。所以,當我們的程序有錯誤産生的時候,它就會一直沿着一條錯誤的路徑走下去。我們要幫助它把問題“想完全”。
這裡的Bug其實就是除這三種顔色之外的顔色,應該對應一個什麼動作?
真實的情況是,如果我們不去設定這些動作,當機器人看不到這三種顔色的時候,仍然會繼續前進。因為這個時候它的思路是“前方沒有發現這三種顔色,保持上一個模塊的運行狀态”。
有沒有發現,這個思路跟我們想要表達的其實是不一樣的。
我們希望表達的是,看到這三種顔色,做對應動作,除此之外保持原狀态。
所以這個程序正确的寫法,是要把其他顔色的問題也考慮進去的。還是那句話,雖然很多程序可以編的很簡單,不過我們還是要先學會複雜的,再學會怎麼簡化操作。
這兩種流程我們日常使用的時候經常是混在一塊用的。
是非判斷,可以幫助我們進行某些數據歸類。
選擇判斷,可以準确的定義數據的作用。
我們還是就上一段的紅綠燈問題來看。
其實我們的思路可以是:
首先,把3種顔色,和其他顔色進行一個歸類。看到這三種顔色,和沒看到這三種顔色的兩種情況先分離開來。
然後,再把三種顔色對應的動作定義出來。
這樣,這個程序結構,其實就非常清楚了。如下

我們要學會歸類,同時要學會選擇定義。
就像,每天都要做作業,語數外都是作業,都要完成,其實沒什麼好選擇的,這就是一類。
但是,可能我今天語數作業少一些,外語作業多一些。那麼先做語數,然後做外語,這樣每當完成一項的時候,還能獲得一些成就感,給自己打打氣,更多一些動力。
反之呢?先做了外語,一看,11點了……還有數學和語文……我的天,自己都沒信心了。
是不是?我們既然多學了機器人編程這門小技術,那麼不妨運用在生活中。這樣學東西,提高的才叫綜合能力嘛~
重點總結
了解程序的三大流程,理解判斷流程
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!