S0A3 用表格區(qū)將10進(jìn)位轉(zhuǎn)換為d進(jìn)位
A: 世界上有 「10」種人,一種是懂二進(jìn)制,另一種是不懂二進(jìn)制。
B: 不就兩種, 哪來的 10 種人?
A:你是不懂二進(jìn)制的那種。
進(jìn)位轉(zhuǎn)換是編程中很重要的概念,也是程式初期常練習(xí)的問題。這個進(jìn)位轉(zhuǎn)換其實通過迭代就可達(dá)成這效果。要實踐這個迭代的過程可以利用 Geogebra 的表格區(qū)來實現(xiàn)。同時還可設(shè)定一個滑動條來切換不同進(jìn)位的結(jié)果。

在這一講我們將分兩部分來介紹。第一部分,就是利用表格區(qū),來實踐這個迭代轉(zhuǎn)換。第二部分,就是將表格區(qū)轉(zhuǎn)換的結(jié)果顯示在繪圖區(qū)。
任務(wù)1:?利用表格區(qū)做進(jìn)位轉(zhuǎn)換(挑戰(zhàn)★)
【說明】這階段的任務(wù)是實踐d進(jìn)位的轉(zhuǎn)換用表格區(qū)來呈現(xiàn),其轉(zhuǎn)換的步驟如下圖所示。
以n=53轉(zhuǎn)換為二進(jìn)制(d=2)為例,如左邊第一列所示,個位是53除以2的余數(shù),再把53除以2的商也就是26除以2得到的余數(shù)0即對應(yīng)的十位,依次類推,可得到53轉(zhuǎn)換為二進(jìn)制的每位數(shù)值(由低位到高位),再倒序排列得到轉(zhuǎn)換的結(jié)果:1101011,轉(zhuǎn)換的結(jié)果可以通過表格區(qū)的B、C、D三列來解讀。

【操作】
#利用[滑動條]設(shè)置一個數(shù)為n:最小值為1,最大值為2000,增量為1,長度可設(shè)置為150
n=slider(1,2000,1,1,150)?
# 滑動條(最小值,最大值,增量,速度,寬度) ? ? # slider ?:滑動條

#利用[滑動條]設(shè)置進(jìn)制為d:最小值為2,最大值為10,增量為1,長度可設(shè)置為150
d=slider(2,10,1,1,150)?
# 滑動條(最小值,最大值,增量,速度,寬度) ? ? # slider :滑動條
#根據(jù)二進(jìn)制先做除法后取余數(shù)的原則,令n=123,123/2取整為61,余數(shù)為1
A1=floor(n/d)??????
B1=mod(n,d)????????# mod:余式????#? mod(n,d)?:mod(被除數(shù),除數(shù))
#在A2、B2輸入如下,再利用表格復(fù)制,就可得到對應(yīng)的進(jìn)位轉(zhuǎn)換
A2=floor(A1/d) ??
B2=mod(A1,d)

#為了更好的體現(xiàn)數(shù)與進(jìn)位之間的關(guān)系,在C2列對應(yīng)輸入公式,再利用表格復(fù)制
C1=1
C2=C1*d
#為了驗算,以123為例,123=1*64+1*32+1*16+1*8+0*4+1*2+1*1
#?首先在D1列輸入公式:
D1=B1*D1
#接著在D列創(chuàng)建列表命名為:Ds 最后求和:
AnsD=sum(Ds) ? ?# sum :總和 (列表)
tips:可以先輸入Ds,再輸入sum,避免出現(xiàn)求和符號,當(dāng)然也可以輸入中文:總和


任務(wù)2:利用動態(tài)文本顯示進(jìn)位(挑戰(zhàn)★)
【說明】為了在繪圖區(qū)更直觀的顯示進(jìn)位,分別利用[滑動條]、[輸入框]、[文本]工具,其中的文本 :110101是將B列的結(jié)果以10進(jìn)位來顯示

【操作】
2.1 為了讓n可以直接輸入,需要利用[輸入框]工具?,同時關(guān)聯(lián)到n,細(xì)節(jié)操作如下:


2.2? ?在繪圖區(qū)顯示[滑動條]d? ? ??
2.3??為了將d進(jìn)位的結(jié)果以AnsF來記錄,操作如下
E1=1
E2=E1*10??
#再利用表格把E2復(fù)制到E10
F1=B1*E1 ??
#復(fù)制,創(chuàng)建列表,再加總,同D列的操作一樣,列表命名為:Fs
AnsF=sum(Fs)? ? ??
# sum :總和?(列表)
2.4? ?利用動態(tài)文本顯示:d進(jìn)位:AnsF ??

思考:如果是10進(jìn)制轉(zhuǎn)為16進(jìn)制又該如何轉(zhuǎn)換呢?
對于10以上的進(jìn)位請大家繼續(xù)關(guān)注后期的進(jìn)階課程
參考資料:
Geogebra 檔案:https://www.geogebra.org/classic/qqyj2tds
bili 教學(xué)視頻:?https://www.bilibili.com/video/BV1rk4y127E5
youtube 教學(xué)視頻:https://www.youtube.com/playlist?list=PLXH05kw-i_5IjxJRIAwu-CiMzmls26eZV
限時挑戰(zhàn):
歡迎加微信 Acchu0331 入群打卡學(xué)習(xí),每次任務(wù)有 20?元獎勵紅包。此次任務(wù)小打卡中獲得最多贊可得 8元人氣獎,另抽一位打卡者獲得手氣獎 8元?。另外,還有 4 個?總額 4元的隨機(jī)紅包為關(guān)注獎。??本次任務(wù)的打卡期限為 2020/8/29(周六) 23:59。請參考視頻,交一份作業(yè)在小打卡內(nèi),附上作品截圖或動圖,并寫下 32 字以上的心得,如以下格式。
主題:用表格區(qū)將10進(jìn)位轉(zhuǎn)換為d進(jìn)位
姓名:楊華 ?(2020 /8/27 17:00)
鏈接:https://www.geogebra.org/classic/xvm2tkc8
心得:利用表格將10進(jìn)制轉(zhuǎn)換為d進(jìn)位,通過取整、余式、創(chuàng)建列表、總和等指令可以快速實現(xiàn)轉(zhuǎn)換,同時利用滑動條、輸入框、文本來達(dá)到動態(tài)顯示進(jìn)位的效果
截圖:
