999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Scratch做個計算器

2020-06-30 01:00:03
電腦報 2020年21期
關鍵詞:符號程序

計算器大家都用過,今天我們用Scratch編寫一個計算器程序。它可以計算兩個數之間的加減乘除運算,還有清除鍵C。點擊所有按鈕有音效,當輸入錯誤時還有錯誤音效提示(如圖1)。

1. 素材準備

為了方便,數字按鈕0~9和清除鍵C我們使用Scratch內置的數字和字母角色。運算符號是在Scratch里手工繪制的。這個程序只完成了計算器的最基本功能,沒有考慮美化工作,為了美觀可以導入更好看的按鈕角色。

2. 算法分析及設置變量

程序中需要的變量是根據算法需求來設置的。我們在編寫程序前需要分析算法,同時確定必要的變量,在程序編寫過程中如果發現需要添加臨時變量時再臨時添加。

我們從1+2=3這個基礎算式開始分析,這個算式中除了等號外的每個塊實際計算時都可能發生變化,所以都需要一個單獨變量存儲,這就確定了主要變量有:“X、Y、運算符、答”。(如圖2)。

3. 觀察程序運行圖(如圖1),運算過程和結果的顯示是通過大字顯示的變量實現的,需要一個“顯示信息”變量,作為計算器的顯示屏。這個變量需要勾選顯示,并在舞臺中右鍵設置為大字顯示(如圖3)。

4. 分析正常運算時的操作步驟,先輸入前數X,再輸入運算符,接著輸入后數Y,點等號計算結果。

那么怎樣判斷輸入的數字是需要存入前數X還是后數Y呢,這就需要一個記錄是否已經輸入運算符的變量“判斷前后數字”,變量在程序開始時為0,當點擊某個“運算符號”角色時,將這個變量設為1。之后輸入的任意數字就存入Y直到點擊“等于”角色(如圖4)。

5. 在測試程序時我發現有個Bug。當點擊“等于”計算出結果后,再點擊數字會在結果后繼續輸入數字。

為了解決這個問題,我額外添加了一個變量,用來判斷是否已經點過“等號”了。這個變量是“等待清除指示”,初始化時設為0,點擊“等號”后設為1。然后除了復位鍵C和等號外的所有角色再添加一層判斷,如果“等待清除指示=0”那么開始正常執行,否則意味著已經有計算結果無需執行并播放報錯音。

6. 程序初始化和復位鍵C

在程序開始時需要對這些變量賦值。

無論前數X、后數Y還是答案初始值都不能是0,因為輸入的數字和結果可能就是0。為了給程序判定這些值處于初始狀態,我們給它們一個英文作為初始值,就用電腦報的簡稱“cpcw”吧,其實任意英文都可以。

“顯示信息”初始時應該什么都不顯示,所以刪除其中的數字設定為“空”。

這些初始值在清除鍵C上編程設置,因為程序開始和計算完按C鍵重置時都需要這樣初始化,所以同樣的語句在點擊綠旗和點擊角色時都需要執行一次(如圖5)。

這里我們為變量賦值為空是一個重要的知識點,請注意體會。

7. 數字角色編程

以數字鍵1為例,為0到9的數字鍵編程。完全編寫好1之后,直接拖動代碼塊到另外的角色上(這個角色會抖動)放開就可以復制代碼到同類角色上了。

點擊數字1時,需要將數字1顯示出來并根據當前情況將數值1賦值給前數X或后數Y。

如果“判斷前后數字=0”成立,說明還沒有輸入過運算符,現在點擊的數字都需要賦值給前數X。在賦值給前數X時,判斷“X=cpcw”是否成立,成立說明X還是第一次賦值,需要先給X賦值為“空”。如果X里已經有數值,需要將1添加到X的末位。并顯示X(如圖6)。

否則賦值給后數Y(如圖7)。

在完成基礎功能后,外層再添加條件判斷“等待清除指示=0”,等于0說明沒有點擊過等號可以執行,否則停止執行并播放錯誤提示音E Elec Bsaa。避免計算出結果后還可以輸入數字的Bug(如圖8)。

提示音需要在聲音中找E Elec Bsaa并添加。拖放操作可以復制給其他需要用到這個錯誤提示音的角色。

由于需要判斷的情況很多,在實際編寫過程中代碼是在完成基礎賦值和顯示功能后不斷完善的,所以后續的情況判斷就一層層包裹在核心功能之外了。看起來結構比較復雜,可以拆開一部分一部分的理解。

將1的代碼塊通過拖放操作復制給其他數字角色,修改圖7中標紅圈的3個位置為相應數字即可。這三處表示賦值給X、Y和顯示信息末位。

8. 運算符角色編程

當點擊運算符號后,把“判斷前后數字”賦值為1,表示已經輸入了運算符號,這樣以后再按數字會把數值賦給后數Y。

根據點擊符號不同,為變量“運算符”賦值“+、-、×、÷”。

以加號為例,運算符號總是在后數Y之前輸入,所以判斷當“Y=cpcw”也就是后數Y還沒有輸入的情況下,修改顯示信息的值為“連接‘顯示信息和‘+”。否則后數已經輸入播放錯誤提示音(如圖9)。

9. 等號編程

點擊等號后,將“等待清除指示”設為1,表示已經執行過運算了,不能再繼續輸入數字了。

判斷如果“答=cpcw”表示,變量“答”處于初始狀態。可以進行后續計算,根據不同的運算符號判斷執行相應的運算過程。否則發出錯誤提示音。

以加法為例,點擊等號后,根據“運算符=+”判定需要進行加法運算,將“答”設為“X+Y”的結果。

將“顯示信息”設為“‘顯示信息和‘=”,把等號加入顯示屏。

將“顯示信息”設為“‘顯示信息和‘答”,把加法計算結果加入顯示屏。

其他運算方式以此類推。

10. 測試和優化

回顧我編寫這個計算器的過程,更多的精力花在了處理各種不按套路輸入引發的各種錯誤,俗稱的找Bug上面了。

我先編寫了數字1和加號和等號加法的部分,很快就實現了1+1=2的基本計算和正常顯示。

然后開始各種胡亂點擊測試異常,并解決測試過程中遇到的Bug。基本改好之后才復制代碼給其他數字和符號,開始下一輪測試。

比如沒有輸入前數X就可以輸入加號或已經輸入后數Y之后還可以繼續點加號,導致計算結果錯誤。解決辦法就是添加“X=cpcw不成立”且“運算符=0”的判斷,表示已經輸入了X且沒有輸入運算符。添加“Y=cpcw”的判斷,表示后數Y還沒有輸入。只有這些條件都成立時,才允許輸入運算符號。

又比如在計算出結果后還可以輸入數字的Bug。解決辦法就是加入了一個新的變量“等待清除指示”記錄是否已經點擊過等號。這個解決辦法引入了新的變量,是不是還可以在不引入新變量的基礎上更巧妙地解決還需要更多的思考。

雖然表面上只是程序中的一條判斷或一個輔助變量,但那背后都是為了解決Bug掉的頭發啊,我禿了也變強了。

鏈接:https://pan.baidu.com/s/

1AoWxsbkb22eP5STc91SYRg

提取碼:p30l

猜你喜歡
符號程序
學符號,比多少
幼兒園(2021年6期)2021-07-28 07:42:14
“+”“-”符號的由來
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
變符號
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
倍圖的全符號點控制數
圖的有效符號邊控制數
主站蜘蛛池模板: 精品视频第一页| 国产va在线| 久久午夜夜伦鲁鲁片无码免费| 国产18在线| 国产精品嫩草影院av| 亚洲天堂首页| 国产精品短篇二区| 亚洲中文字幕久久精品无码一区| 无码 在线 在线| 免费A∨中文乱码专区| 亚洲欧洲日韩综合色天使| 综合五月天网| 亚洲无码91视频| 无码av免费不卡在线观看| 国产欧美日韩18| 99久久人妻精品免费二区| 午夜福利视频一区| 99热亚洲精品6码| 国产精品尤物在线| 国产精品网址你懂的| 日韩小视频网站hq| 婷婷六月天激情| 国产精品欧美在线观看| 亚洲三级色| 国产成人精品在线1区| 九色视频线上播放| 国产精品lululu在线观看| 欧美色综合网站| 为你提供最新久久精品久久综合| 国产精品yjizz视频网一二区| 亚洲人网站| 女人18毛片久久| 免费jizz在线播放| 亚洲国产日韩欧美在线| 中文字幕 91| 国内精品伊人久久久久7777人| 久久亚洲中文字幕精品一区| 欧美日韩成人在线观看| 亚洲国语自产一区第二页| 国产va在线观看| 久无码久无码av无码| 国产亚洲一区二区三区在线| 日韩少妇激情一区二区| 国产人人乐人人爱| 四虎国产在线观看| 精品国产一二三区| 日本伊人色综合网| 日韩高清成人| 午夜无码一区二区三区| 亚洲AV一二三区无码AV蜜桃| 综合色88| 免费毛片全部不收费的| 欧美精品成人| 特级毛片免费视频| 秋霞国产在线| 亚洲欧美日韩中文字幕一区二区三区| 亚洲国产成人精品一二区| 午夜日本永久乱码免费播放片| 日韩精品亚洲人旧成在线| 亚洲日韩欧美在线观看| 波多野结衣无码AV在线| 高潮毛片无遮挡高清视频播放| 久久香蕉国产线看观看亚洲片| 四虎永久在线视频| 久久精品电影| 99久久精品免费视频| 波多野结衣视频一区二区 | 亚洲一级毛片在线观播放| 欧美激情综合| 日韩欧美在线观看| 97国产精品视频人人做人人爱| 91毛片网| 亚洲天堂网在线播放| 亚洲高清日韩heyzo| 青青青视频91在线 | 亚洲一级无毛片无码在线免费视频| 午夜精品国产自在| 2021天堂在线亚洲精品专区| 91精品人妻一区二区| 99久久精品免费看国产免费软件 | 国产新AV天堂| 亚洲成肉网|