diff --git a/01_introduction_to_algorithms/gambas/01_binary_search/.gambas/BINARY_SEARCH b/01_introduction_to_algorithms/gambas/01_binary_search/.gambas/BINARY_SEARCH new file mode 100644 index 0000000..ce35fb3 Binary files /dev/null and b/01_introduction_to_algorithms/gambas/01_binary_search/.gambas/BINARY_SEARCH differ diff --git a/01_introduction_to_algorithms/gambas/01_binary_search/.project b/01_introduction_to_algorithms/gambas/01_binary_search/.project new file mode 100644 index 0000000..e1d77ba --- /dev/null +++ b/01_introduction_to_algorithms/gambas/01_binary_search/.project @@ -0,0 +1,7 @@ +# Gambas Project File 3.0 +# Compiled with Gambas 3.5.4 +Title=01_binary_search +Startup=binary_search +Version=0.0.1 +TabSize=2 +Packager=1 diff --git a/01_introduction_to_algorithms/gambas/01_binary_search/.src/binary_search.module b/01_introduction_to_algorithms/gambas/01_binary_search/.src/binary_search.module new file mode 100644 index 0000000..1139129 --- /dev/null +++ b/01_introduction_to_algorithms/gambas/01_binary_search/.src/binary_search.module @@ -0,0 +1,27 @@ +' Gambas module file + +Function binary_search(list As Float[], item As Float) As Variant + Dim low, high, Midd, guess As Float + low = 0 + high = list.Length - 1 + While low <= high + Midd = (low + high) + guess = list[Midd] + If guess = item Then + Return Midd + Else If guess > item Then + high = Midd - 1 + Else + low = Midd + 1 + Endif + Wend + Return Null +End + +Public Sub Main() + +Dim my_list As New Float[] +my_list = [1, 3, 5, 7, 9] +Print binary_search(my_list, 3) '1 +Print binary_search(my_list, -1) 'null +End diff --git a/01_introduction_to_algorithms/gambas/01_binary_search/.startup b/01_introduction_to_algorithms/gambas/01_binary_search/.startup new file mode 100644 index 0000000..fb00008 --- /dev/null +++ b/01_introduction_to_algorithms/gambas/01_binary_search/.startup @@ -0,0 +1,7 @@ +binary_search +01_binary_search +0 +0 +0.0.1 + + diff --git a/02_selection_sort/gambas/01_selection_sort/.gambas/MMAIN b/02_selection_sort/gambas/01_selection_sort/.gambas/MMAIN new file mode 100644 index 0000000..2470841 Binary files /dev/null and b/02_selection_sort/gambas/01_selection_sort/.gambas/MMAIN differ diff --git a/02_selection_sort/gambas/01_selection_sort/.project b/02_selection_sort/gambas/01_selection_sort/.project new file mode 100644 index 0000000..9dfb7d9 --- /dev/null +++ b/02_selection_sort/gambas/01_selection_sort/.project @@ -0,0 +1,4 @@ +# Gambas Project File 3.0 +Title=01_selection_sort +Startup=MMain + diff --git a/02_selection_sort/gambas/01_selection_sort/.src/MMain.module b/02_selection_sort/gambas/01_selection_sort/.src/MMain.module new file mode 100644 index 0000000..f7202c7 --- /dev/null +++ b/02_selection_sort/gambas/01_selection_sort/.src/MMain.module @@ -0,0 +1,40 @@ +' Gambas module file + +Function findSmallest(arr As Float[]) As Integer + Dim smallest As Float + Dim i, smallest_index As Integer + smallest_index = 0 + smallest = arr[0] + For i = 1 To arr.Length - 1 + If arr[i] < smallest Then + smallest = arr[i] + smallest_index = i + Endif + Next + Return smallest_index + +End +Function selectionSort(arr As Float[]) As Float[] +Dim newArr As New Float[] +Dim smallest, i As Integer +Dim element As Float +For i = 0 To arr.Length - 1 + smallest = findSmallest(arr) + newArr.Push(arr[smallest]) + arr.Remove(smallest) +Next + + Return newArr + +End +Public Sub Main() +Dim r As New Float[] +Dim element As Float +Dim i As Integer +r = [5, 3, 6, 2, 10] +r = selectionSort(r) + +For Each element In r + Print element + Next +End diff --git a/02_selection_sort/gambas/01_selection_sort/.startup b/02_selection_sort/gambas/01_selection_sort/.startup new file mode 100644 index 0000000..57688ad --- /dev/null +++ b/02_selection_sort/gambas/01_selection_sort/.startup @@ -0,0 +1,7 @@ +MMain +01_selection_sort +0 +0 + + + diff --git a/03_recursion/gambas/01_countdown/.gambas/COUNTDOWN b/03_recursion/gambas/01_countdown/.gambas/COUNTDOWN new file mode 100644 index 0000000..4520e3b Binary files /dev/null and b/03_recursion/gambas/01_countdown/.gambas/COUNTDOWN differ diff --git a/03_recursion/gambas/01_countdown/.project b/03_recursion/gambas/01_countdown/.project new file mode 100644 index 0000000..dba132c --- /dev/null +++ b/03_recursion/gambas/01_countdown/.project @@ -0,0 +1,7 @@ +# Gambas Project File 3.0 +# Compiled with Gambas 3.5.4 +Title=01_countdown +Startup=countdown +Version=0.0.1 +TabSize=2 +Packager=1 diff --git a/03_recursion/gambas/01_countdown/.src/countdown.module b/03_recursion/gambas/01_countdown/.src/countdown.module new file mode 100644 index 0000000..b678ac2 --- /dev/null +++ b/03_recursion/gambas/01_countdown/.src/countdown.module @@ -0,0 +1,15 @@ +' Gambas module file + +Function countdown(i As Integer) As Integer + Print i + If i <= 0 Then + Return + Else + countdown(i - 1) + Endif + +End + +Public Sub Main() +countdown(5) +End diff --git a/03_recursion/gambas/01_countdown/.startup b/03_recursion/gambas/01_countdown/.startup new file mode 100644 index 0000000..8cdff83 --- /dev/null +++ b/03_recursion/gambas/01_countdown/.startup @@ -0,0 +1,7 @@ +countdown +01_countdown +0 +0 +0.0.1 + + diff --git a/03_recursion/gambas/02_greet/.gambas/GREET b/03_recursion/gambas/02_greet/.gambas/GREET new file mode 100644 index 0000000..1221b6c Binary files /dev/null and b/03_recursion/gambas/02_greet/.gambas/GREET differ diff --git a/03_recursion/gambas/02_greet/.project b/03_recursion/gambas/02_greet/.project new file mode 100644 index 0000000..ae4605a --- /dev/null +++ b/03_recursion/gambas/02_greet/.project @@ -0,0 +1,7 @@ +# Gambas Project File 3.0 +# Compiled with Gambas 3.5.4 +Title=02_greet +Startup=greet +Version=0.0.1 +TabSize=2 +Packager=1 diff --git a/03_recursion/gambas/02_greet/.src/greet.module b/03_recursion/gambas/02_greet/.src/greet.module new file mode 100644 index 0000000..c832d23 --- /dev/null +++ b/03_recursion/gambas/02_greet/.src/greet.module @@ -0,0 +1,17 @@ +' Gambas module file + +Function greet2(name As String) + Print "how are you, "; name; "?" +End +Function bye() + Print "ok bye!" +End +Function greet(name As String) + Print "hello, "; name; "!" + greet2(name) + Print "getting ready to say bye..." + bye() +End +Public Sub Main() +greet("adit") +End diff --git a/03_recursion/gambas/02_greet/.startup b/03_recursion/gambas/02_greet/.startup new file mode 100644 index 0000000..41914a6 --- /dev/null +++ b/03_recursion/gambas/02_greet/.startup @@ -0,0 +1,7 @@ +greet +02_greet +0 +0 +0.0.1 + + diff --git a/03_recursion/gambas/03_factorial/.gambas/FACTORIAL b/03_recursion/gambas/03_factorial/.gambas/FACTORIAL new file mode 100644 index 0000000..e94fd99 Binary files /dev/null and b/03_recursion/gambas/03_factorial/.gambas/FACTORIAL differ diff --git a/03_recursion/gambas/03_factorial/.project b/03_recursion/gambas/03_factorial/.project new file mode 100644 index 0000000..c173127 --- /dev/null +++ b/03_recursion/gambas/03_factorial/.project @@ -0,0 +1,7 @@ +# Gambas Project File 3.0 +# Compiled with Gambas 3.5.4 +Title=03_factorial +Startup=factorial +Version=0.0.1 +TabSize=2 +Packager=1 diff --git a/03_recursion/gambas/03_factorial/.src/factorial.module b/03_recursion/gambas/03_factorial/.src/factorial.module new file mode 100644 index 0000000..d07db70 --- /dev/null +++ b/03_recursion/gambas/03_factorial/.src/factorial.module @@ -0,0 +1,14 @@ +' Gambas module file + +Function fact(x As Float) As Float + If x = 1 Then + Return 1 + Else + Return x * fact(x - 1) + Endif + +End + +Public Sub Main() +Print fact(5) +End diff --git a/03_recursion/gambas/03_factorial/.startup b/03_recursion/gambas/03_factorial/.startup new file mode 100644 index 0000000..cf39bb4 --- /dev/null +++ b/03_recursion/gambas/03_factorial/.startup @@ -0,0 +1,7 @@ +factorial +03_factorial +0 +0 +0.0.1 + + diff --git a/04_quicksort/gambas/01_loop_sum/.gambas/LOOP_SUM b/04_quicksort/gambas/01_loop_sum/.gambas/LOOP_SUM new file mode 100644 index 0000000..733ee3e Binary files /dev/null and b/04_quicksort/gambas/01_loop_sum/.gambas/LOOP_SUM differ diff --git a/04_quicksort/gambas/01_loop_sum/.project b/04_quicksort/gambas/01_loop_sum/.project new file mode 100644 index 0000000..0bf242b --- /dev/null +++ b/04_quicksort/gambas/01_loop_sum/.project @@ -0,0 +1,7 @@ +# Gambas Project File 3.0 +# Compiled with Gambas 3.5.4 +Title=01_loop_sum +Startup=loop_sum +Version=0.0.1 +TabSize=2 +Packager=1 diff --git a/04_quicksort/gambas/01_loop_sum/.src/loop_sum.module b/04_quicksort/gambas/01_loop_sum/.src/loop_sum.module new file mode 100644 index 0000000..300abb1 --- /dev/null +++ b/04_quicksort/gambas/01_loop_sum/.src/loop_sum.module @@ -0,0 +1,15 @@ +' Gambas module file + +Function sum(arr As Integer[]) As Integer + Dim total, x As Integer + total = 0 + For x = 0 To arr.Length - 1 + total += arr[x] + Next + Return total + +End + +Public Sub Main() + Print sum([1, 2, 3, 4, 5]) +End diff --git a/04_quicksort/gambas/01_loop_sum/.startup b/04_quicksort/gambas/01_loop_sum/.startup new file mode 100644 index 0000000..4c13197 --- /dev/null +++ b/04_quicksort/gambas/01_loop_sum/.startup @@ -0,0 +1,7 @@ +loop_sum +01_loop_sum +0 +0 +0.0.1 + + diff --git a/04_quicksort/gambas/02_recursive_count/.gambas/RECURSIVE_COUNT b/04_quicksort/gambas/02_recursive_count/.gambas/RECURSIVE_COUNT new file mode 100644 index 0000000..bf99e0d Binary files /dev/null and b/04_quicksort/gambas/02_recursive_count/.gambas/RECURSIVE_COUNT differ diff --git a/04_quicksort/gambas/02_recursive_count/.project b/04_quicksort/gambas/02_recursive_count/.project new file mode 100644 index 0000000..14e78f2 --- /dev/null +++ b/04_quicksort/gambas/02_recursive_count/.project @@ -0,0 +1,7 @@ +# Gambas Project File 3.0 +# Compiled with Gambas 3.5.4 +Title=02_recursive_count +Startup=recursive_count +Version=0.0.1 +TabSize=2 +Packager=1 diff --git a/04_quicksort/gambas/02_recursive_count/.src/recursive_count.module b/04_quicksort/gambas/02_recursive_count/.src/recursive_count.module new file mode 100644 index 0000000..02b94b3 --- /dev/null +++ b/04_quicksort/gambas/02_recursive_count/.src/recursive_count.module @@ -0,0 +1,13 @@ +' Gambas module file + +Function count(list As Float[]) As Float + If list.Length = 0 Then + Return 0 + Endif + Return 1 + count(list.Copy(1, list.Length - 1)) + +End + +Public Sub Main() +Print count([0, 1, 2, 3, 4, 5]) '6 +End diff --git a/04_quicksort/gambas/02_recursive_count/.startup b/04_quicksort/gambas/02_recursive_count/.startup new file mode 100644 index 0000000..2c0591a --- /dev/null +++ b/04_quicksort/gambas/02_recursive_count/.startup @@ -0,0 +1,7 @@ +recursive_count +02_recursive_count +0 +0 +0.0.1 + + diff --git a/04_quicksort/gambas/02_recursive_sum/.gambas/RECURSIVE_SUM b/04_quicksort/gambas/02_recursive_sum/.gambas/RECURSIVE_SUM new file mode 100644 index 0000000..024503b Binary files /dev/null and b/04_quicksort/gambas/02_recursive_sum/.gambas/RECURSIVE_SUM differ diff --git a/04_quicksort/gambas/02_recursive_sum/.project b/04_quicksort/gambas/02_recursive_sum/.project new file mode 100644 index 0000000..2a90afe --- /dev/null +++ b/04_quicksort/gambas/02_recursive_sum/.project @@ -0,0 +1,7 @@ +# Gambas Project File 3.0 +# Compiled with Gambas 3.5.4 +Title=02_recursive_sum +Startup=recursive_sum +Version=0.0.1 +TabSize=2 +Packager=1 diff --git a/04_quicksort/gambas/02_recursive_sum/.src/recursive_sum.module b/04_quicksort/gambas/02_recursive_sum/.src/recursive_sum.module new file mode 100644 index 0000000..28ce3d8 --- /dev/null +++ b/04_quicksort/gambas/02_recursive_sum/.src/recursive_sum.module @@ -0,0 +1,13 @@ +' Gambas module file + +Function sum(list As Float[]) As Float + If list.Length = 0 Then + Return 0 + Endif + Return list[0] + sum(list.Copy(1, list.Length - 1)) + +End + +Public Sub Main() +Print sum([1, 2, 3, 4]) +End diff --git a/04_quicksort/gambas/02_recursive_sum/.startup b/04_quicksort/gambas/02_recursive_sum/.startup new file mode 100644 index 0000000..ac65d88 --- /dev/null +++ b/04_quicksort/gambas/02_recursive_sum/.startup @@ -0,0 +1,7 @@ +recursive_sum +02_recursive_sum +0 +0 +0.0.1 + + diff --git a/04_quicksort/gambas/04_recursive_max/.gambas/RECURSIVE_MAX b/04_quicksort/gambas/04_recursive_max/.gambas/RECURSIVE_MAX new file mode 100644 index 0000000..4ecc46a Binary files /dev/null and b/04_quicksort/gambas/04_recursive_max/.gambas/RECURSIVE_MAX differ diff --git a/04_quicksort/gambas/04_recursive_max/.project b/04_quicksort/gambas/04_recursive_max/.project new file mode 100644 index 0000000..2f675b3 --- /dev/null +++ b/04_quicksort/gambas/04_recursive_max/.project @@ -0,0 +1,7 @@ +# Gambas Project File 3.0 +# Compiled with Gambas 3.5.4 +Title=04_recursive_max +Startup=recursive_max +Version=0.0.1 +TabSize=2 +Packager=1 diff --git a/04_quicksort/gambas/04_recursive_max/.src/recursive_max.module b/04_quicksort/gambas/04_recursive_max/.src/recursive_max.module new file mode 100644 index 0000000..4229f07 --- /dev/null +++ b/04_quicksort/gambas/04_recursive_max/.src/recursive_max.module @@ -0,0 +1,25 @@ +' Gambas module file + +Function mymax(list As Float[]) As Float + Dim sub_max As Float + + If list.Length = 2 Then + If list[0] > list[1] Then + Return list[0] + Else + Return list[1] + Endif + Endif + sub_max = mymax(list.Copy(1, list.Length - 1)) + If list[0] > sub_max Then + Return list[0] + Else + Return sub_max + Endif + +End + +Public Sub Main() +Print mymax([1, 5, 10, 25, 16, 1]) '25 + +End diff --git a/04_quicksort/gambas/04_recursive_max/.startup b/04_quicksort/gambas/04_recursive_max/.startup new file mode 100644 index 0000000..809725c --- /dev/null +++ b/04_quicksort/gambas/04_recursive_max/.startup @@ -0,0 +1,7 @@ +recursive_max +04_recursive_max +0 +0 +0.0.1 + + diff --git a/04_quicksort/gambas/05_quicksort/.gambas/QUICKSORT b/04_quicksort/gambas/05_quicksort/.gambas/QUICKSORT new file mode 100644 index 0000000..5ae3c4e Binary files /dev/null and b/04_quicksort/gambas/05_quicksort/.gambas/QUICKSORT differ diff --git a/04_quicksort/gambas/05_quicksort/.lock b/04_quicksort/gambas/05_quicksort/.lock new file mode 100644 index 0000000..e69de29 diff --git a/04_quicksort/gambas/05_quicksort/.project b/04_quicksort/gambas/05_quicksort/.project new file mode 100644 index 0000000..e19a56a --- /dev/null +++ b/04_quicksort/gambas/05_quicksort/.project @@ -0,0 +1,7 @@ +# Gambas Project File 3.0 +# Compiled with Gambas 3.5.4 +Title=05_quicksort +Startup=quicksort +Version=0.0.1 +TabSize=2 +Packager=1 diff --git a/04_quicksort/gambas/05_quicksort/.src/quicksort.module b/04_quicksort/gambas/05_quicksort/.src/quicksort.module new file mode 100644 index 0000000..b2bca85 --- /dev/null +++ b/04_quicksort/gambas/05_quicksort/.src/quicksort.module @@ -0,0 +1,39 @@ +' Gambas module file + +Function quicksort(myarray As Float[]) As Float[] + Dim pivot As Float + Dim i As Integer + Dim less, greater, r As New Float[] + If myarray.Length < 2 Then + Return myarray + Else + pivot = myarray[0] + For i = 1 To myarray.Length - 1 + If myarray[i] <= pivot Then + less.add(myarray[i]) + Else + greater.add(myarray[i]) + End If + Next + + Endif + r.Insert(quicksort(less)) + r.Add(pivot) + r.Insert(quicksort(greater)) + Return r +End + + +Public Sub Main() +Dim myarray As Float[] +Dim element As Float +Dim x As Integer + +myarray = [10, 5, 2, 3] +myarray = quicksort(myarray) + +For Each element In myarray + Print element + Next + +End diff --git a/04_quicksort/gambas/05_quicksort/.startup b/04_quicksort/gambas/05_quicksort/.startup new file mode 100644 index 0000000..50abe05 --- /dev/null +++ b/04_quicksort/gambas/05_quicksort/.startup @@ -0,0 +1,7 @@ +quicksort +05_quicksort +0 +0 +0.0.1 + +