習題參考

習題P7.11: 郵遞區號條碼

美國郵政使用條碼,方便快速處理大宗郵件。 郵遞區號(ZIP)條碼如圖8所示。

五位數字的郵遞區號, 其條碼的編碼如圖9所示。 條碼用長短兩種垂直線條編碼。 條碼的左右兩邊各用一長條。 每一ZIP碼有五位數字, 編成條碼還要再加一位核對數字,總共六位。 六位數字的總和必須是 10 的倍數。 例如, ZIP碼為 95014, 總和 9+5+0+1+4 為19, 所以核對數字為 1。

ZIP條碼每一位數字, 包括核對數字在內, 使用課本 p.327 的表編碼。 表中第一列代表位值(positional value), 第二列以下則分別代表數字 0 到 9 的條碼, 其中 0 代表短條, 1 代表長條。 例如, 數字 6 用 01100 表示, 即 0*7 + 1*4 + 1*2 + 0*1 + 0*0 = 6。 數字 0 是唯一例外, 用同一公式得值 11。

寫一程式, 要求使用者輸入ZIP碼, 然後列印其條碼。 列印時, 短條用 : 表示, 長條用 | 表示。 例如, 95014 的條碼為

	||:|:::|:|:||::::::||:|::|:::|||

參考