easy.math.qsp v. 3.2.0
Операции над массивами. Страница 1
em.arr.print
Иногда необходимо просмотреть содержимое массива, или записать его в удобном виде в переменную. Для этого приходится вводить цикличиские конструкции непосредственно в код. Данная функция предназначена для того, чтобы избавить Вас от необходимости строить такие конструкции каждый раз. Достаточно указать аргументом имя массива и функция вернёт в результате столбец со значениями.
$args[
- имя массива, содержимое которого необходимо просмотреть.
0
]$args[
- управляющая конструкция. Можно использовать три команды в любых комбинациях:
1
]
-
[only result]
- выводит только содержимое массива, не показывая его названия и номера ячеек. -
[trim]
- отсекает прилегающие пробелы и символы табуляции при выводе значения элемента массива. -
[with last]
- разрешает добавление разделителя к последнему значению.
%args[
- начало и окончание вывода (кортеж с номерами элементов, с какого по какой выводить, включительно).
2
]$args[
- разделитель, который нужно поместить между значениями при режиме 3
][only result]
. По умолчанию перенос строки. Если разделитель не нужен указывается /se
Примеры вызова функции:
- выведет на экран числовые значения массива 'mass'
*pl @em.arr.print('$mass')
- выведет на экран текстовые значения массива '$mass'
*pl @em.arr.print('$mass','[only Result]')
- выведет на экран только содержимое массива '$mass'
Результаты вызова функции:
Заготовленный массив:
$a[]=' первая ячейка '
$a[]=' вторая ячейка'
$a[]=''
$a[]=(1,2,3,5,6)
$a[]=' пятая ячейка'
$a[]=''
$a[]='седьмая ячейка'
Вывод массива:
"$a[0]='нулевая ячейка'
$a[1]=' первая ячейка '
$a[2]=' вторая ячейка'
$a[3]=''
$a[4]='[1,2,3,5,6]'
$a[5]=' пятая ячейка'
$a[6]=''
$a[7]='седьмая ячейка'
"
Выводим исключительно значения массива:
"нулевая ячейка
первая ячейка
вторая ячейка
[1,2,3,5,6]
пятая ячейка
седьмая ячейка
"
Выводим значения массива с отсечением прилегающих пробелов в каждом значении:
"$a[0]='нулевая ячейка'
$a[1]='первая ячейка'
$a[2]='вторая ячейка'
$a[3]=''
$a[4]='[1,2,3,5,6]'
$a[5]='пятая ячейка'
$a[6]=''
$a[7]='седьмая ячейка'
"
Выводим исключительно значения массива, со второго по пятый элемент, включительно, с отсечением прилегающих пробелов в каждом значении; в качестве разделителя используем вертикальную черту:
"вторая ячейка||[1,2,3,5,6]|пятая ячейка"
Выводим исключительно значения массива, со второго по пятый элемент, включительно, с отсечением прилегающих пробелов в каждом значении; в качестве разделителя используем вертикальную черту; добавляем разделитель в конце:
"вторая ячейка||[1,2,3,5,6]|пятая ячейка|"
em.fewArrs.print
Данная функция позволяет выводить на экран содержимое сразу нескольких массивов, для сравнения например.
По умолчанию функция выводит содержимое всех массивов в виде таблицы, однако вывод таблицей можно отключить, использовав в последнем аргументе управляющую конструкцию [no table]
. Последним аргументом может быть как имя массива так и управляющая конструкция. Функция считает управляющей конструкцией всякую строку в последнем аргументе, в которой между непробельными символами находится пробельный (или другой недопустимый знак). Прилегающие пробелы в остальных аргументах уничтожаются, поэтому вы можете записать имя массива в аргументе скажем так " $mass "
(апострофы по правилам QSP для записи текстовых значений). Если же вы допустите в имени массива ошибку, функция известит вас об этом.
$args[
- имена массивов, содержимое которых необходимо просмотреть.0 ... 18
]
$args[
- управляющая конструкция. Записывается последним аргументом. Можно использовать следующие конструкции в любых комбинациях:18 ... 1
]
-
[only result]
- выводит только содержимое массивов, не показывая их названий и номеров ячеек. Таблица при этом на экран выводиться не будет. -
[no table]
- выводит массивы на экран, но не облекает их в таблицу. -
[range onscreen:N-M]
- указываем границы вывода, N и M — номера элементов. -
[empty:TEXT]
- Замена стандартному значению, если все массивы окажутся пустыми.
Результаты вызова функции:
Заготовленные массивы:
$a[]=' первая ячейка '
$a[]=' вторая ячейка'
$a[]=''
$a[]='четвёртая'' ячейка'
$a[]=" пятая яче'йка"
$a[]=''
$a[]='седьмая ячейка'
$b[]='нулевая ячейка'
$b[]=' первая ячейка '
$b[]=' вторая ячейка'
$b[]='3'
$b[]=(3,5,6,'string',6)
$b[]=' пятая ячейка'
$b[]='6'
$b[]='7'
Вывод двух массивов:
# | $a | $b |
0 | нулевая ячейка | нулевая ячейка |
1 | первая ячейка | первая ячейка |
2 | вторая ячейка | вторая ячейка |
3 | 3 | |
4 | четвёртая' ячейка | [3,5,6,'string',6] |
5 | пятая яче'йка | пятая ячейка |
6 | 6 | |
7 | седьмая ячейка | 7 |
Вывод двух массивов, только значения:
"нулевая ячейка нулевая ячейка
первая ячейка первая ячейка
вторая ячейка вторая ячейка
3
четвёртая' ячейка [3,5,6,'string',6]
пятая яче'йка пятая ячейка
6
седьмая ячейка 7"
Вывод двух массивов, без таблицы:
"$a[0]='нулевая ячейка' & $b[0]='нулевая ячейка'
$a[1]=' первая ячейка ' & $b[1]=' первая ячейка '
$a[2]=' вторая ячейка' & $b[2]=' вторая ячейка'
$a[3]='' & $b[3]='3'
$a[4]='четвёртая'' ячейка' & $b[4]='[3,5,6,''string'',6]'
$a[5]=' пятая яче''йка' & $b[5]=' пятая ячейка'
$a[6]='' & $b[6]='6'
$a[7]='седьмая ячейка' & $b[7]='7'"
Вывод двух пустых массивов:
"All your massives are empty."
Ошибочное написание имени массива:
"Error: Array's name is not correct. ARGS[2]: '[no table]'"
em.arr.insert
Функция для вставки элемента в массив со сдвигом вправо.
$args[
- название массива.
0
]$args[
- значение, которое хотим присвоить элементу (тип определяется по префиксу названия массива).
1
]args[
- индекс элемента, куда хотим поместить новое значение.
2
]
Результат работы функции:
Заготовленный массив:
mass[1]=668
mass[2]=413
mass[3]=765
mass[4]=478
mass[5]=205
mass[6]=701
mass[7]=272
Вставка по числовому индексу:
! теперь массив содержит следующий набор значений:
mass[0]=574
mass[1]=668
mass[2]=413
mass[3]=765
mass[4]=6
mass[5]=478
mass[6]=205
mass[7]=701
mass[8]=272
em.arr.clear
Функция для удаления из массива всех элементов с указанным значением.
$args[
- название массива.
0
]$args[
- значение, которое хотим удалить из массива.
1
]
Результат работы функции:
Заготовленный массив:
mass[1]=2
mass[2]=3
mass[3]=1
mass[4]=2
mass[5]=3
mass[6]=1
mass[7]=2
Удаляем все двойки:
mass[0]=1
mass[1]=3
mass[2]=1
mass[3]=3
mass[4]=1
em.arr.concatenate
Объединяет в общий массив кортежей значения из двух и более массивов.
$args[
- название массива, в который нужно объединить остальные (только с префиксом '%').
0
]$args[
- названия массивов, значения из которых нужно объединить в массив кортежей. Тип извлекаемых из массивов значений определяется по префиксу типа.
1 ... 18
]
Результат работы функции:
Заготовленные массивы, вызов функции и цикл для проверки:
old_mass[1]=629
old_mass[2]=541
old_mass[3]=290
old_mass[4]=852
old_mass[5]=334
old_mass[6]=318
old_mass[7]=529
$mass[0]='88ff88'
$mass[1]='ff00ff'
$mass[2]='0ff0f8'
$mass[3]='ffffff'
$mass[4]='8888ff'
$mass[5]='fff8f8'
$arr_mass[0]='голова'
$arr_mass[1]='плечи'
$arr_mass[2]='грудь'
$arr_mass[3]='живот'
$arr_mass[4]='бёдра'
$arr_mass[5]='колени'
$arr_mass[6]='икры'
$arr_mass[7]='ступни'
@em.arr.concatenate('%em_result', 'old_mass', '$mass', '$arr_mass')
loop local i,size=0,arrsize('%em_result') while i<size step i+=1:
*pl "%em_result[<<i>>]=<<%em_result[i]>>"
end
На экран выведется:
%em_result[1]=[629,'ff00ff','плечи']
%em_result[2]=[541,'0ff0f8','грудь']
%em_result[3]=[290,'ffffff','живот']
%em_result[4]=[852,'8888ff','бёдра']
%em_result[5]=[334,'fff8f8','колени']
%em_result[6]=[318,'','икры']
%em_result[7]=[529,'','ступни']
em.arr.enumerate
Генерирует массив кортежей на основе указанного массива. Каждый сгенерированный кортеж состоит из двух элементов: значение исходного массива, индекс.
$args[
- название исходного массива (тип извлекаемых значений определяется по префиксу типа в названии массива).
0
]$args[
- название целевого массива (только с префиксом '%').
1
]
Результат работы функции:
Заготовленный массив, вызов функции, цикл проверки:
old_mass[1]=250
old_mass[2]=709
old_mass[3]=413
old_mass[4]=532
old_mass[5]=779
old_mass[6]=730
old_mass[7]=565
@em.arr.enumerate('old_mass', '%em_array')
loop local i,size=0,arrsize('old_mass') while i<size step i+=1:
*pl "old_mass[<<i>>]=<<old_mass[i]>>; %em_array[<<i>>]=<<%em_array[i]>>"
end
Вывод на экран:
old_mass[1]=250; %em_array[1]=[250,1]
old_mass[2]=709; %em_array[2]=[709,2]
old_mass[3]=413; %em_array[3]=[413,3]
old_mass[4]=532; %em_array[4]=[532,4]
old_mass[5]=779; %em_array[5]=[779,5]
old_mass[6]=730; %em_array[6]=[730,6]
old_mass[7]=565; %em_array[7]=[565,7]
em.arr.few_kill
Множественное удаление элементов массива.
$args[
- название массива, в который нужно объединить остальные (только с префиксом '%').
0
]$args[
- индексы строковые, числовые, кортежи.
1 ... 18
]
Результат работы функции:
Пример вызова функции:
mass[1]=668
mass[2]=413
mass[3]=765
mass[4]=478
mass[5]=205
mass[6]=701
mass[7]=272
@em.arr.few_kill('mass', 2, 4, 5)
@em.arr.print('mass')
На экране:
mass[1] = 668
mass[2] = 765
mass[3] = 701
mass[4] = 272
Aleks Versus'Easy Libraries'2013-2024
Aleks Versus'Game Adventure Making'Really Unimaginable Stories'2013-2024