Scratch 3 範例五 運算的應用
學習目標: 認識清單與變數、輸入與讀取
範例五: 計算身分證最後一位檢查碼
(一) 情境概述
資訊時代,個人隱私資料的安全性與正確性非常重要。您知道身分證的編碼方式嗎? 您知道網路如何驗證身分證資料是正確的或錯誤的?
(二) 問題解析
1.身分證的組成格式
2. 第一個英文字代碼
3. 將英文字轉換成數字
轉換之後,身分證變成11位數字。
4. 將每個數字乘以權重
權重分別為「1 987654321」。
5. 將總和除以10,求餘數。
158 除以 10 餘數 8 。
6. 再以10減去餘數,結果為身分證最後一碼。
10 - 8 = 2
(三) 設計演算法
輸入身分證字號
說出身分證字號
將第1個英文字轉數字
計算加權總和
計算驗證碼
說出驗證碼
(四) 設計程式
輸入身分證字號
-->輸入的身分證字號包含英文與數字
如何將輸入的資料" 每一個"獨立取出?
說出身分證字號
將第1個英文字轉數字
-->如何將輸入的A~Z英文字 ,轉換成"獨立"的2個數字?
計算加權總和
-->如何將11個數字乘以加權「1987654321」?
計算驗證碼
說出驗證碼
(五) 執行結果
輸入身分證字號,檢查計算結果「驗證碼」是否與身分證最後一碼相同?
(六) 結果檢核
程式執行結果是否與預期的情境相符?
如果程式執行結果與預期不符? 發生什麼問題? 如何解決?
(七) 延申學習
我覺得還有哪些腦力激盪的延申功能?
-->請設計判斷身分證字號是否正確的程式?
判斷方式:「 計算結果的驗證碼」= 「輸入身分證字號的最後一碼」。