Вниз
Скачать: CL | DM;

Объявление предела массива   Найти похожие ветки 

 
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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
4-1115131189
Misha aka Programmer
2005-05-03 18:39
2005.06.29
Проблема с окнами


3-1116408719
_e_u_
2005-05-18 13:31
2005.06.29
Вредный, простой скуэль запрос:


14-1117471924
Cerberus
2005-05-30 20:52
2005.06.29
Новый значёк


14-1117953775
lookin
2005-06-05 10:42
2005.06.29
Кто на фото?


1-1118129890
ORMADA
2005-06-07 11:38
2005.06.29
DragDrop




   Наверх