Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.01.29;
Скачать: [xml.tar.bz2];

Вниз

Динамический массив   Найти похожие ветки 

 
Tonich ©   (2006-01-14 22:28) [0]

Вопрос в следующем ))
необходимо создать двумерную матрица NxN хде N>4000
так вот Setlenght() конечно создает потобную веСЧ но очень уж долго, как это сделать быстрее а?


 
VirEx ©   (2006-01-14 22:32) [1]

http://matrix.kladovka.net.ru/ Система матричных вычислений MatriX


 
PAVIA ©   (2006-01-14 23:07) [2]

procedure TForm1.Button1Click(Sender: TObject);
var a:array of array of byte;
t1,t2:integer;
begin
t1:=GetTickCount;
setlength(a,4000,4000);
t2:=GetTickCount;
caption:="ok "+inttostr(t2-t1);
end;
Работате быстро 32 милисекунды.
Можно через
GetMem(p,4000*4000);
Работает быстро мгновенно.
Но если делать очистку памяти
fillchar(p^,4000*4000,0);
То по скорости будет оналогично
setlength


 
Tonich ©   (2006-01-14 23:12) [3]

ну вообщето меня не интересует матричные вычисления, меня интересует выделение памяти...


 
Tonich ©   (2006-01-14 23:16) [4]


> PAVIA ©   (14.01.06 23:07) [2]

нее byte у меня тоже шустро, я забыл уточнить тип массива extended

вот он долго


 
з. танька   (2006-01-14 23:38) [5]


> Tonich ©   (14.01.06 23:16) [4]

ну GetMem делай, в чем проблема..


 
Tonich ©   (2006-01-14 23:49) [6]

да проблем нет с одномерным массивом.
а овт двумерных, это ж по сути в памяти он одномерный так?
тоесть если я хочу получить элемент a[1][1] то это в массиве созданным с помошью getmem(p,...) это будит p^[2]?  я прально понимаю?


 
з. танька   (2006-01-15 00:28) [7]

неправильно... точнее, структура твоего массива в памяти может быть любой, т.е. ты сам решаешь, по какому смещению какой элемент у тебя будет храниться, и получаешь к ним доступ соответственно.

но обычно у людей элемент [1, 1] находится по адресу Pointer(Dword(@начало) + (1*w + 1)*SizeOf(тип_элемента)), где w - "ширина" твово массива..


 
Tonich ©   (2006-01-15 00:49) [8]


> неправильно... точнее, структура твоего массива в памяти
> может быть любой, т.е. ты сам решаешь, по какому смещению
> какой элемент у тебя будет храниться, и получаешь к ним
> доступ соответственно.

ну это понятно

а вот за это пасибо
> но обычно у людей элемент [1, 1] находится по адресу Pointer(Dword(@начало)
> + (1*w + 1)*SizeOf(тип_элемента)), где w - "ширина" твово
> массива..


 
Loginov Dmitry ©   (2006-01-15 18:02) [9]


> VirEx ©   (14.01.06 22:32) [1]
>
> http://matrix.kladovka.net.ru/ Система матричных вычислений
> MatriX


LOL :))


 
VirEx ©   (2006-01-15 18:23) [10]


>  [9] Loginov Dmitry ©   (15.01.06 18:02)

сам ты лол


 
Loginov Dmitry ©   (2006-01-15 19:14) [11]

Но я же со смайликом :)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.01.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.038 c
2-1136886694
Term
2006-01-10 12:51
2006.01.29
Округление


8-1124723116
nuser
2005-08-22 19:05
2006.01.29
Доступ к тегам mp3-файла


15-1136561056
Барлог(с)
2006-01-06 18:24
2006.01.29
Чат в локальной сети. Какой поставить?


15-1136379634
lookin
2006-01-04 16:00
2006.01.29
Напомните плз, как восстановить в Win2k только что удаленный файл


15-1136042090
Gydvin
2005-12-31 18:14
2006.01.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
Английский Французский Немецкий Итальянский Португальский Русский Испанский