Что нового

Как определить массив?

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Lexx98, ты путаешь многомерный массив с массивом массивов.

Код:
Dim $arr[5][6][7]


Это читается так (с лева на право): массив, состоит из 5 элементов, каждый элемент которого состоит из 6 элементов, которые в свою очередь состоят состоят из 7 элементов каждый. Т.е. можно записать так:

Код:
Dim $K[7]
Dim $J[6] = [$K0, $K1, ... $K5]
Dim $I[5] = [$J0, $J1, ... $J4]
 

Lexx98

Продвинутый
Сообщения
272
Репутация
73
Yashied, записи, приведенные в твоём последнем посте, идентичны? Обе правильны и работают?

Просто в поставленной Belfigorом задаче я вижу две подзадачи. Блин, не помню правильных слов... В общем, сначала задаётся размерность массива, а потом заполняются его элементы.
С заданием размерности у человека проблемы нет. А вот с заполнением элементов есть. Именно это я и пытался объяснить так понятно и наглядно, как мог.
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Самая главная задача научиться заполнять массив в одну строку, через пару часов приду домой начну снова раскуривать сию тему
107.gif
 

Lexx98

Продвинутый
Сообщения
272
Репутация
73
В одну строку? Не, я себе мозг ломать так не хочу, и тебе не советую. :shok:
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Lexx98 сказал(а):
Yashied, записи, приведенные в твоём последнем посте, идентичны? Обе правильны и работают?

С логической точки зрения - да, они идентичны. С точки зрения AutoIt - это разные вещи. Собственно для программиста они будут различаться только в доступе к элементам массива(ов). В первом случае:

Код:
Dim $Arr[5][6][7]

$Data = $Arr[$i][$j][$k]


Для второго:

Код:
Dim $ArrK[7]
Dim $ArrJ[6] = [$ArrK0, $ArrK1, ... $ArrK5]
Dim $ArrI[5] = [$ArrJ0, $ArrJ1, ... $ArrJ4]

$ArrJ = $ArrI[$i]
$ArrK = $ArrJ[$j]
$Data = $ArrK[$k]
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Yashied сказал(а):
Lexx98, ты путаешь многомерный массив с массивом массивов.
эм. а с точки зрения тензорного исчисления, разве не так и есть? :smile:
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
У меня такой возник вопрос:
Я имею два массива, первый выглядит так:
Код:
Dim $Var[5][2][61] =[[[000, 001, 002, 003], [010, 011, 012, 013]], [[100, $HT[0] --9, $HT[0] --9 , $HT[0] --9, $HT[0] --8, $HT[0] --8, $HT[0] --6 , $HT[0] --6 , $HT[0] --4 , $HT[0] --4 , $HT[0] --1 , $HT[0] -0 , $HT[0] -2 , $HT[0] -4 , $HT[0] -7 , $HT[0] -9 , $HT[0] -11 , $HT[0] -14 , $HT[0] -16 , $HT[0] -19 , $HT[0] -22 , $HT[0] -26, $HT[0] -29, $HT[0] -32, $HT[0] -35, $HT[0] -39, $HT[0] -42, $HT[0] -46, $HT[0] -50, $HT[0] -54, $HT[0] -56, $HT[0] -61, $HT[0] -64, $HT[0] -68, $HT[0] -71, $HT[0] -74, $HT[0] -78, $HT[0] -82, $HT[0] -85, $HT[0] -88, $HT[0] -91, $HT[0] -95, $HT[0] -98, $HT[0] -100, $HT[0] -103, $HT[0] -106, $HT[0] -108, $HT[0] -111, $HT[0] -113, $HT[0] -115, $HT[0] -117, $HT[0] -119, $HT[0] -120, $HT[0] -122, $HT[0] -123, $HT[0] -123, $HT[0] -123, $HT[0] -125, $HT[0] -125, $HT[0] -126, $HT[0] -126], [110, $HT[1] -59, $HT[1] -62, $HT[1] -66, $HT[1] -69, $HT[1] -73, $HT[1] -76, $HT[1] -80, $HT[1] -83, $HT[1] -87, $HT[1] -89, $HT[1] -93, $HT[1] -96, $HT[1] -99, $HT[1] -101, $HT[1] -104, $HT[1] -107, $HT[1] -109, $HT[1] -112, $HT[1] -114, $HT[1] -116, $HT[1] -117, $HT[1] -119, $HT[1] -120, $HT[1] -122, $HT[1] -123, $HT[1] -124, $HT[1] -124, $HT[1] -126, $HT[1] -125, $HT[1] -125, $HT[1] -125, $HT[1] -126, $HT[1] -125, $HT[1] -124, $HT[1] -124, $HT[1] -122, $HT[1] -122, $HT[1] -120, $HT[1] -118, $HT[1] -117, $HT[1] -116, $HT[1] -114, $HT[1] -111, $HT[1] -109, $HT[1] -107, $HT[1] -104, $HT[1] -102, $HT[1] -99, $HT[1] -96, $HT[1] -93, $HT[1] -90, $HT[1] -86, $HT[1] -83, $HT[1] -80, $HT[1] -80, $HT[1] -76, $HT[1] -73, $HT[1] -69, $HT[1] -66, $HT[1] -62]], [[200, $HT[0] --1,$HT[0] -0,$HT[0] -0,$HT[0] -1,$HT[0] -1,$HT[0] -1,$HT[0] -2,$HT[0] -3,$HT[0] -6, $HT[0] -5,$HT[0] -8,$HT[0] -9,$HT[0] -12,$HT[0] -14,$HT[0] -15,$HT[0] -18,$HT[0] -20,$HT[0] -22,$HT[0] -25,$HT[0] -27,$HT[0] -30,$HT[0] -33,$HT[0] -36,$HT[0] -39,$HT[0] -42,$HT[0] -45,$HT[0] -48,$HT[0] -51,$HT[0] -54,$HT[0] -57,$HT[0] -60,$HT[0] -63,$HT[0] -66,$HT[0] -69,$HT[0] -72,$HT[0] -75,$HT[0] -78,$HT[0] -81,$HT[0] -84,$HT[0] -87,$HT[0] -89,$HT[0] -92,$HT[0] -95,$HT[0] -97,$HT[0] -99,$HT[0] -102,$HT[0] -104,$HT[0] -107,$HT[0] -108,$HT[0] -111,$HT[0] -110,$HT[0] -113,$HT[0] -114,$HT[0] -115,$HT[0] -116,$HT[0] -117,$HT[0] -118,$HT[0] -119,$HT[0] -118,$HT[0] -118], [210, $HT[1] -59,$HT[1] -62,$HT[1] -65,$HT[1] -68,$HT[1] -71,$HT[1] -74,$HT[1] -77,$HT[1] -80,$HT[1] -82, $HT[1] -86, $HT[1] -88, $HT[1] -91, $HT[1] -93, $HT[1] -95, $HT[1] -98, $HT[1] -100, $HT[1] -102, $HT[1] -104, $HT[1] -106, $HT[1] -108, $HT[1] -109, $HT[1] -110, $HT[1] -112, $HT[1] -113, $HT[1] -114, $HT[1] -115, $HT[1] -115, $HT[1] -116, $HT[1] -116, $HT[1] -116, $HT[1] -116, $HT[1] -116, $HT[1] -116, $HT[1] -116, $HT[1] -115, $HT[1] -114, $HT[1] -113, $HT[1] -112, $HT[1] -111, $HT[1] -109, $HT[1] -107, $HT[1] -106, $HT[1] -105, $HT[1] -102, $HT[1] -100, $HT[1] -98, $HT[1] -96, $HT[1] -94, $HT[1] -91, $HT[1] -89, $HT[1] -85, $HT[1] -83, $HT[1] -80, $HT[1] -77, $HT[1] -74, $HT[1] -71, $HT[1] -68, $HT[1] -65, $HT[1] -62, $HT[1] -59]], [[300, $HT[0] -9,$HT[0] -9,$HT[0] -9,$HT[0] -9,$HT[0] -10,$HT[0] -10,$HT[0] -11,$HT[0] -12,$HT[0] -14, $HT[0] -14, $HT[0] -16, $HT[0] -17, $HT[0] -19, $HT[0] -20, $HT[0] -22, $HT[0] -24, $HT[0] -26, $HT[0] -28, $HT[0] -30, $HT[0] -32, $HT[0] -35, $HT[0] -37, $HT[0] -39, $HT[0] -42, $HT[0] -44, $HT[0] -47, $HT[0] -49, $HT[0] -52, $HT[0] -55, $HT[0] -57, $HT[0] -60, $HT[0] -62, $HT[0] -65, $HT[0] -68, $HT[0] -70, $HT[0] -73, $HT[0] -75, $HT[0] -77, $HT[0] -80, $HT[0] -83, $HT[0] -85, $HT[0] -87, $HT[0] -89, $HT[0] -91, $HT[0] -93, $HT[0] -95, $HT[0] -97, $HT[0] -98, $HT[0] -100, $HT[0] -102, $HT[0] -103, $HT[0] -106, $HT[0] -106, $HT[0] -106, $HT[0] -108, $HT[0] -108, $HT[0] -106, $HT[0] -109, $HT[0] -108, $HT[0] -109], [310, $HT[1] -59,$HT[1] -61,$HT[1] -64,$HT[1] -67,$HT[1] -69,$HT[1] -72,$HT[1] -74,$HT[1] -77,$HT[1] -79, $HT[1] -82, $HT[1] -84, $HT[1] -86, $HT[1] -88, $HT[1] -90, $HT[1] -92, $HT[1] -94, $HT[1] -96, $HT[1] -97, $HT[1] -99, $HT[1] -100, $HT[1] -101, $HT[1] -103, $HT[1] -104, $HT[1] -105, $HT[1] -105, $HT[1] -106, $HT[1] -107, $HT[1] -107, $HT[1] -107, $HT[1] -107, $HT[1] -107, $HT[1] -107, $HT[1] -107, $HT[1] -107, $HT[1] -106, $HT[1] -106, $HT[1] -104, $HT[1] -102, $HT[1] -102, $HT[1] -102, $HT[1] -100, $HT[1] -99, $HT[1] -97, $HT[1] -95, $HT[1] -94, $HT[1] -92, $HT[1] -90, $HT[1] -88, $HT[1] -86, $HT[1] -84, $HT[1] -82, $HT[1] -80, $HT[1] -77, $HT[1] -74, $HT[1] -72, $HT[1] -69, $HT[1] -66, $HT[1] -64, $HT[1] -61, $HT[1] -59]], [[400, $HT[0] - 59,$HT[0] - 50,$HT[0] - 43,$HT[0] - 38,$HT[0] - 35,$HT[0] - 35,$HT[0] - 37,$HT[0] - 43,$HT[0] - 50, $HT[0] - 58, $HT[0] - 67, $HT[0] - 75, $HT[0] - 80, $HT[0] - 83, $HT[0] - 82, $HT[0] - 79, $HT[0] - 74, $HT[0] - 67], [410, $HT[1] - 81,$HT[1] - 79,$HT[1] - 75,$HT[1] - 69,$HT[1] - 61,$HT[1] - 52,$HT[1] - 45,$HT[1] - 38,$HT[1] - 34, $HT[1] - 32, $HT[1] - 34, $HT[1] - 38, $HT[1] - 44, $HT[1] - 53, $HT[1] - 61, $HT[1] - 69, $HT[1] - 75, $HT[1] - 79]]]

Второй выглядит так:
Код:
Dim $Var[5][2][61]=[[[000,001,002,003],[010,011,012,013]],[[100,--9,--9,--9,--8,--8,--6,--6,--4,--4,--1,-0,-2,-4,-7,-9,-11,-14,-16,-19,-22,-26,-29,-32,-35,-39,-42,-46,-50,-54,-56,-61,-64,-68,-71,-74,-78,-82,-85,-88,-91,-95,-98,-100,-103,-106,-108,-111,-113,-115,-117,-119,-120,-122,-123,-123,-123,-125,-125,-126,-126],[110,-59,-62,-66,-69,-73,-76,-80,-83,-87,-89,-93,-96,-99,-101,-104,-107,-109,-112,-114,-116,-117,-119,-120,-122,-123,-124,-124,-126,-125,-125,-125,-126,-125,-124,-124,-122,-122,-120,-118,-117,-116,-114,-111,-109,-107,-104,-102,-99,-96,-93,-90,-86,-83,-80,-80,-76,-73,-69,-66,-62]],[[200,--1,-0,-0,-1,-1,-1,-2,-3,-6,-5,-8,-9,-12,-14,-15,-18,-20,-22,-25,-27,-30,-33,-36,-39,-42,-45,-48,-51,-54,-57,-60,-63,-66,-69,-72,-75,-78,-81,-84,-87,-89,-92,-95,-97,-99,-102,-104,-107,-108,-111,-110,-113,-114,-115,-116,-117,-118,-119,-118,-118],[210,-59,-62,-65,-68,-71,-74,-77,-80,-82,-86,-88,-91,-93,-95,-98,-100,-102,-104,-106,-108,-109,-110,-112,-113,-114,-115,-115,-116,-116,-116,-116,-116,-116,-116,-115,-114,-113,-112,-111,-109,-107,-106,-105,-102,-100,-98,-96,-94,-91,-89,-85,-83,-80,-77,-74,-71,-68,-65,-62,-59]],[[300,-9,-9,-9,-9,-10,-10,-11,-12,-14,-14,-16,-17,-19,-20,-22,-24,-26,-28,-30,-32,-35,-37,-39,-42,-44,-47,-49,-52,-55,-57,-60,-62,-65,-68,-70,-73,-75,-77,-80,-83,-85,-87,-89,-91,-93,-95,-97,-98,-100,-102,-103,-106,-106,-106,-108,-108,-106,-109,-108,-109],[310,-59,-61,-64,-67,-69,-72,-74,-77,-79,-82,-84,-86,-88,-90,-92,-94,-96,-97,-99,-100,-101,-103,-104,-105,-105,-106,-107,-107,-107,-107,-107,-107,-107,-107,-106,-106,-104,-102,-102,-102,-100,-99,-97,-95,-94,-92,-90,-88,-86,-84,-82,-80,-77,-74,-72,-69,-66,-64,-61,-59]],[[400,-59,-50,-43,-38,-35,-35,-37,-43,-50,-58,-67,-75,-80,-83,-82,-79,-74,-67],[410,-81,-79,-75,-69,-61,-52,-45,-38,-34,-32,-34,-38,-44,-53,-61,-69,-75,-79]]]


Они абсолютно идентичны по размеру, за исключением того что в первом массиве в каждом значении используется так же массив $HT.

Половину примерно 60-70% массива я могу задать с указанием в каждом значении того самого массива $HT, далее же он начинает мне писать что "Ошибка", если я удаляю часть значений из конца массива, то я могу еще несколько значений указать с использованием массива $HT, в итоге получается что я не могу задать ВЕСЬ массив используя в его значениях массив $HT, получается вот это:
Код:
Dim $Var[5][2][61] =[[[000, 001, 002, 003], [010, 011, 012, 013]], [[100, $HT[0] --9 ,$HT[0] --9 ,$HT[0] --9 ,$HT[0] --8 ,$HT[0] --8 ,$HT[0] --6 ,$HT[0] --6 ,$HT[0] --4 ,$HT[0] --4 ,$HT[0] --1 ,$HT[0] -0 ,$HT[0] -2 ,$HT[0] -4 ,$HT[0] -7 ,$HT[0] -9 ,$HT[0] -11 ,$HT[0] -14 ,$HT[0] -16 ,$HT[0] -19 ,$HT[0] -22 ,$HT[0] -26,$HT[0] -29,$HT[0] -32,$HT[0] -35,$HT[0] -39,$HT[0] -42,$HT[0] -46,$HT[0] -50,$HT[0] -54,$HT[0] -56,$HT[0] -61,$HT[0] -64,$HT[0] -68,$HT[0] -71,$HT[0] -74,$HT[0] -78,$HT[0] -82,$HT[0] -85,$HT[0] -88,$HT[0] -91,$HT[0] -95,$HT[0] -98,$HT[0] -100,$HT[0] -103,$HT[0] -106,$HT[0] -108,$HT[0] -111,$HT[0] -113,$HT[0] -115,$HT[0] -117,$HT[0] -119,$HT[0] -120,$HT[0] -122,$HT[0] -123,$HT[0] -123,$HT[0] -123,$HT[0] -125,$HT[0] -125,$HT[0] -126,$HT[0] -126], [110, $HT[1] -59,$HT[1] -62,$HT[1] -66,$HT[1] -69,$HT[1] -73,$HT[1] -76,$HT[1] -80,$HT[1] -83,$HT[1] -87,$HT[1] -89,$HT[1] -93,$HT[1] -96,$HT[1] -99,$HT[1] -101,$HT[1] -104,$HT[1] -107,$HT[1] -109,$HT[1] -112,$HT[1] -114,$HT[1] -116,$HT[1] -117,$HT[1] -119,$HT[1] -120,$HT[1] -122,$HT[1] -123,$HT[1] -124,$HT[1] -124,$HT[1] -126,$HT[1] -125,$HT[1] -125,$HT[1] -125,$HT[1] -126,$HT[1] -125,$HT[1] -124,$HT[1] -124,$HT[1] -122,$HT[1] -122,$HT[1] -120,$HT[1] -118,$HT[1] -117,$HT[1] -116,$HT[1] -114,$HT[1] -111,$HT[1] -109,$HT[1] -107,$HT[1] -104,$HT[1] -102,$HT[1] -99,$HT[1] -96,$HT[1] -93,$HT[1] -90,$HT[1] -86,$HT[1] -83,$HT[1] -80,$HT[1] -80,$HT[1] -76,$HT[1] -73,$HT[1] -69,$HT[1] -66,$HT[1] -62]], [[200, $HT[0] --1,$HT[0] -0,$HT[0] -0,$HT[0] -1,$HT[0] -1,$HT[0] -1,$HT[0] -2,$HT[0] -3,$HT[0] -6,$HT[0] -5,$HT[0] -8,$HT[0] -9,$HT[0] -12,$HT[0] -14,$HT[0] -15,$HT[0] -18,$HT[0] -20,$HT[0] -22,$HT[0] -25,$HT[0] -27,$HT[0] -30,$HT[0] -33,$HT[0] -36,$HT[0] -39,$HT[0] -42,$HT[0] -45,$HT[0] -48,$HT[0] -51,$HT[0] -54,$HT[0] -57,$HT[0] -60,$HT[0] -63,$HT[0] -66,$HT[0] -69,$HT[0] -72,$HT[0] -75,$HT[0] -78,$HT[0] -81,$HT[0] -84,$HT[0] -87,$HT[0] -89,$HT[0] -92,$HT[0] -95,$HT[0] -97,$HT[0] -99,$HT[0] -102,$HT[0] -104,$HT[0] -107,$HT[0] -108,$HT[0] -111,$HT[0] -110,$HT[0] -113,$HT[0] -114,$HT[0] -115,$HT[0] -116,$HT[0] -117,$HT[0] -118,$HT[0] -119,$HT[0] -118,$HT[0] -118], [210, $HT[1] -59,$HT[1] -62,$HT[1] -65,$HT[1] -68,$HT[1] -71,$HT[1] -74,$HT[1] -77,$HT[1] -80,$HT[1] -82,$HT[1] -86,$HT[1] -88,$HT[1] -91,$HT[1] -93,$HT[1] -95,$HT[1] -98,$HT[1] -100,$HT[1] -102,$HT[1] -104,$HT[1] -106,$HT[1] -108,$HT[1] -109,$HT[1] -110,$HT[1] -112,$HT[1] -113,$HT[1] -114,$HT[1] -115,$HT[1] -115,$HT[1] -116,$HT[1] -116,$HT[1] -116,$HT[1] -116,$HT[1] -116,$HT[1] -116,$HT[1] -116,$HT[1] -115,$HT[1] -114,$HT[1] -113,$HT[1] -112,$HT[1] -111,$HT[1] -109,$HT[1] -107,$HT[1] -106,$HT[1] -105,$HT[1] -102,$HT[1] -100,$HT[1] -98,$HT[1] -96,$HT[1] -94,$HT[1] -91,$HT[1] -89,$HT[1] -85,$HT[1] -83,$HT[1] -80,$HT[1] -77,$HT[1] -74,$HT[1] -71,$HT[1] -68,$HT[1] -65,$HT[1] -62,$HT[1] -59]], [[300, $HT[0] -9,$HT[0] -9,$HT[0] -9,$HT[0] -9,$HT[0] -10,$HT[0] -10,$HT[0] -11,$HT[0] -12,$HT[0] -14,$HT[0] -14,$HT[0] -16,$HT[0] -17,$HT[0] -19,$HT[0] -20,$HT[0] -22,$HT[0] -24,$HT[0] -26,$HT[0] -28,$HT[0] -30,$HT[0] -32,$HT[0] -35,$HT[0] -37,$HT[0] -39,$HT[0] -42,$HT[0] -44,$HT[0] -47,$HT[0] -49,$HT[0] -52,$HT[0] -55,$HT[0] -57,$HT[0] -60,$HT[0] -62,$HT[0] -65,$HT[0] -68,$HT[0] -70,$HT[0] -73,$HT[0] -75,$HT[0] -77,$HT[0] -80,$HT[0] -83,$HT[0] -85,$HT[0] -87,$HT[0] -89,$HT[0] -91,$HT[0] -93,$HT[0] -95,$HT[0] -97,$HT[0] -98,$HT[0] -100,$HT[0] -102,$HT[0] -103,$HT[0] -106,$HT[0] -106,$HT[0] -106,$HT[0] -108,$HT[0] -108,$HT[0] -106,-109,-108,-109], [310, $HT[1] -59, 312, 313, 314, 315, 316, 317, 318, 319, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160]], [[400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018], [410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118]]]


Если я еще несколько ячеек определяю через отношение к $HT он начинает выдавать ошибку. С чем это связано?
 

SyDr

Сидра
Сообщения
651
Репутация
158
MAX_LINESIZE 4095 Maximum size for a line of script.
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Вот засада то
102.gif


А можно ли один и тот же массив задать по средством двух строк? например от [ноль][ноль][ноль] до [2][1][60] задать одной строкой, а от [3][0][0] до [4][1][60] задать второй строкой? Но чтобы это так и остался один и тот же массив $var?
 

SyDr

Сидра
Сообщения
651
Репутация
158
Да чем тебе так не нравится обчное присвоение? Оно, возможно, даже быстрее работать будет. Не придёться такую строчку парсить.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
эм... а как насчет разбить строку?
к примерму
Код:
Local $aArray[2][2] = [ _
[1, 2], _
[2, 1] _
]

подробнее - Help -> Language Reference -> Comments
или
Help -> Search -> Underscore -> первая ссылка
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
kaster « Ответ #30, Отправлен: Сегодня в 08:45:28 »
а как насчет разбить строку?
Это тоже самое, считается длина строки одной переменной.

P.S
По теме - мне кажется если дело доходит до 3-ёх мерного и более массива, то что-то спроектировано не правильно, обычно 2-ух мерного вполне достаточно.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
[quote author=CreatoR]
Это тоже самое, считается длина строки одной переменной.
P.S
...[/quote]
о как. буду знать
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Обычное присвоение это типа такого?
Код:
$Var[1][0][1] = $HT[0] --9 
$Var[1][1][1] = $HT[1] -59
$Var[1][0][2] = $HT[0] --9 

$Var[2][0][1] = $HT[0] --1
$Var[2][1][1] = $HT[1] -59
$Var[2][0][2] = $HT[0] -0

$Var[3][0][1] = $HT[0] -9
$Var[3][1][1] = $HT[1] -59
$Var[3][0][2] = $HT[0] -9

$Var[4][0][1] = $HT[0] - 59
$Var[4][1][1] = $HT[1] - 81
$Var[4][0][2] = $HT[0] - 50
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
CreatoR сказал(а):
По теме - мне кажется если дело доходит до 3-ёх мерного и более массива, то что-то спроектировано не правильно, обычно 2-ух мерного вполне достаточно.

Полностью согласен.

Belfigor, а для чего тебе собственно понадобился 3-x массив? Я просто любопытный. :smile:
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Вот, используется для поиска:
Код:
For $i = 1 To 4 Step 1
		If $i = 4 Then
			$nStart = 1
			$nEnd = 18
		Else
			$nStart = 1
			$nEnd = 60
		EndIf
		Do
			$nCurrent = Floor(($nStart + $nEnd) / 2)
			If _IsRed($i, $nCurrent) Then
				$nEnd = $nCurrent - 1
			Else
				$nStart = $nCurrent + 1
			EndIf
		Until $nStart > $nEnd
Next
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
И где здесь массив?
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Ой, вот функция _IsRed:
Код:
Func _IsRed($a, $Coord)
		If TrimarkColor("0x"&Hex(PixelGetColor($HT[0]+$HUD[$a][0][$Coord], $HT[1]+$HUD[$a][1][$Coord]), 6)) < 100 Then Return False
		Return True
EndFunc
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Я еще раз повторюсь, что 3-x массивы нужны только для очень узкого круга специфических задач. И уж точно поиск чего бы то ни было (в контексте твоей деятельности) сюда не входит. Постараюсь объяснить еще раз. Представь себе кубик Рубика, только полностью состоящий из разноцветных кубиков.

kinder_stroy_7.png

Эту конструкцию можно однозначно определить с помощью 3-x массива.

Код:
Dim $Cube[3][3][3]


где каждый элемент этого массива будет содержать цвет соответствующего кубика. Согласен? Теперь представь, что каждый кубик сделан из разного материала, например один сделан из дерева, другой из железа, третий из урана :smile: и т.д. В этом случае ты наверное захочешь сделать 4-x массив, но это неправильно. Материал кубика - это всего лишь еще одно его свойство наравне с цветом, а не дополнительное измерение. Поэтому, нам просто нужно в оду ячейку массива впихнуть два значения: цвет и материал. Т.е. каждый элемент массива $Cube будет содержать одномерный массив, состоящий из двух элементов (ну или каким нибудь другим способом). Понимаешь к чему я клоню?

Как ни крути, а ты работаешь в данном случае с двухмерным пространством и 3-x массивы для него противопоказаны :smile:. Конечно можно замутить 3-x или 4-x массивы, но тогда этот топик никогда не закончиться, я думаю :smile: .
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Ну раз массив уже готов то изменять его я думаю не буду, в следующий раз массив в массиве попробую :smile:
 
Верх