Arrays in any programming language allow you to group a list of values of the same type. The use of arrays is that it allows you to build a list of similar type of values which are sortable, searchable and can be easily manipulated. Rexx also allows one to define arrays. These arrays can be one dimensional or multidimensional.
Rexx arrays may be sparse. That is, not every array position must have a value or even be initialized. There can be empty array positions, or slots, between those that do contain data elements. Or arrays can be dense, in which consecutive array slots all contain data elements.
In many programming languages, you must be concerned with what the subscript of the first entry in a table is. Is the first numeric subscript 0 or 1? In Rexx, the first subscript is whatever you use! So, input the first array element into position 0 or 1 as you prefer.
array_name.0 = ‘first element’
or
array_name.1 = ‘first element’
Let’s look at the different operations available for arrays.
Arrays are created with the same naming convention which is used for variables in Rexx.
The general syntax for creating arrays is as follows −
Arrayname.index = value
where
Arrayname − This is the name provided to the array.
Index − This is the index position in the array to refer to a specific element.
Value − This is the value assigned to the index element in the array.
An example of an array declaration is as follows −
Example
/* Main program */ list.1 = 0 list.2 = 0 list.3 = 0
The following points needs to be noted about the above program −
Values can be re-assigned to array elements in the same way as array elements are initialized.
The following program is an example of values which can be assigned to various index values of an existing array.
/* Main program */ list.1 = 0 list.2 = 0 list.3 = 0 /* Assigning new values to the array*/ list.1 = 10 list.3 = 30
The values of an array can be displayed by referring to the index position of the array element. The following example shows to access various elements of the array.
Example
/* Main program */ list.1 = 0 list.2 = 0 list.3 = 0 /* Assigning new values to the array*/ list.1 = 10 list.3 = 30 say list.1 say list.2 say list.3
The output of the above program will be as follows −
10 0 30
All of the elements of an array can be copied onto another array. The general syntax of this is as follows −
Newarray. = sourcearray.
where
Newarray − This is the new array in which the elements need to be copied onto.
Sourcearray − This is the source array from which the elements need to be copied.
An example on how the copy operations for arrays can be carried out is shown in the following program −
Example
/* Main program */ list.1 = 0 list.2 = 0 list.3 = 0 /* Assigning new values to the array*/ list.1 = 10 list.3 = 30 listnew. = list. say listnew.1 say listnew.2 say listnew.3
The output of the above program will be −
10 0 30
Elements of an array can also be iterated by using the iterative statements available in Rexx. An example on how this can be done is as follows −
Example
/* Main program */ list.1 = 10 list.2 = 20 list.3 = 30 number_of_elements = 3 do j = 1 to number_of_elements say list.j end
The following pointers need to be noted about the above program −
The do loop is used to iterate through the array elements.
The variable number_of_elements is used to store the number of elements in the array.
The variable j is used to iterate through each element of the array.
The output of the above program will be −
10 20 30
It was also mentioned that we can construct multi-dimensional arrays in Rexx. Let’s look at an example of how we can implement a 2-dimensional array.
Example
/* Main program */ list.1 = 10 list.1.1 = 11 list.1.2 = 12 say list.1 say list.1.1 say list.1.2
The output of the above program will be shown as follows −
10 11 12
The following point needs to be noted about the above program −
To create a multidimensional array, we can use another layer of indexing. So in our example, we used list.1.1 to create another inner array for the index value 1 of the list array.