54 lines
1.0 KiB
Plaintext
54 lines
1.0 KiB
Plaintext
' FB 1.05.0 Win64
|
|
|
|
Type Pair
|
|
As String name, value
|
|
Declare Constructor(name_ As String, value_ As String)
|
|
Declare Operator Cast() As String
|
|
End Type
|
|
|
|
Constructor Pair(name_ As String, value_ As String)
|
|
name = name_
|
|
value = value_
|
|
End Constructor
|
|
|
|
Operator Pair.Cast() As String
|
|
Return "[" + name + ", " + value + "]"
|
|
End Operator
|
|
|
|
' selection sort, quick enough for sorting small number of pairs
|
|
Sub sortPairsByName(p() As Pair)
|
|
Dim As Integer i, j, m
|
|
For i = LBound(p) To UBound(p) - 1
|
|
m = i
|
|
For j = i + 1 To UBound(p)
|
|
If p(j).name < p(m).name Then m = j
|
|
Next j
|
|
If m <> i Then Swap p(i), p(m)
|
|
Next i
|
|
End Sub
|
|
|
|
Dim As Pair pairs(1 To 4) = _
|
|
{ _
|
|
Pair("grass", "green"), _
|
|
Pair("snow", "white" ), _
|
|
Pair("sky", "blue"), _
|
|
Pair("cherry", "red") _
|
|
}
|
|
|
|
Print "Before sorting :"
|
|
For i As Integer = 1 To 4
|
|
Print Tab(3); pairs(i)
|
|
Next
|
|
|
|
sortPairsByName pairs()
|
|
|
|
Print
|
|
Print "After sorting by name :"
|
|
For i As Integer = 1 To 4
|
|
Print Tab(3); pairs(i)
|
|
Next
|
|
|
|
Print
|
|
Print "Press any key to quit"
|
|
Sleep
|