2017年1月1日 星期日

Z2A VB 檢查碼變化題

Z2A VB 01/03預訂考題 檢查碼之 變化
變化1M5P05_1 學號檢查
 給一組學號,依下列檢查規則,若正確則輸出Yes,不正確則輸出No
(1) 學號共6碼,長度不對則No
(2) 1碼只能3~5
(3) 2,3兩碼只能11~17的數字
(4) 4,5,6三碼只能001~350的數字
in1.txt
2
4112A9
416123

in2.txt
2
511099
616123

out.txt
No
Yes

Yes
No
參考程式碼
   Function M5P05_1(ByVal s As String) As String
        M5P05_1 = "Yes"
        If s.Length <> 6 Then Return "No"
        For i = 1 To s.Length
            If Mid(s, i, 1) < "0" Or Mid(s, i, 1) > "9" Then Return "No"
        Next
        Dim a As Integer = Val(Mid(s, 1, 1))
        Dim b As Integer = Val(Mid(s, 2, 2))
        Dim c As Integer = Val(Mid(s, 4, 3))
        If a < 3 Or a > 5 Then Return "No"
        If b < 11 Or b > 17 Then Return "No"
        If c < 1 Or a > 350 Then Return "No"
    End Function

變化2M5P05_2 書碼檢查(10)
 給一組書碼,依下列檢查規則,若正確則輸出Yes,不正確則輸出No
(1) 書碼共10碼皆數字,非數字或長度不對則No
(2) 1~9碼由左算第1碼為奇數位
所有奇數位*1、所有偶數位*3
(3) 1~9位各乘上1 3後加總後再加上第10*1須能被10整除

變化3M5P05_3 二信資處發票檢查
 給一組二信資處合作社的發票,避免冒領獎金,依下列檢查規則,
若正確則輸出OK,不正確則輸出KO
(1) 發票號碼長度有可能7~9碼皆數字,非數字或長度不對則KO
(2) 1,4,7*3、第2,5,8*2、第3,6,9*5,若無8,9碼當然不用乘
(3) 各碼分別乘上3,2,5後加總的和須能被7整除則OK否則KO


 變化2、變化3 的資料及程式碼後補

0 意見:

張貼留言