Вниз
Скачать: 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.024 c
1-1117613658
Crazy_Diman
2005-06-01 12:14
2005.06.29
Photoshop


8-1109848229
Сашка2
2005-03-03 14:10
2005.06.29
Обтравка изображения


6-1112392985
Muh
2005-04-02 02:03
2005.06.29
Почему у флешгета получается, а у меня нет :)


1-1117720904
NightStranger
2005-06-02 18:01
2005.06.29
Простой вопрос по ДЛЛ


1-1117771200
Frozzen
2005-06-03 08:00
2005.06.29
Выбор цвета графика




   Наверх