Class Government ΚΚΚΚΚΚΚ Private myPresident, myVP, mySec ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Property Get President ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ President = myPresident ΚΚΚΚΚΚΚ End Property ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Property Let President(Fish) ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ myPresident = Fish ΚΚΚΚΚΚΚ End Property ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Property Get VicePresident ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ VicePresident = myVP ΚΚΚΚΚΚΚ End Property ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Property Let VicePresident(Fish) ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ myVP = Fish ΚΚΚΚΚΚΚ End Property ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Property Get Secretary ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Secretary = mySec ΚΚΚΚΚΚΚ End Property ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Property Let Secretary(Fish) ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ mySec = Fish ΚΚΚΚΚΚΚ End Property ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Function IsPresident(Fish) ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ If myPresident = Fish Then ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ IsPresident = True ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Else ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ IsPresident = False ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ End If ΚΚΚΚΚΚΚ End Function ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Function IsVicePresident(Fish) ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ If myVP = Fish Then ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ IsVicePresident = True ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Else ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ IsVicePresident = False ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ End If ΚΚΚΚΚΚΚ End Function ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Function IsSecretary(Fish) ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ If mySec = Fish Then ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ IsSecretary = True ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Else ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ IsSecretary = False ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ End If ΚΚΚΚΚΚΚ End Function ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Function IsOfficer(Fish) ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ If IsPresident(Fish) Or IsVicePresident(Fish) Or IsSecretary(Fish) Then ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ IsOfficer = True ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Else ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ IsOfficer = False ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ End If ΚΚΚΚΚΚΚ End Function ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Function Outranks(Fish1, Fish2) ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ If (IsPresident(Fish1) And IsOfficer(Fish2)) Or (IsVicePresident(Fish1) And IsSecretary(Fish2)) Then ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Outranks = True ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Else ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Outranks = False ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ End If ΚΚΚΚΚΚΚ End Function End Class Dim G Dim FishArray Dim i, j, k Set G = New Government FishArray = Array("Grouper", "Trout", "Ray", "Mackerel", "Snapper", "Bass") For i = 0 To UBound(FishArray) ΚΚΚΚΚΚΚ G.President = FishArray(i) ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ j = 0 ΚΚΚΚΚΚΚ While j <= UBound(FishArray) ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ If j <> i Then ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ G.VicePresident = FishArray(j) ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ k = 0 ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ While k <= UBound(FishArray) ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ If k <> i And k <> j Then ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ G.Secretary = FishArray(k) ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ TestSolution(G) ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ End If ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ k = k + 1 ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Wend ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ End If ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ j = j + 1 ΚΚΚΚΚΚΚ Wend Next Sub TestSolution(G) ΚΚΚΚΚΚΚ Dim re ΚΚΚΚΚΚΚ If G.IsOfficer("Grouper") And Not G.IsPresident("Snapper") Then ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Exit Sub ΚΚΚΚΚΚΚ End If ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ If G.Outranks("Trout", "Ray") Then ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Exit Sub ΚΚΚΚΚΚΚ End If ΚΚΚΚΚΚΚ If G.IsOfficer("Trout") And G.IsOfficer("Bass") Then ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Exit Sub ΚΚΚΚΚΚΚ End If ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ If G.IsOfficer("Ray") And G.IsOfficer("Snapper") And G.IsOfficer("Bass") Then ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Exit Sub ΚΚΚΚΚΚΚ End If ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ If G.IsOfficer("Ray") And (G.IsPresident("Bass") Or G.IsSecretary("Trout")) Then ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Exit Sub ΚΚΚΚΚΚΚ End If ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ If G.Outranks("Ray", "Mackerel") Or G.Outranks("Snapper", "Mackerel") Then ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Exit Sub ΚΚΚΚΚΚΚ End If ΚΚΚΚΚΚΚ If G.IsVicePresident("Snapper") Then ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Exit Sub ΚΚΚΚΚΚΚ End If ΚΚΚΚΚΚΚ If G.IsSecretary("Snapper") And G.IsOfficer("Mackerel") Then ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Exit Sub ΚΚΚΚΚΚΚ End If ΚΚΚΚΚΚΚ If G.IsOfficer("Snapper") And G.IsOfficer("Grouper") And Not G.IsOfficer("Bass") Then ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Exit Sub ΚΚΚΚΚΚΚ End If ΚΚΚΚΚΚΚ If G.IsOfficer("Bass") And Not (G.IsPresident("Bass") Or G.IsPresident("Ray")) Then ΚΚΚΚΚΚΚ ΚΚΚΚΚΚΚ Exit Sub ΚΚΚΚΚΚΚ End If ΚΚΚΚΚΚΚ Response.Write "President = " & G.President & vbCrLf ΚΚΚΚΚΚΚ Response.Write "Vice-President = " & G.VicePresident & vbCrLf ΚΚΚΚΚΚΚ Response.Write "Secretary = " & G.Secretary End Sub