45 lines
887 B
Plaintext
45 lines
887 B
Plaintext
EnableExplicit
|
|
|
|
Procedure lexOrder(n, Array ints(1))
|
|
Define first = 1, last = n, k = n, i
|
|
If n < 1
|
|
first = n
|
|
last = 1
|
|
k = 2 - n
|
|
EndIf
|
|
Dim strs.s(k - 1)
|
|
For i = first To last
|
|
strs(i - first) = Str(i)
|
|
Next
|
|
SortArray(strs(), #PB_Sort_Ascending)
|
|
For i = 0 To k - 1
|
|
ints(i) = Val(Strs(i))
|
|
Next
|
|
EndProcedure
|
|
|
|
If OpenConsole()
|
|
PrintN(~"In lexicographical order:\n")
|
|
Define i, j, n, k
|
|
For i = 0 To 4
|
|
Read n
|
|
k = n
|
|
If n < 1
|
|
k = 2 - n
|
|
EndIf
|
|
Dim ints(k - 1)
|
|
lexOrder(n, ints())
|
|
Define.s ns = RSet(Str(n), 3)
|
|
Print(ns + ": [")
|
|
For j = 0 To k - 1
|
|
Print(Str(ints(j)) + " ")
|
|
Next j
|
|
PrintN(~"\b]")
|
|
Next i
|
|
Input()
|
|
End
|
|
|
|
DataSection
|
|
Data.i 0, 5, 13, 21, -22
|
|
EndDataSection
|
|
EndIf
|