![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
В Delphi точно нет конструктора массивов?
Franzy © (2009-06-02 15:11:00)Запарился уже массивы поэлементно назначать. Знаю, что константу-массив можно объявлять (типа a: array [1..3] of byte = (1,2,3)). А есть ли аналогичные конструкторы для массивов-неконстант? В Фортране можно, например, писать x(5:7) = (/1,2,3/), и тогда 5,6 и 7 элементу массива х будут назначены значения, соответственно, 1, 2 и 3. В Дельфях есть что-нибудь подобное?
QAZ (2009-06-11 12:29:00) [1]
> А есть ли аналогичные конструкторы для массивов-неконстант?
>
это должна быть глобальная переменная
Palladin (2009-06-11 12:18:00) [2]Хотя сдается мне что ты просто не знаешь Паскаля.
Type
TAOf3B=Array [1..3] of byte;
Const
a:TAOf3B = (1,2,3);
var
x:TAOf3B;
begin
x:=a;
end;
Palladin (2009-06-11 12:16:00) [3]
> x[1]:=10;
> x[2]:=2;
> x[3]:=7;
Это - назначение констант. Которое так и оформляется:
Const
x: array [1..3] of byte = (1,2,3)
в чем проблемы?
Franzy (2009-06-11 12:04:00) [4]2Германн
Причем здесь лень? Согласитесь, что писать
x=(/10,2,7/)
гораздо удобнее, чем
x[1]:=10;
x[2]:=2;
x[3]:=7;
sniknik (2009-06-03 10:47:00) [5]> трудно представить себе задание вручную массива в тысячу элементов
реальность круче всего что можно себе представить...
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1243356829&n=18
> пишит что использовано слишком много констант (примерно так) это ошибка
Sapersky (2009-06-03 10:35:00) [6]Чтобы использовать заполненный таким образом массив вне процедуры, куда он передается, надо изрядно поломать голову
Ну я думал, копировать его в другой (динамический, например) массив.
С т.з. производительности, конечно, не блестяще, тем более что открытый массив ещё предварительно заталкивается в стек, но для небольших объёмов (трудно представить себе задание вручную массива в тысячу элементов) приемлемо.
Германн (2009-06-03 02:38:00) [7]
> Franzy (02.06.09 15:11)
>
> Запарился уже массивы поэлементно назначать.
Лень матушка!
> MBo © (02.06.09 15:32) [3]
>
> процедуру с таким функционалом написать нетрудно
>
И даже очень не трудно. Но нужно "мозгами поворочить". И что-то самому сделать.
Нат (2009-06-03 02:25:00) [8]Чтобы использовать заполненный таким образом массив вне процедуры, куда он передается, надо изрядно поломать голову
Sapersky (2009-06-02 21:01:00) [9]Для открытых массивов (при передаче в процедуру) есть конструкторы.
Help/Object Pascal(Delphi) Reference/Procedures and functions/Calling procedures and functions/Open array constructors
Лёша (2009-06-02 15:54:00) [10]Для динамических есть.
D: TIntegerDynArray;
...
D := TIntegerDynArray.Create(1, 2, 3);
Delphi 2007
MBo (2009-06-02 15:32:00) [11]процедуру с таким функционалом написать нетрудно
clickmaker (2009-06-02 15:26:00) [12]Разве что для вариантных массивов: VarArrayOf
Palladin (2009-06-02 15:14:00) [13]точно