A: 世界上有 「10」種人,一種是懂二進位,另一種是不懂二進位。
B: 不就兩種, 哪來的 10 種人?
A:你是不懂二進位的那種。
進位轉換是編程中很重要的概念,也是程式初期常練習的問題。這個進位轉換其實通過迭代就可達成這效果。要實踐這個迭代的過程可以利用 Geogebra 的表格區來實現。同時還可設定一個滑動條來切換不同進位的結果。
在這一講我們將分兩部分來介紹。第一部分,就是利用表格區,來實踐這個迭代轉換。第二部分,就是將表格區轉換的結果顯示在繪圖區。
任務1: 利用表格區做進位轉換(挑戰★)
【說明】這階段的任務是實踐d進位的轉換用表格區來呈現,其轉換的步驟如下圖所示。
以n=53轉換為二進位(d=2)為例,如左邊第一列所示,個位是53除以2的餘數,再把53除以2的商也就是26除以2得到的餘數0即對應的十位,依次類推,可得到53轉換為二進位的每位數值(由低位到高位),再倒序排列得到轉換的結果:1101011,轉換的結果可以通過表格區的B、C、D三列來解讀。
【操作】
d=slider(2,10,1,1,150) A1=floor(n/d) B1=mod(n,d) A2=floor(A1/d) B2=mod(A1,d)
C1=1C2=C1*dD1=B1*D1AnsD=sum(Ds)
tips:可以先輸入Ds,再輸入sum,避免出現求和符號,當然也可以輸入中文:總和
任務2:利用動態文本顯示進位(挑戰★)
【說明】為了在繪圖區更直觀的顯示進位,分別利用[滑動條]、[輸入框]、[文本]工具,其中的文本 :110101是將B列的結果以10進位來顯示
【操作】
2.1 為了讓n可以直接輸入,需要利用[輸入框]工具 ,同時關聯到n,細節操作如下:
2.2 在繪圖區顯示[滑動條]d
2.3 為了將d進位的結果以AnsF來記錄,操作如下
E1=1E2=E1*10 F1=B1*E1 AnsF=sum(Fs)2.4 利用動態文本顯示:d進位:AnsF
思考:如果是10進位轉為16進位又該如何轉換呢?
對於10以上的進位請大家繼續關注後期的進階課程
參考資料:
教學文件:https://www.bilibili.com/read/cv7374155
Geogebra 檔案:https://www.geogebra.org/classic/qqyj2tds
bili 教學視頻: https://www.bilibili.com/video/BV1rk4y127E5
youtube 教學視頻:https://www.youtube.com/playlist?list=PLXH05kw-i_5IjxJRIAwu-CiMzmls26eZV
限時挑戰:
歡迎加微信 Acchu0331 入群打卡學習,每次任務有 20 元獎勵紅包。此次任務小打卡中獲得最多贊可得 8元人氣獎,另抽一位打卡者獲得手氣獎 8元 。另外,還有 4 個 總額 4元的隨機紅包為關注獎。 本次任務的打卡期限為 2020/8/29(周六) 23:59。請參考視頻,交一份作業在小打卡內,附上作品截圖或動圖,並寫下 32 字以上的心得,如以下格式。
主題:用表格區將10進位轉換為d進位
姓名:楊華 (2020 /8/27 17:00)
連結:https://www.geogebra.org/classic/xvm2tkc8
心得:利用表格將10進位轉換為d進位,通過取整、餘式、創建列表、總和等指令可以快速實現轉換,同時利用滑動條、輸入框、文本來達到動態顯示進位的效果
截圖: