摘要:[Visual Basic 6.0] 乙級電腦硬體裝修技術士檢定 - 第一站 ( 1~10題 ) 解析與範例
[Visual Basic 6.0] 乙級電腦硬體裝修技術士檢定 - 第一站 ( 1~10題 ) 解析與範例
#乙級電腦硬體裝修技術士檢定 第一站 總共有 10 個題組,分別將 10 個題組使用 最最最最最最簡化最易懂的 Code 撰寫。
#必須要將 inpout32.dll 放置於 C:\Windows\System32 下或者與專案位置相同。
#程式設計:廖憲得 ( 0xDe ) 歡迎轉載,請註明原出處表示尊重。
程式介面:
乙級硬體裝修 Visual Basic 6.0 由 Inpout32.dll 控制 LED
幫助乙級硬體裝修考生能夠更理解到 Visual Basic 程式設計可以怎麼寫來減少更多更複雜的程式碼,使得更精簡更短的程式碼卻能有相同的效果。
也能讓背程式碼應試的考生能夠減少更多複雜的指令,希望對大家有幫助。
第一題:
'/*********** Visual Basic 乙級硬體裝修 第一站 ***********
'/***********_________程式設計__廖憲得_________***********
Private Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) ' 背
Dim a, b(99), c ' 宣告 a 為 控制綠燈、紅燈、關閉
Private Sub Command1_Click(Index As Integer)
a = Index + 1
c = 0
End Sub
Private Sub Form_Load()
' 動作設定
For i = 0 To 6
b(i) = 2 ^ i
Next i
End Sub
Private Sub Timer1_Timer()
Text1 = "Current Time:" & Time$ ' 時間
If c > 14 Then c = 0 ' 超過 14 回到原來的地方
' 完全清除
Out &H378, 0
Out &H37A, 4
Out &H37A, 0
If a = 1 Then ' 綠燈
Out &H37A, 8 ' 致能
Out &H378, b(c) ' 輸出
ElseIf a = 2 Then ' 紅燈
Out &H378, 2 ^ c ' 2 的次方
Out &H37A, 4
Out &H37A, 0
ElseIf a = 3 Then
End ' 關閉
End If
c = c + 1
End Sub
第二題:
'/*********** Visual Basic 乙級硬體裝修 第一站 ***********
'/***********_________程式設計__廖憲得_________***********
Private Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) ' 背
Dim a, b(99), c ' 宣告 a 為 控制綠燈、紅燈、關閉
Private Sub Command1_Click(Index As Integer)
a = Index + 1
c = 0
End Sub
Private Sub Form_Load()
' 動作設定
For i = 0 To 6
b(i) = 2 ^ (6 - i)
Next i
End Sub
Private Sub Timer1_Timer()
Text1 = "Current Time:" & Time$ ' 時間
If c > 14 Then c = 0 ' 超過 14 回到原來的地方
' 完全清除
Out &H378, 0
Out &H37A, 4
Out &H37A, 0
If a = 1 Then ' 綠燈
Out &H37A, 8 ' 致能
Out &H378, b(c) ' 輸出
ElseIf a = 2 Then ' 紅燈
Out &H378, 2 ^ c ' 2 的次方
Out &H37A, 4
Out &H37A, 0
ElseIf a = 3 Then
End ' 關閉
End If
c = c + 1
End Sub
第三題:
'/*********** Visual Basic 乙級硬體裝修 第一站 ***********
'/***********_________程式設計__廖憲得_________***********
Private Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) ' 背
Dim a, b(99), c ' 宣告 a 為 控制綠燈、紅燈、關閉
Private Sub Command1_Click(Index As Integer)
a = Index + 1
c = 0
End Sub
Private Sub Form_Load()
' 動作設定
For i = 0 To 5
b(i) = 2 ^ (i + 1) + 2 ^ i
Next i
End Sub
Private Sub Timer1_Timer()
Text1 = "Current Time:" & Time$ ' 時間
If c > 14 Then c = 0 ' 超過 14 回到原來的地方
' 完全清除
Out &H378, 0
Out &H37A, 4
Out &H37A, 0
If a = 1 Then ' 綠燈
Out &H37A, 8 ' 致能
Out &H378, b(c) ' 輸出
ElseIf a = 2 Then ' 紅燈
Out &H378, 2 ^ c ' 2 的次方
Out &H37A, 4
Out &H37A, 0
ElseIf a = 3 Then
End ' 關閉
End If
c = c + 1
End Sub
第四題:
'/*********** Visual Basic 乙級硬體裝修 第一站 ***********
'/***********_________程式設計__廖憲得_________***********
Private Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) ' 背
Dim a, b(99), c ' 宣告 a 為 控制綠燈、紅燈、關閉
Private Sub Command1_Click(Index As Integer)
a = Index + 1
c = 0
End Sub
Private Sub Form_Load()
' 動作設定
For i = 0 To 5
b(i) = 2 ^ (6 - i) + 2 ^ (5 - i)
Next i
End Sub
Private Sub Timer1_Timer()
Text1 = "Current Time:" & Time$ ' 時間
If c > 14 Then c = 0 ' 超過 14 回到原來的地方
' 完全清除
Out &H378, 0
Out &H37A, 4
Out &H37A, 0
If a = 1 Then ' 綠燈
Out &H37A, 8 ' 致能
Out &H378, b(c) ' 輸出
ElseIf a = 2 Then ' 紅燈
Out &H378, 2 ^ c ' 2 的次方
Out &H37A, 4
Out &H37A, 0
ElseIf a = 3 Then
End ' 關閉
End If
c = c + 1
End Sub
第五題:
'/*********** Visual Basic 乙級硬體裝修 第一站 ***********
'/***********_________程式設計__廖憲得_________***********
Private Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) ' 背
Dim a, b(99), c ' 宣告 a 為 控制綠燈、紅燈、關閉
Private Sub Command1_Click(Index As Integer)
a = Index + 1
c = 0
End Sub
Private Sub Form_Load()
' 動作設定
b(0) = 255
For i = 1 To 6
b(i) = b(i - 1) + 2 ^ (7 - i)
Next i
End Sub
Private Sub Timer1_Timer()
Text1 = "Current Time:" & Time$ ' 時間
If c > 14 Then c = 0 ' 超過 14 回到原來的地方
' 完全清除
Out &H378, 0
Out &H37A, 4
Out &H37A, 0
If a = 1 Then ' 綠燈
Out &H37A, 8 ' 致能
Out &H378, b(c) ' 輸出
ElseIf a = 2 Then ' 紅燈
Out &H378, 2 ^ c ' 2 的次方
Out &H37A, 4
Out &H37A, 0
ElseIf a = 3 Then
End ' 關閉
End If
c = c + 1
End Sub
第六題:
'/*********** Visual Basic 乙級硬體裝修 第一站 ***********
'/***********_________程式設計__廖憲得_________***********
Private Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) ' 背
Dim a, b(99), c ' 宣告 a 為 控制綠燈、紅燈、關閉
Private Sub Command1_Click(Index As Integer)
a = Index + 1
c = 0
End Sub
Private Sub Form_Load()
' 動作設定
b(0) = 255
For i = 1 To 6
b(i) = b(i - 1) - 2 ^ (7 - i)
Next i
End Sub
Private Sub Timer1_Timer()
Text1 = "Current Time:" & Time$ ' 時間
If c > 14 Then c = 0 ' 超過 14 回到原來的地方
' 完全清除
Out &H378, 0
Out &H37A, 4
Out &H37A, 0
If a = 1 Then ' 綠燈
Out &H37A, 8 ' 致能
Out &H378, b(c) ' 輸出
ElseIf a = 2 Then ' 紅燈
Out &H378, 2 ^ c ' 2 的次方
Out &H37A, 4
Out &H37A, 0
ElseIf a = 3 Then
End ' 關閉
End If
c = c + 1
End Sub
第七題:
'/*********** Visual Basic 乙級硬體裝修 第一站 ***********
'/***********_________程式設計__廖憲得_________***********
Private Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) ' 背
Dim a, b(99), c ' 宣告 a 為 控制綠燈、紅燈、關閉
Private Sub Command1_Click(Index As Integer)
a = Index + 1
c = 0
End Sub
Private Sub Form_Load()
' 動作設定
b(0) = 8
b(1) = 20
b(2) = 34
b(3) = 65
End Sub
Private Sub Timer1_Timer()
Text1 = "Current Time:" & Time$ ' 時間
If c > 14 Then c = 0 ' 超過 14 回到原來的地方
' 完全清除
Out &H378, 0
Out &H37A, 4
Out &H37A, 0
If a = 1 Then ' 綠燈
Out &H37A, 8 ' 致能
Out &H378, b(c) ' 輸出
ElseIf a = 2 Then ' 紅燈
Out &H378, 2 ^ c ' 2 的次方
Out &H37A, 4
Out &H37A, 0
ElseIf a = 3 Then
End ' 關閉
End If
c = c + 1
End Sub
第八題:
'/*********** Visual Basic 乙級硬體裝修 第一站 ***********
'/***********_________程式設計__廖憲得_________***********
Private Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) ' 背
Dim a, b(99), c ' 宣告 a 為 控制綠燈、紅燈、關閉
Private Sub Command1_Click(Index As Integer)
a = Index + 1
c = 0
End Sub
Private Sub Form_Load()
' 動作設定
For I = 0 To 12
If I < 7 Then
b(I) = 2 ^ I
Else
b(I) = b(I - 1)
End If
Next I
End Sub
Private Sub Timer1_Timer()
Text1 = "Current Time:" & Time$ ' 時間
If c > 14 Then c = 0 ' 超過 14 回到原來的地方
' 完全清除
Out &H378, 0
Out &H37A, 4
Out &H37A, 0
If a = 1 Then ' 綠燈
Out &H37A, 8 ' 致能
Out &H378, b(c) ' 輸出
ElseIf a = 2 Then ' 紅燈
Out &H378, 2 ^ c ' 2 的次方
Out &H37A, 4
Out &H37A, 0
ElseIf a = 3 Then
End ' 關閉
End If
c = c + 1
End Sub
第九題:
'/*********** Visual Basic 乙級硬體裝修 第一站 ***********
'/***********_________程式設計__廖憲得_________***********
Private Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) ' 背
Dim a, b(99), c ' 宣告 a 為 控制綠燈、紅燈、關閉
Private Sub Command1_Click(Index As Integer)
a = Index + 1
c = 0
End Sub
Private Sub Form_Load()
' 動作設定
For I = 0 To 12
If I < 7 Then
b(I) = 2 ^ (I)
Else
b(I) = b(I - 1) - 2 ^ (12 - I)
End If
Next I
End Sub
Private Sub Timer1_Timer()
Text1 = "Current Time:" & Time$ ' 時間
If c > 14 Then c = 0 ' 超過 14 回到原來的地方
' 完全清除
Out &H378, 0
Out &H37A, 4
Out &H37A, 0
If a = 1 Then ' 綠燈
Out &H37A, 8 ' 致能
Out &H378, b(c) ' 輸出
ElseIf a = 2 Then ' 紅燈
Out &H378, 2 ^ c ' 2 的次方
Out &H37A, 4
Out &H37A, 0
ElseIf a = 3 Then
End ' 關閉
End If
c = c + 1
End Sub
第十題:
'/*********** Visual Basic 乙級硬體裝修 第一站 ***********
'/***********_________程式設計__廖憲得_________***********
Private Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) ' 背
Dim a, b(99), c ' 宣告 a 為 控制綠燈、紅燈、關閉
Private Sub Command1_Click(Index As Integer)
a = Index + 1
c = 0
End Sub
Private Sub Form_Load()
' 動作設定
For I = 0 To 12
If I < 7 Then
b(I) = 2 ^ (6 - I)
Else
b(I) = 2 ^ (I - 6)
End If
Next I
End Sub
Private Sub Timer1_Timer()
Text1 = "Current Time:" & Time$ ' 時間
If c > 14 Then c = 0 ' 超過 14 回到原來的地方
' 完全清除
Out &H378, 0
Out &H37A, 4
Out &H37A, 0
If a = 1 Then ' 綠燈
Out &H37A, 8 ' 致能
Out &H378, b(c) ' 輸出
ElseIf a = 2 Then ' 紅燈
Out &H378, 2 ^ c ' 2 的次方
Out &H37A, 4
Out &H37A, 0
ElseIf a = 3 Then
End ' 關閉
End If
c = c + 1
End Sub
最後附上專案與Inpout32.dll檔:
Visual Basic 乙級硬體裝修 1-10站程式碼 + Inpout32.dll.rar
#0xDe 從分享中學習
#Facebook:ProgrammerDe (https://www.facebook.com/MicrosoftDes) 有問題歡迎提問