Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
|
|
@ -0,0 +1,58 @@
|
|||
' version 11-03-2016
|
||||
' compile with: fbc -s console
|
||||
|
||||
#Include Once "crt/stdlib.bi" ' needed for qsort subroutine
|
||||
|
||||
' Declare Sub qsort (ByVal As Any Ptr, <== point to start of array
|
||||
' ByVal As size_t, <== size of array
|
||||
' ByVal As size_t, <== size of array element
|
||||
' ByVal As Function(ByVal As Any Ptr, ByVal As Any Ptr) As Long) <== callback function
|
||||
' declare callback function with Cdecl to ensures that the parameters are passed in the correct order
|
||||
'
|
||||
' size of long: 4 bytes on 32bit OS, 8 bytes on 64bit OS
|
||||
|
||||
' ascending
|
||||
Function callback Cdecl (ByVal element1 As Any Ptr, ByVal element2 As Any Ptr) As Long
|
||||
Function = *Cast(Long Ptr, element1) - *Cast(Long Ptr, element2)
|
||||
End Function
|
||||
|
||||
' Function callback Cdecl (ByVal element1 As Any Ptr, ByVal element2 As Any Ptr) As Long
|
||||
' Dim As Long e1 = *Cast(Long Ptr, element1)
|
||||
' Dim As Long e2 = *Cast(Long Ptr, element2)
|
||||
' Dim As Long result = Sgn(e1 - e2)
|
||||
' If Sgn(e1) = -1 And Sgn(e2) = -1 Then result = -result
|
||||
' Function = result
|
||||
' End Function
|
||||
|
||||
' ------=< MAIN >=------
|
||||
|
||||
Dim As Long i, array(20)
|
||||
|
||||
Dim As Long lb = LBound(array)
|
||||
Dim As Long ub = UBound(array)
|
||||
|
||||
For i = lb To ub ' fill array
|
||||
array(i) = 10 - i
|
||||
Next
|
||||
|
||||
Print
|
||||
Print "unsorted array"
|
||||
For i = lb To ub ' display array
|
||||
Print Using "###";array(i);
|
||||
Next
|
||||
Print : Print
|
||||
|
||||
' sort array
|
||||
qsort(@array(lb), ub - lb +1, SizeOf(array), @callback)
|
||||
|
||||
Print "sorted array"
|
||||
For i = lb To ub ' show sorted array
|
||||
Print Using "###";array(i);
|
||||
Next
|
||||
Print
|
||||
|
||||
' empty keyboard buffer
|
||||
While Inkey <> "" : Wend
|
||||
Print : Print "hit any key to end program"
|
||||
Sleep
|
||||
End
|
||||
Loading…
Add table
Add a link
Reference in a new issue