Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.042 c
1-1118069208
Эдик Дятлов
2005-06-06 18:46
2005.06.29
Сохранить запись, содержащую динамический массив, в файл


1-1117875986
Masta Hookah
2005-06-04 13:06
2005.06.29
Background


1-1117613658
Crazy_Diman
2005-06-01 12:14
2005.06.29
Photoshop


1-1118183356
Gopher
2005-06-08 02:29
2005.06.29
Обращение к реестру


14-1117216020
Человек
2005-05-27 21:47
2005.06.29
Авария в Сергиевом Посаде?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский