tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
46
Task/Range-expansion/PureBasic/range-expansion.purebasic
Normal file
46
Task/Range-expansion/PureBasic/range-expansion.purebasic
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
Procedure rangeexpand(txt.s, List outputList())
|
||||
Protected rangesCount = CountString(txt, ",") + 1
|
||||
Protected subTxt.s, r, rangeMarker, rangeStart, rangeFinish, rangeIncrement, i
|
||||
|
||||
LastElement(outputList())
|
||||
For r = 1 To rangesCount
|
||||
subTxt = StringField(txt, r, ",")
|
||||
rangeMarker = FindString(subTxt, "-", 2)
|
||||
If rangeMarker
|
||||
rangeStart = Val(Mid(subTxt, 1, rangeMarker - 1))
|
||||
rangeFinish = Val(Mid(subTxt, rangeMarker + 1))
|
||||
|
||||
If rangeStart > rangeFinish
|
||||
rangeIncrement = -1
|
||||
Else
|
||||
rangeIncrement = 1
|
||||
EndIf
|
||||
|
||||
i = rangeStart - rangeIncrement
|
||||
Repeat
|
||||
i + rangeIncrement
|
||||
AddElement(outputList()): outputList() = i
|
||||
Until i = rangeFinish
|
||||
Else
|
||||
AddElement(outputList()): outputList() = Val(subTxt)
|
||||
EndIf
|
||||
Next
|
||||
EndProcedure
|
||||
|
||||
Procedure outputListValues(List values())
|
||||
Print("[ ")
|
||||
ForEach values()
|
||||
Print(Str(values()) + " ")
|
||||
Next
|
||||
PrintN("]")
|
||||
EndProcedure
|
||||
|
||||
If OpenConsole()
|
||||
NewList values()
|
||||
rangeexpand("-6,-3--1,3-5,7-11,14,15,17-20", values())
|
||||
outputListValues(values())
|
||||
|
||||
Print(#CRLF$ + #CRLF$ + "Press ENTER to exit")
|
||||
Input()
|
||||
CloseConsole()
|
||||
EndIf
|
||||
Loading…
Add table
Add a link
Reference in a new issue