![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 11.09.2007
Сообщений: 2
|
![]()
Добрый день.
Вопрос в следующем: подскажите, как во время работы программы создать несколько доп. массивов, размер которых заранее не известен. В var же не возможно описать все, с чем можно столкнуться. P.S.: если можно, то желательно на примере. И еще, поделитесь ссылками на библиотеки по работе с матрицами, чтобы самому не писать коды по сложению, умножению матриц и т.д. Заранее спасибо. |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Ну мона воспользоваться типом Variant :
Создать в нем массив мона так (из Хелпа) var A: Variant; begin A := VarArrayCreate([0, 4], varinteger); A[0] := 1; A[1] := 1234.5678; end;
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 11.09.2007
Сообщений: 2
|
![]()
А если массивов несколько и их количество заранее не известно, а в какой-то момент времени надо будет произвести какие-то операции с вновь созданными (сколько не известно начале работы программы) матрицами?
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 239
|
![]()
Создавай массив указателей тогда и храни там ссылки на вновь созданные
|
![]() |
![]() |
![]() |
#5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Совсем необязательно работать с указателями
Есди заглянеш в хелп то увидиш там такой примерчик : var A: Variant; begin A := VarArrayCreate([0, 4], varVariant); A[0] := 1; A[1] := 1234.5678; A[2] := 'Hello world'; A[3] := True; A[4] := VarArrayOf([1, 10, 100, 1000]); // Это создание массива в элементе №4. WriteLn(A[2]); { Hello world } WriteLn(A[4][2]); { 100 } end; Вообще Variant штука весьма полезная. ты можеш в любой момент создавать дополнительные массивы в контексте главного или удалять ненужные элементы без особых проблем
I'm learning to live...
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 239
|
![]()
Правда ? а я так несчитаю в плане производительсти и оптимальности...
Смотрим внутрь Varianta Код:
|
![]() |
![]() |
![]() |
#7 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Если в задаче не стоит пункт скорость, то Вариант удобнее всего.
Тем более современные компьютеры позволяют это удобство. Впрочем всегда можно прибегнуть к старым добрым указателям или TList
I'm learning to live...
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 239
|
![]()
[OFF][b]Stilet,[b] ты случаем не из ЗАО Касперского?
![]() там тоже смотрю люди очень "находчивые" сидят и пишут ПО которое сжирает все ресурсы ))[/OFF] Последний раз редактировалось Ring0Sn; 11.09.2007 в 14:28. Причина: НАдО_o |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 239
|
![]()
Ну если так то неспорю.
Последний раз редактировалось Ring0Sn; 11.09.2007 в 14:27. |
![]() |
![]() |
![]() |
#10 | |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
а почему не сделать проще, динамический многомерный массив на одно измерение больший чем те что для работы, вот и клепай их потом сколько надо
Цитата:
![]()
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите с массивами пожалуйста | neomaximus | Помощь студентам | 5 | 08.07.2008 17:48 |
Помогите с массивами в Делфи | _Alise_ | Помощь студентам | 11 | 21.06.2008 22:17 |
помогите с массивами | Ibmsystem | Помощь студентам | 1 | 21.04.2008 08:10 |
Помогите с массивами | Юль_кА | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 10.04.2008 08:39 |