RosettaCodeData/Task/Arrays/FreeBASIC/arrays.basic

83 lines
2.6 KiB
Plaintext

' compile with: FBC -s console.
' compile with: FBC -s console -exx to have boundary checks.
Dim As Integer a(5) ' from s(0) to s(5)
Dim As Integer num = 1
Dim As String s(-num To num) ' s1(-1), s1(0) and s1(1)
Static As UByte c(5) ' create a array with 6 elements (0 to 5)
'dimension array and initializing it with Data
Dim d(1 To 2, 1 To 5) As Integer => {{1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}}
Print " The first dimension has a lower bound of"; LBound(d);_
" and a upper bound of"; UBound(d)
Print " The second dimension has a lower bound of"; LBound(d,2);_
" and a upper bound of"; UBound(d,2)
Print : Print
Dim Shared As UByte u(0 To 3) ' make a shared array of UByte with 4 elements
Dim As UInteger pow() ' make a variable length array
' you must Dim the array before you can use ReDim
ReDim pow(num) ' pow now has 1 element
pow(num) = 10 ' lets fill it with 10 and print it
Print " The value of pow(num) = "; pow(num)
ReDim pow(10) ' make pow a 10 element array
Print
Print " Pow now has"; UBound(pow) - LBound(pow) +1; " elements"
' the value of pow(num) is gone now
Print " The value of pow(num) = "; pow(num); ", should be 0"
Print
For i As Integer = LBound(pow) To UBound(pow)
pow(i) = i * i
Print pow(i),
Next
Print:Print
ReDim Preserve pow(3 To 7)
' the first five elements will be preserved, not elements 3 to 7
Print
Print " The lower bound is now"; LBound(pow);_
" and the upper bound is"; UBound(pow)
Print " Pow now has"; UBound(pow) - LBound(pow) +1; " elements"
Print
For i As Integer = LBound(pow) To UBound(pow)
Print pow(i),
Next
Print : Print
'erase the variable length array
Erase pow
Print " The lower bound is now"; LBound(pow);_
" and the upper bound is "; UBound(pow)
Print " If the lower bound is 0 and the upper bound is -1 it means,"
Print " that the array has no elements, it's completely removed"
Print : Print
'erase the fixed length array
Print " Display the contents of the array d"
For i As Integer = 1 To 2 : For j As Integer = 1 To 5
Print d(i,j);" ";
Next : Next : Print : Print
Erase d
Print " We have erased array d"
Print " The first dimension has a lower bound of"; LBound(d);_
" and a upper bound of"; UBound(d)
Print " The second dimension has a lower bound of"; LBound(d,2);_
" and a upper bound of"; UBound(d,2)
Print
For i As Integer = 1 To 2 : For j As Integer = 1 To 5
Print d(i,j);" ";
Next : Next
Print
Print " The elements self are left untouched but there content is set to 0"
' empty keyboard buffer
While InKey <> "" : Wend
Print : Print "hit any key to end program"
Sleep
End