750 likes | 845 Views
ut. 術科第一部分. 45 分鐘 940301 :回文 940302 :列印直角三角形 940303 :判斷質數 940304 : BMI 計算與比較 940305 :矩陣相加. 術科第一部分解題流程. 介面設計 輸入考生資料按鈕 解抽中之題目 ( 步驟如後頁 ) 列印按鈕 列印答案、程式碼、簽名、交卷. 術科第一部分解題步驟. 三行註解 開啟與讀取範例檔案資料 該題答案程式碼 ( 與抽到的迴圈有關 ) 輸出結果到 TEXT 物件. 術科第一部分 開啟與讀取範例檔案資料. 開啟與讀取範例檔案資料 ( 紅字範例檔依題目決定 )
E N D
術科第一部分 • 45分鐘 • 940301:回文 • 940302:列印直角三角形 • 940303:判斷質數 • 940304:BMI計算與比較 • 940305:矩陣相加
術科第一部分解題流程 • 介面設計 • 輸入考生資料按鈕 • 解抽中之題目(步驟如後頁) • 列印按鈕 • 列印答案、程式碼、簽名、交卷
術科第一部分解題步驟 • 三行註解 • 開啟與讀取範例檔案資料 • 該題答案程式碼(與抽到的迴圈有關) • 輸出結果到TEXT物件
術科第一部分開啟與讀取範例檔案資料 開啟與讀取範例檔案資料 (紅字範例檔依題目決定) Open "A:\940301.SM" For Input As #1 Input #1, n Close #1
940301 n2 = n For i = 1 To 99 s = s & (n2 Mod 10) n2 = (n2 - (n2 Mod 10)) / 10 If n2 = 0 Then Exit For Next If n / s = 1 Then Text1.Text = n & "是回文" Else Text1.Text = n & "不是回文" End If n2 = n Do while n2>0 s = s & (n2 Mod 10) n2 = (n2 - (n2 Mod 10)) / 10 loop If n / s = 1 Then Text1.Text = n & "是回文" Else Text1.Text = n & "不是回文" End If
For 與 do while轉換 • 設定起始值 • 結束條件放在while後面 • 自己給條件的變化 940302 i = 1 Do While i <= n j = 1 Do While j <= i s = s & j j = j + 1 Next s = s & vbCrLf i = i + 1 Loop Text2.Text = s For i = 1 To n For j = 1 To i s = s & j Next s = s & vbCrLf Next Text2.Text = s
940303 i = 2 Do While i <= n - 1 If (n Mod i) = 0 Then s = n & "不是質數" Exit Do End If i = i + 1 ‘給定條件變化 s = n & "是質數" Loop Text3.Text = s For i = 2 To n - 1 If (n Mod i) = 0 Then s = n & "不是質數" Exit For End If s = n & "是質數" Next Text3.Text = s
940304 Open "A:\940304.SM" For Input As #1 Dim BMI, BMI2 As Integer BMI2 = 999 i = 1 Do While i <= 3 Input #1, a, b a = a / 100 BMI = b / (a * a) + 0.5 If BMI < BMI2 Then BMI2 = BMI i = i + 1 Loop Close #1 If BMI2 >= 20 And BMI2 <= 25 Then S = "最小BMI值=" & BMI2 & ",正常" Else S = "最小BMI值=" & BMI2 & ",不正常" End If Text4.Text = S Open "A:\940304.SM" For Input As #1 Dim BMI, BMI2 As Integer BMI2 = 999 For i = 1 To 3 Input #1, a, b a = a / 100 BMI = b / (a * a) + 0.5 If BMI < BMI2 Then BMI2 = BMI Next i Close #1 If BMI2 >= 20 And BMI2 <= 25 Then S = "最小BMI值=" & BMI2 & ",正常" Else S = "最小BMI值=" & BMI2 & ",不正常" End If Text4.Text = S Step 1
940305 Open "A:\940305.SM" For Input As #1 Dim a(2,2),b(2,2),s(2,2) Input #1,a(1,1),a(1,2),a(2,1),a(2,2) Input #1,b(1,1),b(1,2),b(2,1),b(2,2) Close #1 i=1 Do while i <= 2 j=1 Do while j<= 2 s(i,j)=a(i,j)+b(i,j) j=j+1 Loop i=i+1 T=T & “[“ & s(i,1) & “ “ & s(i,2) & “]” & vbcrlf Loop Open "A:\940305.SM" For Input As #1 Dim a(2,2),b(2,2),s(2,2) Input #1,a(1,1),a(1,2),a(2,1),a(2,2) Input #1,b(1,1),b(1,2),b(2,1),b(2,2) Close #1 For i = 1 To 2 For j=1 to 2 s(i,j)=a(i,j)+b(i,j) Next T=T & “[“ & s(i,1) & “ “ & s(i,2) & “]” & vbcrlf Next
術科第二部分 • 80分鐘 • 940306:判斷身分證 • 940307:高速公路車輛統計 • 940308:分數四則運算
術科第二部分解題流程 • 考生資料介面設計 • 解抽中之題目(各題不同,步驟如後頁) • 剪貼表單畫面 • 列印程式碼、簽名、交卷
考生資料介面設計 • Frame物件
考生資料介面設計 • Label物件
考生資料介面設計 • Text物件
940306術科解題步驟 • 加入MSFlexgrid物件(p3-5) • 開啟與讀取範例檔案資料 • 判斷範例資料之身分證正確性(p3-17) • 輸出結果到MSFlexgrid物件(p3-20)
加入MSFlexgrid物件P3-5 • 專案設定使用元件
加入MSFlexgrid物件 • 勾選Microsoft FlexGrid Control 6.0
操作MSFlexgrid物件 • 編號都從0開始 • 使用時先指定row,再指定col 欄col 列row Row=0 Row=1
操作MSFlexgrid物件P3-6 Private Sub Form_Load() With MSF .Cols = 5 ‘指定全部欄數 .Row = 0 .Col = 1: .Text = "ID NO" '身分證 .Col = 2: .Text = “NAME”'姓名 .Col = 3: .Text = "SEX" '性別 .Col = 4: .Text = "ERROR" '身分證檢查是否錯誤 .ColWidth(0) = 500 '設定各欄寬度 .ColWidth(1) = 1500 .ColWidth(2) = 1200 .ColWidth(3) = 1000 .ColWidth(4) = 2000 End With End Sub MSF
940306.SM 身分證 姓名 性別 • 身分證 • 姓名 • 性別
加入判斷程式check1 • 檢查身分證格式 • 第一碼是英文 • 總長度是10 • 後9碼是數字 d(i) = Val(Mid(id, i + 1, 1)) 修改
加入判斷程式check2 • 檢查性別錯誤 • 第二碼=1 男生 • 第二碼=2 女生 Check1所產生
加入判斷程式check3 • 檢查碼是否正確? 注意順序
剪貼表單畫面與列印程式碼 • 剪貼表單畫面: • ALT-PRINTSCREEN • 開始程式集附屬應用程式WordPad • 貼上列印 • 列印程式碼: • VB檔案列印 • 簽名交卷
940307 • 設計考生資料介面(p3-2 ~ P3-4) • 開啟與讀取範例檔案資料 • 判斷範例資料之車輛數據統計 (P18-P19, P3-21) • 輸出螢幕結果與列印程式碼