- Вывод текста
- Программирование
- Оформление
- Расширенные возможности
- Нюансы написания игр под разные плееры
-
- x AeroQSP
- Утилиты и средства разработки
Это старая версия документа.
яблоки = 0 !эквивалентно яблоки[0] = 0
$яблоки[0]='антоновка' $яблоки[1]='белый налив' $яблоки[2]='астраханское' $яблоки[3]='ранетка' $яблоки[4]='симиренко' сорт_яблока[0] = 1 сорт_яблока[1] = 2 сорт_яблока[2] = 4 *pl $яблоки[сорт_яблока[номер_яблока]]
$любимый_сорт['иван'] = $яблоки[2] любимое_число['Алексей'] = 5 $item_loc['палка'] = 'лес'
$objs[] = 'Напильник' &! Если массив был пустой, то $objs[] = 'Топор' &! [0] = 'Напильник', $objs[] = 'Доска' &! [1] = 'Топор', [2] = 'Доска'
$a = $objs[] &! 'Доска' из примера выше a = сорт_яблока[] &! 4 из примера выше
Примечание: При добавлении в массив элемента со строковым индексом1) элемент добавляется в конец массива. Настоятельно не рекомендуется сочетать числовые и строковые индексы в пределах одного массива.
Примечание: В силу особенностей платформы числовые и текстовые массивы связаны между собой: добавление элемента в 'массив' добавляет пустой элемент в '$массив' и наоборот со всеми вытекающими последствиями.
Примечание: Настоятельно не рекомендуется использовать большие числовые индексы без необходимости.
a[0]=4 a[1]=3 a[2]=23 a[3]=15 KILLVAR 'a',1 !теперь массив выглядит так: a[0]=4 a[1]=23 a[2]=15
KILLVAR &! удаляет все переменные, массивы KILLVAR 'a' &! удаляет массив 'a' KILLVAR 'a',3 &! удалит из массива 'a' элемент с индексом 3.
COPYARR '$a','$b' COPYARR 'a','b' COPYARR $arrname1,$arrname2,10,5 COPYARR 'a<<$arrname1>>','a<<$arrname2>>'
n = ARRSIZE('a') n = ARRSIZE('$a') !Результат будет одинаковый
!Поиск строки 'This' в текстовом массиве "$A" ARRPOS(0,'$A','This') !Поиск числа 65 в массиве "A" (два элемента массива игнорируются) ARRPOS(2,'A',65) !Поиск строки 'test' среди значений массива "$B" ARRPOS('$B','test')
!Поиск строки 'This' среди элементов массива "$A" ARRCOMP(0,'A','This') !'Поиск строки, соответствующей регулярному выражению "abc\d+" (первые два элемента массива игнорируются)' ARRCOMP(2,'A','abc\d+') !'аналогично предыдущему примеру, но поиск осуществляется по всем элементам массива' ARRCOMP(0,'A','.*string.*') ARRCOMP('A','This') &! эквивалентно 1му варианту
Пример симуляции двумерного массива
! Индексы i1 0..8 i1_max=9 ! Индексы i2 0..5 i2_max=6 ! Заполнение данных массива i1=0 :ПрыгЗадатьМассив1 i2=0 :ПрыгЗадатьМассив2 $ДвумерныйМассив[i1*i2_max+i2]='[<<i1>>,<<i2>>]' i2+=1 if i2<i2_max : Jump 'ПрыгЗадатьМассив2' i1+=1 if i1<i1_max : Jump 'ПрыгЗадатьМассив1' ! Вывод данных массива i1=0 :ПрыгВыводМассива1 *Nl i2=0 :ПрыгВыводМассива2 *P $ДвумерныйМассив[i1*i2_max+i2]+' ' i2+=1 if i2<i2_max : Jump 'ПрыгВыводМассива2' i1+=1 if i1<i1_max : Jump 'ПрыгВыводМассива1' *Nl !{Результат [0,0] [0,1] [0,2] [0,3] [0,4] [0,5] [1,0] [1,1] [1,2] [1,3] [1,4] [1,5] [2,0] [2,1] [2,2] [2,3] [2,4] [2,5] [3,0] [3,1] [3,2] [3,3] [3,4] [3,5] [4,0] [4,1] [4,2] [4,3] [4,4] [4,5] [5,0] [5,1] [5,2] [5,3] [5,4] [5,5] [6,0] [6,1] [6,2] [6,3] [6,4] [6,5] [7,0] [7,1] [7,2] [7,3] [7,4] [7,5] [8,0] [8,1] [8,2] [8,3] [8,4] [8,5] } !Получение индексов масива через функцию ARRPOS $Поиск='[2,5]' i1=ARRPOS('$ДвумерныйМассив',$Поиск)/i2_max i2=ARRPOS('$ДвумерныйМассив',$Поиск) mod i2_max if ARRPOS('$ДвумерныйМассив',$Поиск)<>-1 : *Nl $Поиск+'=[<<i1>>,<<i2>>]' else *Nl 'Элемент не найден' !{Результат [2,5]=[2,5] }