Add tasks for all the new languages

This commit is contained in:
Tina Müller 2016-12-05 23:44:36 +01:00
parent 9dc3c2bb62
commit bba7bfd280
13208 changed files with 134745 additions and 0 deletions

View file

@ -0,0 +1,31 @@
PROGRAM BUBBLE_SORT
DIM FLIPS%,N,J
DIM A%[100]
BEGIN
! init random number generator
RANDOMIZE(TIMER)
! fills array A% with random data
FOR N=1 TO UBOUND(A%,1) DO
A%[N]=RND(1)*256
END FOR
! sort array
FLIPS%=TRUE
WHILE FLIPS% DO
FLIPS%=FALSE
FOR N=1 TO UBOUND(A%,1)-1 DO
IF A%[N]>A%[N+1] THEN
SWAP(A%[N],A%[N+1])
FLIPS%=TRUE
END IF
END FOR
END WHILE
! print sorted array
FOR N=1 TO UBOUND(A%,1) DO
PRINT(A%[N];)
END FOR
PRINT
END PROGRAM

View file

@ -0,0 +1,16 @@
;; sorts a vector of objects in place
;; proc is an user defined comparison procedure
(define (bubble-sort V proc)
(define length (vector-length V))
(for* ((i (in-range 0 (1- length))) (j (in-range (1+ i) length)))
(unless (proc (vector-ref V i) (vector-ref V j)) (vector-swap! V i j)))
V)
(define V #( albert antoinette elvis zen simon))
(define (sort/length a b) ;; sort by string length
(< (string-length a) (string-length b)))
(bubble-sort V sort/length)
→ #(zen simon elvis albert antoinette)

View file

@ -0,0 +1,65 @@
## இந்த நிரல் ஒரு பட்டியலில் உள்ள எண்களை Bubble Sort என்ற முறைப்படி ஏறுவரிசையிலும் பின்னர் அதையே இறங்குவரிசையிலும் அடுக்கித் தரும்
## மாதிரிக்கு நாம் ஏழு எண்களை எடுத்துக்கொள்வோம்
எண்கள் = [5, 1, 10, 8, 1, 21, 4, 2]
எண்கள்பிரதி = எண்கள்
பதிப்பி "ஆரம்பப் பட்டியல்:"
பதிப்பி எண்கள்
நீளம் = len(எண்கள்)
குறைநீளம் = நீளம் - 1
@(குறைநீளம் != -1) வரை
மாற்றம் = -1
@(எண் = 0, எண் < குறைநீளம், எண் = எண் + 1) ஆக
முதலெண் = எடு(எண்கள், எண்)
இரண்டாமெண் = எடு(எண்கள், எண் + 1)
@(முதலெண் > இரண்டாமெண்) ஆனால்
## பெரிய எண்களை ஒவ்வொன்றாகப் பின்னே நகர்த்துகிறோம்
வெளியேஎடு(எண்கள், எண்)
நுழைக்க(எண்கள், எண், இரண்டாமெண்)
வெளியேஎடு(எண்கள், எண் + 1)
நுழைக்க(எண்கள், எண் + 1, முதலெண்)
மாற்றம் = எண்
முடி
முடி
குறைநீளம் = மாற்றம்
முடி
பதிப்பி "ஏறு வரிசையில் அமைக்கப்பட்ட பட்டியல்:"
பதிப்பி எண்கள்
## இதனை இறங்குவரிசைக்கு மாற்றுவதற்கு எளிய வழி
தலைகீழ்(எண்கள்)
## இப்போது, நாம் ஏற்கெனவே எடுத்துவைத்த எண்களின் பிரதியை Bubble Sort முறைப்படி இறங்குவரிசைக்கு மாற்றுவோம்
நீளம் = len(எண்கள்பிரதி)
குறைநீளம் = நீளம் - 1
@(குறைநீளம் != -1) வரை
மாற்றம் = -1
@(எண் = 0, எண் < குறைநீளம், எண் = எண் + 1) ஆக
முதலெண் = எடு(எண்கள்பிரதி, எண்)
இரண்டாமெண் = எடு(எண்கள்பிரதி, எண் + 1)
@(முதலெண் < இரண்டாமெண்) ஆனால்
## சிறிய எண்களை ஒவ்வொன்றாகப் பின்னே நகர்த்துகிறோம்
வெளியேஎடு(எண்கள்பிரதி, எண்)
நுழைக்க(எண்கள்பிரதி, எண், இரண்டாமெண்)
வெளியேஎடு(எண்கள்பிரதி, எண் + 1)
நுழைக்க(எண்கள்பிரதி, எண் + 1, முதலெண்)
மாற்றம் = எண்
முடி
முடி
குறைநீளம் = மாற்றம்
முடி
பதிப்பி "இறங்கு வரிசையில் அமைக்கப்பட்ட பட்டியல்:"
பதிப்பி எண்கள்பிரதி

View file

@ -0,0 +1,47 @@
' version 21-10-2016
' compile with: fbc -s console
' for boundry checks on array's compile with: fbc -s console -exx
Sub bubblesort(bs() As Long)
' sort from lower bound to the highter bound
' array's can have subscript range from -2147483648 to +2147483647
Dim As Long lb = LBound(bs)
Dim As Long ub = UBound(bs)
Dim As Long done, i
Do
done = 0
For i = lb To ub -1
' replace "<" with ">" for downwards sort
If bs(i) > bs(i +1) Then
Swap bs(i), bs(i +1)
done = 1
End If
Next
Loop Until done = 0
End Sub
' ------=< MAIN >=------
Dim As Long i, array(-7 To 7)
Dim As Long a = LBound(array), b = UBound(array)
Randomize Timer
For i = a To b : array(i) = i : Next
For i = a To b ' little shuffle
Swap array(i), array(Int(Rnd * (b - a +1)) + a)
Next
Print "unsort ";
For i = a To b : Print Using "####"; array(i); : Next : Print
bubblesort(array()) ' sort the array
Print " sort ";
For i = a To b : Print Using "####"; array(i); : Next : Print
' empty keyboard buffer
While InKey <> "" : Wend
Print : Print "hit any key to end program"
Sleep
End

View file

@ -0,0 +1,13 @@
proc bubbleSort[T](a: var openarray[T]) =
var t = true
for n in countdown(a.len-2, 0):
if not t: break
t = false
for j in 0..n:
if a[j] <= a[j+1]: continue
swap a[j], a[j+1]
t = true
var a = @[4, 65, 2, -31, 0, 99, 2, 83, 782]
bubbleSort a
echo a

View file

@ -0,0 +1,21 @@
function bubble_sort(sequence s)
object tmp
integer changed
for j=length(s) to 1 by -1 do
changed = 0
for i=1 to j-1 do
if s[i]>s[i+1] then
{s[i],s[i+1],changed} = {s[i+1],s[i],1}
end if
end for
if changed=0 then exit end if
end for
return s
end function
constant s = {4, 15, "delta", 2, -31, 0, "alfa", 19, "gamma", 2, 13, "beta", 782, 1}
puts(1,"Before: ")
?s
puts(1,"After: ")
?bubble_sort(s)

View file

@ -0,0 +1,31 @@
class BubbleSort
**Sort a list with the Bubble Sort algorithm**
on start
args := program arguments
.sort(args)
print args
define sort(list) is shared
**Sort the list**
test
list := [4, 2, 7, 3]
.sort(list)
assert list = [2, 3, 4, 7]
body
last := list.count - 1
post while changed
changed := false
for i in last
if list[i] > list[i + 1]
temp := list[i]
list[i] := list[i + 1]
list[i + 1] := temp
changed := true

View file

@ -0,0 +1,18 @@
bubbleList = [4,2,1,3]
flag = 0
bubbleSort(bubbleList)
see bubbleList
func bubbleSort A
n = len(A)
while flag = 0
flag = 1
for i = 1 to n-1
if A[i] > A[i+1]
temp = A[i]
A[i] = A[i+1]
A[i+1] = temp
flag = 0
ok
next
end

View file

@ -0,0 +1,13 @@
func bubble_sort(arr) {
loop {
var swapped = false
{ |i|
if (arr[i-1] > arr[i]) {
arr[i-1, i] = arr[i, i-1]
swapped = true
}
} * arr.end
swapped || break
}
return arr
}

View file

@ -0,0 +1,12 @@
func bubbleSort<T:Comparable>(inout list:[T]) {
var done = false
while !done {
done = true
for i in 1..<list.count {
if list[i - 1] > list[i] {
(list[i], list[i - 1]) = (list[i - 1], list[i])
done = false
}
}
}
}

View file

@ -0,0 +1,14 @@
def bubble_sort:
def swap(i;j): .[i] as $x | .[i]=.[j] | .[j]=$x;
# input/output: [changed, list]
reduce range(0; length) as $i
( [false, .];
if $i > 0 and (.[0]|not) then .
else reduce range(0; (.[1]|length) - $i - 1) as $j
(.[0] = false;
.[1] as $list
| if $list[$j] > $list[$j + 1] then [true, ($list|swap($j; $j+1))]
else .
end )
end ) | .[1] ;

View file

@ -0,0 +1,5 @@
(
[3,2,1],
[1,2,3],
["G", "F", "C", "A", "B", "E", "D"]
) | bubble_sort

View file

@ -0,0 +1,4 @@
$ jq -c -n -f Bubble_sort.jq
[1,2,3]
[1,2,3]
["A","B","C","D","E","F","G"]