|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.09.2007, 10:40 | #1 |
Новичок
Джуниор
Регистрация: 11.09.2007
Сообщений: 2
|
Помогите новичку с массивами
Добрый день.
Вопрос в следующем: подскажите, как во время работы программы создать несколько доп. массивов, размер которых заранее не известен. В var же не возможно описать все, с чем можно столкнуться. P.S.: если можно, то желательно на примере. И еще, поделитесь ссылками на библиотеки по работе с матрицами, чтобы самому не писать коды по сложению, умножению матриц и т.д. Заранее спасибо. |
11.09.2007, 10:54 | #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...
|
11.09.2007, 11:20 | #3 |
Новичок
Джуниор
Регистрация: 11.09.2007
Сообщений: 2
|
А если массивов несколько и их количество заранее не известно, а в какой-то момент времени надо будет произвести какие-то операции с вновь созданными (сколько не известно начале работы программы) матрицами?
|
11.09.2007, 11:24 | #4 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 239
|
Создавай массив указателей тогда и храни там ссылки на вновь созданные
|
11.09.2007, 11:54 | #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...
|
11.09.2007, 13:42 | #6 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 239
|
Правда ? а я так несчитаю в плане производительсти и оптимальности...
Смотрим внутрь Varianta Код:
|
11.09.2007, 14:20 | #7 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Если в задаче не стоит пункт скорость, то Вариант удобнее всего.
Тем более современные компьютеры позволяют это удобство. Впрочем всегда можно прибегнуть к старым добрым указателям или TList
I'm learning to live...
|
11.09.2007, 14:23 | #8 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 239
|
[OFF][b]Stilet,[b] ты случаем не из ЗАО Касперского? ))
там тоже смотрю люди очень "находчивые" сидят и пишут ПО которое сжирает все ресурсы ))[/OFF] Последний раз редактировалось Ring0Sn; 11.09.2007 в 14:28. Причина: НАдО_o |
11.09.2007, 14:24 | #9 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 239
|
Ну если так то неспорю.
Последний раз редактировалось Ring0Sn; 11.09.2007 в 14:27. |
11.09.2007, 22:19 | #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 |