Transcript 2 - HiNet
軟體設計丙級
林文恭 研究室 原著
rjwang 編修
學科
• 考題內容
– 採「考前公開」制,公告於勞委會網站
– 題庫內共700題單選題
– 範圍:計算機概論、程式設計
• 評分方法
– 考試時間100分鐘
– 答題數80題每題1.25分,答錯不倒扣
– 以60分為及格。
術科
• 考題內容
– 採「考前公開」制,公告於勞委會網站
– 分為2站共8個題目:
• 第一站:基本指令應用
– 共5個題目×3組迴圈指令,每人抽3題及1組迴圈指令作答。
• 第二站:應用程式設計
– 共3個題目,每人抽1題作答。
– 軟體:
• Microsoft Visual Basic
• 各考場提供的軟體版本並無統一規範
• 目前大多為2005、2008(報名前應先詢問考場)
術科第一站(1)
• 評分:
– 測驗時間:45分鐘
– 評分依據:程式碼報表、執行結果報表
– 第一站通過之考生才可參加第二站測試
• 資料檔案
– 測試練習:940301.SM~940305.SM
– 實際考試:940301.T01~940305.T01
– 考生報名後收到資料檔案只有SM檔
考試所用的T01~T03數據是不公布的
(本書光碟有提供)
術科第一站(2)
•
•
•
•
•
試題編號:940301~940305
考試目標:基本指令應用
考試時5題抽選3題,只須完成抽中的3題
程式中不可使用『Go To』指令、『內建』函數
解題數據有3組、指定的迴圈指令也有3種,在考場中抽選:
術科第一站(3)
• 應檢人必須將設計的程式,以站名、姓名及准考證號碼為
檔案名稱,存於指定硬碟機目錄中。(實際考試時可能是
放在windows的桌面上,因此對目錄的操作要熟練!)
• 假設指定資料如下表:
指定硬碟機目錄
站名
姓名
准考證號碼
C:\軟體設計丙級
第一站
林文恭
999901
• 以Vb2008作答時,應該在「c:\軟體設計丙級」資料夾中建立名為
「第一站林文恭999901」答題專案。
術科第一站(4)
• 複製範例檔資料、測試檔資料至 c:\
• 複製 title.exe 至 C:\
– Title.exe會將考生資料寫到 c:\title.txt
• 根據題目要求,一步一步完成程式。
btn_student
btn_print
btn_01
txt_01
btn_03
txt_03
PD(PrintDocument控制項)
btn_05
txt_05
第
一
站
:
表
單
設
計
1
2
考
生
資
料
輸入資料
(
3
)
1
說
明
資料自動寫入C:\title.txt
(
考
生
資
料
)
2
程
式
設
計
1
呼叫 pd.print()方法
來列印答案報表
(
印
列
答
案
)
1
2
說
明
(
印
列
答
案
)
1
說
明
(
印
列
答
案
)
2
程
式
設
計
第一站:報表
執行結果報表
程式碼報表
姓名:[林文恭] 准考證號碼:[999901]
座號:[01]
日期:[2010/11/11]
第一題結果:…..
第三題結果:…...
第五題結果:……
讀入應檢人資料:
title.txt
方法:PrintDocument物件
方法:檔案→列印
940301:Input & Output
資料檔940301.SM欄位架構及內容:
欄位1:3~9位長整數
第一筆
12321
【報表輸出】
第一題結果:12321 is a palindrome.
Palindrome:迴文
讀取某一數字時:
左→右 = 右→左
此數字就稱為迴文
例如:12321是迴文。
940301:邏輯解說
運算式
12345 / 10 = 1234…5
1234 / 10 = 123…4
123 / 10 = 12…3
12 / 10 = 1…2
1 / 10 = 0…1
商數為0運算結束
商
數
1234
餘
數
5
串接
餘數
5
123
4
54
12
3
543
1
2
5432
0
1
54321
940302:Input & Output
資料檔940302.SM
欄位架構及內容:
欄位1:整數
第一筆
7
【報表輸出】
第二題結果:
1
12
123
1234
12345
123456
1234567
940302:邏輯解說
i
j j = 1 To i m1 = m1 & j m1結果
1
1 j = 1 To 1 m1 = m1 & 1 “1”
2
1
m1 = m1 & 1
j = 1 To 2
“12”
2
m1 = m1 & 2
3
1
m1 = m1 & 1
2 j = 1 To 3 m1 = m1 & 2 “123”
3
m1 = m1 & 3
程式碼
For i = 1 To 3
For j = 1 To i
m1 = m1 & j
Next j
Next i
940303:Input & Output
資料檔940303.SM欄位架構及內容:
欄位1:整數
第一筆
12
【報表輸出】
第三題結果:12 is not a prime number.
prime number:質數
判斷整數n是否為質
數,只要檢查2到
n^0.5是否存在可整
除n的整數即可。若
無,此數字n就稱為質
數。(改良法)
例如:11是質數。
940303:邏輯解說
假設:m1 = 7 , 則 m1^0.5=2
i
m1 / i
商數
餘數
2
7/2
3
1
(取整數)
迴圈運算程式(改良法)
m2=0 ‘計數器
For i = 2 To m1^0.5
if m1 mod i = 0 Then m2 = m2 + 1
Next I
If m2 = 0 then
txt_03.text=m1 & “第三題結果:” & m1 & “ is a prime number.”
Else
txt_03.text=m1 & “第三題結果:” & m1 & “ is not a prime number.”
End If
940304:Input & Output
資料檔940304.SM欄位架構及內容:
欄位1:整數
欄位2:整數
資料
變數
值
變數
值
第一筆
身高(公分)
176
體重(公斤)
45
第二筆
身高(公分)
165
體重(公斤)
50
第三筆
身高(公分)
170
體重(公斤)
55
【報表輸出】
第四題結果:最小BMI值=15,不正常
940304:選取最小值
最小BMI = BMI(1) BMI(1) = 39 BMI(2) = 29 BMI(3) = 19
1
2
3
最小BMI = 39
39
最小BMI = 39
最小BMI = 29
最小BMI = 19
29
19
940305:Input & Output
資料檔940305.SM欄位架構及內容:
資料
第一筆
第二筆
第三筆
第四筆
【報表輸出】
欄位1:整數
變數
值
A(1,1)
1
A(2,1)
3
B(1,1)
5
B(2,1)
7
第五題結果:
[6 8]
[10 12]
欄位2:整數
變數
值
A(1,2)
2
A(2,2)
4
B(1,2)
6
B(2,2)
8
940305:邏輯解說
I
J
1
1
2
1
2
2
A(I,J)
A(1,1) = 1
A(1,2) = 2
A(2,1) = 3
A(2,2) = 4
B(I,J)
B(1,1) = 5
B(1,2) = 6
B(2,1) = 7
B(2,2) = 8
C(I,J)
A(1,1) + B(1,1)
A(1,2) + B(1,2)
A(2,1) + B(2,1)
A(2,2) + B(2,2)
For i = 1 To 2
For j = 1 To 2
C( i , j ) = A( i , j ) + B( i , j )
Next j
Next i
演算
1+5 = 6
2+6 = 8
3+7 = 10
4+8 = 12
三種迴圈、資料
術科第二站:應用程式設計
• 試題、資料
– 940306~940308,考試時抽選1題
– 測試檔案:94030X.SM 、實測檔案:
94030X.T01
• 評分:
– 測驗時間:80分鐘
– 應檢人有3次評分機會
– 評分依據:原始程式報表、執行結果表單畫面報表
0
6
:
身
分
證
號
碼
檢
查
解題策略
執行順序 程式名稱
1
2
3
4
5
rdata
sp1
sp2
sp3
wdata
陣列資料
名稱:d( )
功能
說明
讀取資料
一次讀取所有資料
檢查1:格式
檢查2:性別
依序判斷每一筆資料
檢查3:安全碼
寫入資料
一次寫入所有資料
表格物件
名稱:dt
DataGridView
名稱:dgv
0
7
:
高
速
公
路
車
輛
統
計
解題策略
程式名稱
Form_Load
rdata
sp1
sp2
sp3
sp4
sp5
btn_car_Click
btn_week_Click
功能說明
主控程式
讀取資料
計算車輛總數
計算車輛種類小計
計算星期別車輛小計
建立車輛物件陣列、星期物件陣列
設定表單內控制項屬性
顯示:【依車輛種類】群組方塊
顯示:【依星期別】群組方塊
資料排序
氣泡排序
3
3
3
3
3
2
2
2
1
1
4
4
2
2
2
3
1
1
2
2
2
2
4
1
1
1
3
3
3
3
1
1
1
4
4
4
4
4
4
4
置換(swap)技巧
0
8
:
分
數
的
加
減
乘
除
運
算
解題策略
執行順序
1
2
3
程式名稱
rdata
sp1
wdata
功能
讀取資料
分數運算
寫入資料
說明
一次讀取所有資料
計算、約分、答案
一次寫入所有資料
m1/m2 約分的邏輯:
For j = 2 to Math.Abs(m1)
Do While (m1 Mod j = 0 And m2 Mod j = 0 )
m1 = m1 / j : m2 = m2 / j
Loop
Next j
第二站答案
• 使用將SM資料換成T01資料
• 3次檢查機會
• 報表:
– 按Alt + PrintScreen鍵:擷取執行表單畫面
– 檔案→列印:程式碼報表