亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Scratch制作升級(jí)版計(jì)算器

        2020-01-13 09:46:29
        電腦報(bào) 2020年46期
        關(guān)鍵詞:運(yùn)算符鍵值計(jì)算器

        我們之前曾經(jīng)用Scratch編寫過一個(gè)計(jì)算器,但是那個(gè)計(jì)算器數(shù)字顯示使用Scratch的變量顯示過于簡(jiǎn)陋,這次我們使用新的思路制作一個(gè)顯示效果優(yōu)秀、加減乘除、有小數(shù)點(diǎn)、連續(xù)運(yùn)算等功能的升級(jí)版計(jì)算器。由于我們之前已經(jīng)介紹過一種計(jì)算器程序,本文中僅對(duì)升級(jí)版重難點(diǎn)和不同之處做介紹,其他部分可以掃碼下載源代碼自行研究。

        一、界面準(zhǔn)備

        首先用圖片編輯軟件對(duì)一張手機(jī)計(jì)算器截圖進(jìn)行修改,保留需要的功能按鈕,保存圖片高度為360像素,導(dǎo)入作為舞臺(tái)背景。

        自行繪制白色的數(shù)字角色,這個(gè)角色中包含11個(gè)造型,依次是1到9、0、小數(shù)點(diǎn)和負(fù)號(hào),并修改這些造型的命名。根據(jù)顯示效果調(diào)整好角色的大?。▓D1)。

        二、 按鍵定位和輸入

        對(duì)舞臺(tái)背景編程。我們需要通過偵測(cè)鼠標(biāo)的位置來確定用戶點(diǎn)擊了哪里,并利用“二維數(shù)組”為按鈕定位,首先根據(jù)按鈕將界面分為5行4列,比如數(shù)字5就在3行2列、數(shù)字9在4行3列。測(cè)量每個(gè)行列X、Y坐標(biāo)的范圍(如圖1),重復(fù)監(jiān)測(cè)鼠標(biāo)的XY坐標(biāo),并據(jù)此修改變量“計(jì)算機(jī)-行”和“計(jì)算機(jī)-列”的值(圖2)。

        再將鼠標(biāo)位置的行列位置轉(zhuǎn)換對(duì)應(yīng)的變量“鍵值”,就可以讓程序知道用戶點(diǎn)擊了計(jì)算器的哪個(gè)按鍵了。比如當(dāng)“計(jì)算器-行=2,計(jì)算器-列=4”時(shí),變量鍵值設(shè)為‘+(含單引號(hào)),表示點(diǎn)擊了加號(hào),用單引號(hào)是將數(shù)字鍵和其他功能鍵區(qū)別開。用“if參數(shù)1”(監(jiān)控坐標(biāo))、“if參數(shù)2”(監(jiān)控行列)、“if參數(shù)3”(鼠標(biāo)按下)來表示當(dāng)前的輸入狀態(tài),當(dāng)值為1時(shí)表示有輸入,為0時(shí)表示目前沒有輸入(圖3)。

        當(dāng)偵測(cè)到鼠標(biāo)點(diǎn)擊的動(dòng)作時(shí),表示輸入了數(shù)字或運(yùn)算符,根據(jù)此時(shí)的鍵值判讀執(zhí)行相應(yīng)的自定義積木(函數(shù))。比如當(dāng)鍵值=‘退格時(shí)調(diào)用退格積木。通過觀察,我們還可以把功能相同的按鍵歸為一組。比如說數(shù)字鍵0~9為一組,當(dāng)按下數(shù)字鍵時(shí),判斷“鍵值>-1”,調(diào)用“數(shù)字鍵”;運(yùn)算符加減乘除為一組,“if參數(shù)3=0”調(diào)用相應(yīng)積木進(jìn)入后續(xù)的判斷。

        比如收到小數(shù)點(diǎn)的鍵值,就執(zhí)行小數(shù)點(diǎn)的積木(函數(shù))(圖4)。

        為了實(shí)現(xiàn)連加操作(不按清除就在結(jié)果上繼續(xù)運(yùn)算),加減乘除和等號(hào)的操作幾乎一樣,不同在于加減乘除時(shí)要先清空一次列表,判斷運(yùn)算符不是等號(hào),完成時(shí)清空運(yùn)算符變量(圖5)。

        三、 數(shù)字顯示

        對(duì)數(shù)字角色編程。輸入的數(shù)字和計(jì)算結(jié)果依次保存在列表“字符串”中,為了在計(jì)算器的液晶屏中顯示出多個(gè)漂亮的數(shù)字,從列表中依次提取數(shù)值用來控制角色造型的變換,改變數(shù)字角色的造型后再克隆,并用計(jì)算公式根據(jù)數(shù)字的位數(shù)調(diào)整克隆體的放置位置。(圖6)。

        在計(jì)算器的顯示屏上每個(gè)字符寬20,顯示屏上最多可以容納12個(gè)。用計(jì)算公式調(diào)整每個(gè)克隆體的位置。當(dāng)接收到清除命令——清除數(shù)字=Yes時(shí)就可刪除克隆體表現(xiàn)出清屏的效果(圖7)。

        四、 數(shù)值的存入、取出和分解

        通過對(duì)“字符串”列表的操作完成數(shù)字的這些操作。當(dāng)點(diǎn)擊鼠標(biāo)時(shí),首先進(jìn)行狀態(tài)判斷,如果條件符合就將“鍵值”加入“字符串”列表,這里使用“字符串”列表存儲(chǔ)輸入的數(shù)值,每個(gè)位單獨(dú)存放。當(dāng)需要參與運(yùn)算時(shí),要把列表中臨時(shí)存放的各位數(shù)轉(zhuǎn)換回可計(jì)算的數(shù)字。運(yùn)算符之前輸入的數(shù)字依次賦值給操作數(shù)1,運(yùn)算符之后的數(shù)字賦值給操作數(shù)2,然后根據(jù)運(yùn)算符進(jìn)行運(yùn)算即可。注意每次更新字符串列表后需要把變量“清除數(shù)字=Yes”和“廣播顯示字符串”配合使用,清屏后顯示新的數(shù)字(圖8、圖9)。

        當(dāng)需要從列表中取出數(shù)值用于計(jì)算時(shí),依次取出第1項(xiàng)(最高位)后乘10加上第2項(xiàng)(次高位),直到全部取出存入變量操作數(shù)。遇到小數(shù)點(diǎn)時(shí)需要做一個(gè)很精巧的特別處理,變量i就是用來記錄小數(shù)點(diǎn)的位置,遇到小數(shù)點(diǎn)時(shí)i歸零,之后i記錄的數(shù)字就是小數(shù)點(diǎn)后的數(shù)位了,當(dāng)i=j時(shí)表示沒有小數(shù)點(diǎn),當(dāng)不相等時(shí)根據(jù)i的數(shù)值將操作數(shù)除以10的i次方即可得到含小數(shù)點(diǎn)的正確數(shù)值了(圖10)。

        五、 運(yùn)算

        運(yùn)算部分比較簡(jiǎn)單,直接根據(jù)運(yùn)算符對(duì)輸入的變量“操作數(shù)1”和“操作數(shù)2”計(jì)算即可。其中“運(yùn)算符2”設(shè)為鍵值的第二個(gè)字符是因?yàn)檫\(yùn)算符第一個(gè)字符是單引號(hào)(圖11)。

        當(dāng)計(jì)算位數(shù)結(jié)果超出11位時(shí)或在已有運(yùn)算符的情況下輸入新的運(yùn)算符時(shí),需要刷新列表或截取有效部分重新顯示。這里使用自定義積木“分解顯示的數(shù)字”完成這些需求(圖12)。

        以上就是升級(jí)版計(jì)算器的重難點(diǎn),受篇幅所限其他功能的實(shí)現(xiàn)請(qǐng)見33版 掃碼下載后自行研究,注意看程序是如何處理運(yùn)算符和等號(hào)的,以及如何處理小數(shù)點(diǎn)問題和運(yùn)算結(jié)果超出顯示屏寬度的問題,非常值得學(xué)習(xí)借鑒。(本程序源代碼參考自冉爸學(xué)堂特此感謝!)

        猜你喜歡
        運(yùn)算符鍵值計(jì)算器
        老祖?zhèn)魇诨具\(yùn)算符
        非請(qǐng)勿進(jìn) 為注冊(cè)表的重要鍵值上把“鎖”
        [計(jì)算器不是萬能的]
        一鍵直達(dá) Windows 10注冊(cè)表編輯高招
        電腦愛好者(2017年9期)2017-06-01 21:38:08
        一個(gè)損壞的計(jì)算器
        讀寫算(中)(2015年10期)2015-11-07 07:24:10
        一個(gè)損壞的計(jì)算器
        計(jì)算器游戲
        C++運(yùn)算符重載剖析
        表達(dá)式求值及符號(hào)推導(dǎo)
        C++中運(yùn)算符的重載應(yīng)用
        久久精品国产色蜜蜜麻豆国语版 | 久久人人爽爽爽人久久久| 精品无码中文字幕在线| 男人j进女人p免费视频| 国产偷拍盗摄一区二区| 国产亚洲人成在线观看| 日韩人妻无码精品久久久不卡| 91久久精品国产91久久| 亚洲av永久久无久之码精| 男男亚洲av无一区二区三区久久| 久久久久av无码免费网| 亚洲美腿丝袜综合一区| 日本一级淫片免费啪啪| 亚洲高清中文字幕视频| 国产免费人成视频在线观看| 中文字幕国产91| 四虎在线中文字幕一区| 成年丰满熟妇午夜免费视频 | 国产亚洲精品美女久久久m| 国产99久久亚洲综合精品| 国产品精品久久久久中文| 成人国产高清av一区二区三区| 日本一区二区三区免费播放| 中文字幕无线码中文字幕| 美女被射视频在线观看91| 虎白m粉嫩小在线播放| 十八18禁国产精品www| 久久av高潮av喷水av无码 | 又大又粗又爽18禁免费看| 国产a级午夜毛片| 精品黄色一区二区三区| 99国产精品99久久久久久| 国产内射在线激情一区| 高潮社区51视频在线观看| 蜜桃av人妻精品一区二区三区| 国产成人精品无码一区二区老年人 | 人妻精品久久久一区二区| 国产三级a三级三级| 天堂sv在线最新版在线| 国产一区,二区,三区免费视频 | 婷婷色香五月综合缴缴情|