Rexx - Массивы

Массивы на любом языке программирования позволяют группировать список значений одного типа. Использование массивов заключается в том, что они позволяют вам создавать список значений аналогичного типа, которыеsortable, searchable и может быть easily manipulated. Rexx также позволяет определять массивы. Эти массивы могут быть одномерными или многомерными.

Массивы Rexx могут быть разреженными. То есть не каждая позиция массива должна иметь значение или даже быть инициализированной. Между теми, которые содержат элементы данных, могут быть пустые позиции или слоты. Или массивы могут быть плотными, в которых все последовательные слоты массива содержат элементы данных.

Во многих языках программирования вы должны беспокоиться о том, какой индекс у первой записи в таблице. Первый числовой индекс - 0 или 1? В Rexx первый индекс - это то, что вы используете! Итак, введите первый элемент массива в позицию 0 или 1, как вам удобнее.

array_name.0 = ‘first element’

или же

array_name.1 = ‘first element’

Давайте посмотрим на различные операции, доступные для массивов.

Создание массивов

Массивы создаются с тем же соглашением об именах, которое используется для переменных в Rexx.

Общий синтаксис для создания массивов следующий:

Arrayname.index = value

где

  • Arrayname - Это имя, присвоенное массиву.

  • Index - Это позиция индекса в массиве для ссылки на определенный элемент.

  • Value - Это значение, присвоенное элементу индекса в массиве.

Пример объявления массива выглядит следующим образом:

Example

/* Main program */ 
list.1 = 0 
list.2 = 0 
list.3 = 0

В отношении вышеуказанной программы необходимо отметить следующие моменты:

  • Имя массива дается в виде списка
  • Есть 3 элемента массива, которые инициализированы значением 0.

Присвоение значений элементу массива

Значения можно переназначать элементам массива таким же образом, как инициализируются элементы массива.

Следующая программа представляет собой пример значений, которые могут быть присвоены различным значениям индекса существующего массива.

/* Main program */ 
list.1 = 0 
list.2 = 0 
list.3 = 0 

/* Assigning new values to the array*/ 
list.1 = 10 
list.3 = 30

Отображение значений массива

Значения массива могут быть отображены путем обращения к позиции индекса элемента массива. В следующем примере показан доступ к различным элементам массива.

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

Результат вышеупомянутой программы будет следующим -

10
0
30

Копирование массивов

Все элементы массива можно скопировать в другой массив. Общий синтаксис этого следующий:

Newarray. = sourcearray.

где

  • Newarray - Это новый массив, в который нужно скопировать элементы.

  • Sourcearray - Это исходный массив, из которого нужно скопировать элементы.

Пример того, как могут выполняться операции копирования для массивов, показан в следующей программе -

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

Результатом вышеуказанной программы будет -

10
0
30

Итерации по элементам массива

Элементы массива также можно повторять с помощью итерационных операторов, доступных в Rexx. Пример того, как это можно сделать, выглядит следующим образом:

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

Следующие указатели необходимо отметить в отношении вышеуказанной программы -

  • В do loop используется для перебора элементов массива.

  • Переменная number_of_elements используется для хранения количества элементов в массиве.

  • В variable j используется для перебора каждого элемента массива.

Результатом вышеуказанной программы будет -

10
20
30

Двумерные массивы

Также было упомянуто, что мы можем создавать многомерные массивы в Rexx. Давайте посмотрим на пример того, как мы можем реализовать двумерный массив.

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

Результат вышеупомянутой программы будет показан следующим образом -

10
11
12

В отношении вышеупомянутой программы необходимо отметить следующее:

  • Чтобы создать многомерный массив, мы можем использовать еще один уровень индексации. Итак, в нашем примере мы использовалиlist.1.1 для создания другого внутреннего массива для значения индекса 1 массива списка.