[Visual Basic 6.0] 乙級電腦硬體裝修技術士檢定 - 第一站 ( 1~10題 ) 解析與範例

摘要:[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) 有問題歡迎提問