Scratch 3 範例五 運算的應用

學習目標: 認識清單與變數、輸入與讀取

範例: 計算身分證最後一位檢查碼

(一) 情境概述

資訊時代,個人隱私資料的安全性與正確性非常重要。您知道身分證的編碼方式嗎? 您知道網路如何驗證身分證資料是正確的或錯誤的?

(二) 問題解析

1.身分證的組成格式

2. 第一個英文字代碼

3. 將英文字轉換成數字

轉換之後,身分證變成11位數字。

4. 將每個數字乘以權

權重分別為「1 987654321」

5. 將總和除以10,求餘數。

158 除以 10 餘數 8

6. 再以10減去餘數,結果為身分證最後一碼

10 - 8 = 2

(三) 設計演算法

  1. 輸入身分證字號

  2. 說出身分證字號

  3. 將第1個英文字轉數字

  4. 計算加權總和

  5. 計算驗證碼

  6. 說出驗證碼

(四) 設計程式

  1. 輸入身分證字號

-->輸入的身分證字號包含英文與數字

如何將輸入的資料" 每一個"獨立取出?

  1. 說出身分證字號

  2. 將第1個英文字轉數字

-->如何將輸入的A~Z英文字 ,轉換成"獨立"的2個數字?

  1. 計算加權總和

-->如何將11個數字乘以加權「1987654321」?

  1. 計算驗證碼

  2. 說出驗證碼

(五) 執行結果

輸入身分證字號,檢查計算結果「驗證碼」是否與身分證最後一碼相同?

(六) 結果檢核

程式執行結果是否與預期的情境相符?

如果程式執行結果與預期不符? 發生什麼問題? 如何解決?

(七) 延申學習

我覺得還有哪些腦力激盪的延申功能?

-->請設計判斷身分證字號是否正確的程式?

判斷方式:「 計算結果的驗證碼」= 「輸入身分證字號的最後一碼」。