Форум: "Начинающим";
Текущий архив: 2011.12.04;
Скачать: [xml.tar.bz2];
Вниздвумерный массив Найти похожие ветки
← →
Gu (2011-08-20 16:16) [0]никак не пойму как инициализировать 2й массив.
обычный так:
Var A1:Array[0..2] of byte=(1,2,3);
а как
Var A2:Array[0..2,0..2] of byte=(??????);
← →
Омлет © (2011-08-20 17:53) [1]Var A2:Array[0..2,0..2] of byte=((0,0,0), (1,1,1), (2,2,2));
← →
Gu (2011-08-20 18:18) [2]спасибо.
Еще такой вопрос, как присвоить это в функции (заполнить объявленый массив вручную)?
Т.е. если я объявляю это в юните после Interface то все ок, а кагда пытаюсь это сделать в локальной процедуре, пишет Cannot initialize local variables.
Function My;
Var A2:Array[0..2,0..2] of byte=((0,0,0), (1,1,1), (2,2,2));
begin
..
Так тоже не катит:
Function My;
Var
A2:Array[0..2,0..2] of byte;
begin
..
A2:=((0,0,0), (1,1,1), (2,2,2));
← →
sniknik © (2011-08-20 18:30) [3]> Cannot initialize local variables
перевожу - в локальной не катит. верь тому что пишет.
они находятся не в области данных программы, а в области стека. именно поэтому значения в локальных переменных не определены без инициализации.
← →
Gu (2011-08-20 18:35) [4]Может как то не через массив надо? Короче есть небольшая матрица (100x100) с _известными_ числами типа byte. Как их загнать в переменную и обращаться к ним (if A2[x,y]=z then...)? Массив вроде оптимально подходит, но надо чтобы он был инициализирован (заполнен) только в процедуре, которая с ним работает. Заполнять вручную (A2[x,y]:=...) муторно, способ объявления в Interface подходит, но хочу чтобы только процедура с ним работала, а не вся прога его в памяти держала.
← →
Омлет © (2011-08-20 18:36) [5]> Gu (20.08.11 18:18) [2]
type
T2DArray = array [0..2,0..2] of byte;
const
myConst2D: T2DArray = ((0,0,0), (1,1,1), (2,2,2));
function My;
var
myVar2D: T2DArray;
begin
myVar2D := myConst2D;
...
← →
Омлет © (2011-08-20 18:39) [6]> но хочу чтобы только процедура с ним работала, а не вся прога его в памяти держала.
10 Кб - нынче копейки ))
← →
Gu (2011-08-20 18:46) [7][5] - это тотже способ как в [1], данные будут загружаться в самой проге, а надо в процедуре. по поводу копеек, не согласен, в винде вон намеки на оптимизауию вообще отсутствуют, вот из за таких копеек она терь весит как чугунный мост.
еще как нить можно сделать?
← →
Омлет © (2011-08-20 18:48) [8]Тогда храни свой массив в ресурсах или отдельном файле. В процедуре загружай и выгружай.
← →
Омлет © (2011-08-20 18:50) [9]> в винде вон намеки на оптимизауию вообще отсутствуют
Кхм.. Только в приличном обществе такую чушь не ляпните.
← →
sniknik © (2011-08-20 19:09) [10]> но хочу чтобы только процедура с ним работала, а не вся прога его в памяти держала.
а если бы твоя попытка инициализации в процедуре прошла то данные тогда не в проге, а в святом духе хранились?
или в любом другом способе инициализации...
← →
sniknik © (2011-08-20 19:11) [11]> еще как нить можно сделать?
можно посидеть и почесать репу на предмет, что есть данные и откуда они берутся.
← →
Kilkennycat © (2011-08-20 19:15) [12]я уже с утра чешу репу, толку нету... не там чешу, или не ту репу?
← →
Inovet © (2011-08-20 19:19) [13]> [7] Gu (20.08.11 18:46)
> в винде вон намеки на оптимизауию вообще отсутствуют
Откуда знаешь? Хорошо изучил устройство Виндоус?
Объявление const разместит массив в области данных, локально - на стеке - его бы пришлось инициализировать компилятору каждый раз при входе в функцию.
← →
Игорь Шевченко © (2011-08-20 20:17) [14]
> в винде вон намеки на оптимизауию вообще отсутствуют, вот
> из за таких копеек она терь весит как чугунный мост.
Бред сивой кобылы
← →
Kilkennycat © (2011-08-20 21:04) [15]точно. мост из чугуна не делают.
← →
DiamondShark © (2011-08-20 23:16) [16]
> точно. мост из чугуна не делают.
Педивикия протестуэ:
Третий мост — собственно Чугунный мост — был построек в 1835 инженером П. Я. Витте. Это был арочный мост из сборных чугунных конструкций с ездой понизу.
http://ru.wikipedia.org/wiki/Чугунный_мост_(Москва)
← →
Германн © (2011-08-21 00:19) [17]
> Бред сивой кобылы
Бредить автор начал ещё раньше.
> данные будут загружаться в самой проге, а надо в процедуре
На что был дан конкретный ответ
> а если бы твоя попытка инициализации в процедуре прошла
> то данные тогда не в проге, а в святом духе хранились?
Ну а если речь идет о не о массиве из 6 байт как в примере из [0], то и тут ответ был уже дан в [8].
← →
KilkennyCat © (2011-08-21 01:07) [18]
> DiamondShark © (20.08.11 23:16) [16]
ну. но его сделали.
а я сказал - не делают.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.12.04;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.004 c