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

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

2020-01-13 09:46:29
電腦報(bào) 2020年46期

我們之前曾經(jīng)用Scratch編寫過(guò)一個(gè)計(jì)算器,但是那個(gè)計(jì)算器數(shù)字顯示使用Scratch的變量顯示過(guò)于簡(jiǎn)陋,這次我們使用新的思路制作一個(gè)顯示效果優(yōu)秀、加減乘除、有小數(shù)點(diǎn)、連續(xù)運(yùn)算等功能的升級(jí)版計(jì)算器。由于我們之前已經(jīng)介紹過(guò)一種計(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)整好角色的大小(圖1)。

二、 按鍵定位和輸入

對(duì)舞臺(tái)背景編程。我們需要通過(guò)偵測(cè)鼠標(biāo)的位置來(lái)確定用戶點(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)按下)來(lái)表示當(dāng)前的輸入狀態(tài),當(dāng)值為1時(shí)表示有輸入,為0時(shí)表示目前沒(méi)有輸入(圖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)用退格積木。通過(guò)觀察,我們還可以把功能相同的按鍵歸為一組。比如說(shuō)數(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ù)值用來(lái)控制角色造型的變換,改變數(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ù)值的存入、取出和分解

通過(guò)對(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就是用來(lái)記錄小數(shù)點(diǎn)的位置,遇到小數(shù)點(diǎn)時(shí)i歸零,之后i記錄的數(shù)字就是小數(shù)點(diǎn)后的數(shù)位了,當(dāng)i=j時(shí)表示沒(méi)有小數(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)見(jiàn)33版 掃碼下載后自行研究,注意看程序是如何處理運(yùn)算符和等號(hào)的,以及如何處理小數(shù)點(diǎn)問(wèn)題和運(yùn)算結(jié)果超出顯示屏寬度的問(wèn)題,非常值得學(xué)習(xí)借鑒。(本程序源代碼參考自冉爸學(xué)堂特此感謝!)

主站蜘蛛池模板: www精品久久| 手机在线国产精品| 在线播放国产99re| 亚欧美国产综合| 秘书高跟黑色丝袜国产91在线| 国产免费福利网站| 精品久久久无码专区中文字幕| 91在线视频福利| 成年人午夜免费视频| 999国内精品久久免费视频| 91精品国产自产在线老师啪l| 午夜啪啪福利| 国产男女XX00免费观看| 99精品免费欧美成人小视频| 国产精品9| 国产一区在线观看无码| 亚洲六月丁香六月婷婷蜜芽| 无码中文字幕乱码免费2| 自拍偷拍欧美| 欧美成人区| 午夜啪啪网| 99在线视频网站| 91久久天天躁狠狠躁夜夜| 久久精品国产电影| 国产亚洲美日韩AV中文字幕无码成人| 亚洲综合经典在线一区二区| 欧美另类精品一区二区三区| 亚洲综合色婷婷| 国产精品免费福利久久播放 | 69国产精品视频免费| www.99精品视频在线播放| 一区二区三区四区日韩| 国产情侣一区二区三区| 国模粉嫩小泬视频在线观看| 欧美一级在线播放| 露脸一二三区国语对白| 日韩毛片在线视频| 久久人妻xunleige无码| 91美女视频在线观看| www.亚洲天堂| 幺女国产一级毛片| 久久伊人操| 2021国产精品自产拍在线观看 | 最新国产你懂的在线网址| 青青草原国产av福利网站| AⅤ色综合久久天堂AV色综合| 午夜三级在线| 热九九精品| 成人久久精品一区二区三区| 久久青草视频| jizz在线免费播放| 九九久久精品免费观看| 欧美日本激情| 色男人的天堂久久综合| 精品一区二区三区水蜜桃| 亚洲午夜福利在线| 91久久精品国产| 亚洲综合专区| 国产真实乱子伦精品视手机观看 | 欧美午夜小视频| 亚洲人在线| 亚洲一区无码在线| 久久天天躁狠狠躁夜夜躁| 激情六月丁香婷婷四房播| 青青操视频在线| 亚洲浓毛av| 久久www视频| 久久久噜噜噜| 黄片一区二区三区| 日韩精品少妇无码受不了| 国产精品无码影视久久久久久久| 国产熟睡乱子伦视频网站| 国产精品亚洲天堂| 999国产精品永久免费视频精品久久| 色婷婷久久| 国外欧美一区另类中文字幕| 伊人天堂网| 亚洲综合网在线观看| 亚洲男女在线| 四虎永久在线视频| 亚洲国产午夜精华无码福利| 九色在线观看视频|