ScorpioN
offline
Опыт:
15,028Активность: |
Двумерный массив
Как реализовать 2 мерный массив? большого размера a: array[1..128,1.128] of ... и более большие? |
08.10.2007, 12:53 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
df Hunter
Нападатель
offline
Опыт:
5,749Активность: |
a[(0..81)*100+(0..90)] представь в таком виде и вписывай |
08.10.2007, 13:34 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioN
offline
Опыт:
15,028Активность: |
Цитата:
128*128=16384 лимит же 8190 ещё предложения есть? |
|
08.10.2007, 14:53 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
df Hunter
Нападатель
offline
Опыт:
5,749Активность: |
Цитата:
81*100+90=8190 вот тебе и лимит можно от начала ячейки отсчитывать то есть элемент a[80][35] это будет a[8035] a[3][94]=a[394] главное не заюзай слева больше 81, а справа при 81 больше 90, а при остальных можешь до 99 юзать другой вариант отсчитывать блоки от начала в jassnewgenpack можно такие создавать, почитай FaQ по нему, если адольф не расписал, то почитай ридми на английском впринципе разницы почти нет |
|
08.10.2007, 15:00 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
про динамические массивы я неписал это точно, но структурами можно с помощью статических методов можно сделать хоть стомерный, причем каждый индекс будет до 8190...=)
ADOLF добавил: хотя нет, хм... чет я запуталсо... ADOLF добавил: нет, всетаки можна, но щас леньки считать... короче код Код:
ADOLF добавил: хотя нет, помойму я всетаки напутал... чиорт! ADOLF добавил: а может и нед=) чет неварю седня=/ |
08.10.2007, 16:23 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
так, если обращения редкие можно кешь юзать (хотя он зло -_-)
вобщем певая строка "name"+I2S(аргумент) вторая просто I2S(аргумент) ... |
09.10.2007, 11:28 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
df Hunter
Нападатель
offline
Опыт:
5,749Активность: |
Цитата:
ну впринципе не совсем он зло, иногда он просто не заменим, но здесь можно сделать, как я писал, либо как в jass new gen pack: Код:
пример описанный там, вроде максимум можно получить матрицу 90х91 |
|
09.10.2007, 11:42 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
динам массивы - в основном для структур, что бы несокращать их размер массивом (да, в структурах возможны массивы ^_^). по сути таже разбивка, что ты писал в 2 и 4 посту...
ADOLF добавил: + по сути тот же вариант как и со структурами. |
09.10.2007, 12:01 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Harakternyk
offline
Опыт:
2,703Активность: |
В WEU (World Editor Unlimited) есть констант-функция неограниченного массива, который создётся на основе помещения в его индекс масива целочисленной глобальной переменной, индекс которой, благодаря указанной функции, являэтся почти неограниченным (допустимый период целочисленных значений в Jass составляет от -2147483647 до 2147483647). На основе примера этой функции, можно создать сколь-угодно "мерный" масив.
Код: Цитата:
|
|
09.10.2007, 12:26 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
Harakternyk да мы все идиоты включетиленьно создателя унлимитеда (Mike) и PipeDream'a Vexorian и т.д. =)
в варе массивы это динамически расширяемывая структура они инциализируютьса по мере надобности (да массивы !) и представляют из себя хеш таблицу ^^ (да да) да когда по порядку записывать инфу в 8К слотов будет больше лагов чем если это сделать наоборот (начать с 8К) можете проверить ;) т.к. инциализировать таблицу он бцдет 1 раз =) а там постоянно будет иё расширять на степень 2 (ну при 128 256 512 и т.д.) блинн ужос сотри =) я тебе напишу 8 массивов т.е. 65528 слотов =) тебе должно хватить... Код:
ну и всё тру аццовский метод =) круче нету... так теперь... i = вся зависит от тебя =) напр есть 128*128 = 16384 ну а i будет выполнятьса в виде. set i=row*128+column =) вот и всё ;) надеюсь ты разберёшся. бтв вот почему джасс рулит ! здесь решают креативные люди а не тупо программо задроты =) Отредактировано Toadcop, 09.10.2007 в 13:35. |
09.10.2007, 13:22 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
добавлю только что тс аттачит два значения, а насколько я понимаю афтору хватит и одного=)
насчет функции характерника... ну принцип остатка от деления, как в ХАТ, только никаких проверок на стак. хотя нет... вообще непонял ниче=) |
09.10.2007, 14:44 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
Цитата:
я показал пример что там можно структуры заполнять ;) 1 движением руки =) можно вообще зделать функцию без параметров а параметры тоже передавать через переменные или что то вроде =) короче всё зависит от задачи... |
|
09.10.2007, 15:52 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Harakternyk
offline
Опыт:
2,703Активность: |
Toadcop , спасибо (правда, спасибо) - за алгоритм реализации большого двухменого массива и того, чем массив в Варе является, а также оптимального способа помещения значений его индекса - не знал, ибо программированием занимаюсь недавно и нерегулярно (не всегда есть время ). Что же касается особенностей отнесения функций к констатным, а также того, что задача может определять конкретную форму функций, то я это уже знал.
Функцию, которую я выложил в этой теме я выложил необдуманно - она годится только для "неограниченных" индексов массивов (я тестировал - вроде всё нормально, хотя мог чего-то и не учесть...) и разработана она не мной, а авторами WEU, о чём я уже говорил непрямо. P.S. Считаю, что этот пост полезен тем, что подтверждает правильность (по отношению к тому, что выкладывал я) твоего алгоритма. Ещё раз спасибо |
12.12.2007, 02:13 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Elemental
Element Of Water
offline
Опыт:
1,072Активность: |
А двумерный Глобальный массив как сделать?? Что то в гуи у меня это не получилось... (вроде руки не очень кривые:) И вообще стоит ли делать один многоразрядный глобальный массив , а не кучу одномерных но также глобальных (при временами ну очень частому обращению к массиву)? |
11.11.2008, 12:30 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Цитата:
простыми средствами никак Цитата:
и что ты понимаешь под многоразрядными массивами? |
||
11.11.2008, 15:00 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
он наверно хотел сказать многомерными |
11.11.2008, 15:04 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Elemental
Element Of Water
offline
Опыт:
1,072Активность: |
Ну ошибся чуть чуть:) а на jass как? |
11.11.2008, 15:19 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|