Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
ВнизОбъявление предела массива Найти похожие ветки
← →
Motion © (2005-06-04 18:06) [0]При объявлении массива с количеством элементов X[1..n] необходимо сначала задать n, а n берётся с компонента spinedit.
Но сначала, объявляется массив, о потом считывается n. Можно ли зделать наоборот? Пример кода:
var n:integer;
var X: array[1..n] of real;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
n:=spinedit1.value;
end;
← →
MBo © (2005-06-04 18:13) [1]Можно использовать динамические массивы
X:array of Double;
...
SetLength(X,spinedit1.value);
нумерация с нуля!
← →
Motion © (2005-06-04 18:14) [2]А можно с 1-цы?
← →
Anatoly Podgoretsky © (2005-06-04 18:19) [3]Motion © (04.06.05 18:14) [2]
А зачем? Можешь эмулировать.
← →
KilkennyCat © (2005-06-04 18:21) [4]нет, но что мешает использовать нужный коэффициент при обращении к элементу? n[x+k], где k = 1 в требуемом случае. Разумеется, необходимо также учитывать, что некорректное обращение к последнему элементу вызовет ошибку.
← →
KilkennyCat © (2005-06-04 18:22) [5][4] - фигня.
можно просто неиспользовать нулевой элемент.
← →
Motion © (2005-06-04 18:26) [6]Получилось как посоветовал MBo, а теперь необходимо обратится не к нулевому а к первому элементу.
← →
Anatoly Podgoretsky © (2005-06-04 18:43) [7]Motion © (04.06.05 18:26) [6]
Как обращался к нулевому?
← →
begin...end © (2005-06-04 18:54) [8]> Motion © (04.06.05 18:06)
type
TMyArray = array [1..MaxInt div sizeof(Real)] of Real;
var
X: ^TMyArray;
N: Integer;
begin
N := ...;
GetMem(X, N * sizeof(Real));
try
X[1] := ...
...
finally
FreeMem(X)
end
end.
Недостаток: необходимо строго следить за корректностью индексов массива.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.048 c