![]() |
Модераторы: volvo877, Snowy, MetalFan |
![]() ![]() ![]() |
|
Kbl4AH |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: нет Всего: 15 |
Здравствуйте.
Подскажите, как описать массив неизвестной длины NxM, где N и M вводятся в процессе программы с клавиатуры? И в чем разница в описании массива так:
и так:
Это сообщение отредактировал(а) Kbl4AH - 1.12.2008, 20:00 |
||||
|
|||||
Letov |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 321 Регистрация: 22.2.2007 Где: Санкт-Петербург Репутация: нет Всего: 4 |
1) Попробуйте использовать указатели. (Указатель на начало данных, ллина данных и текущее положения конца данных) - что-то вроде динамического массива.
2) В первом случае
Вы объявляете тип данных, а во втором
переменную - массив. -------------------- Не бывает плохих языков программирования. Бывают плохие программисты... |
||||
|
|||||
Kbl4AH |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: нет Всего: 15 |
А можно по-подробнее? По-моему, все равно ругаться компилятор будет... И еще интересует максимальный размер двумерного массива... Почему ругается на следующее описание:
Это сообщение отредактировал(а) Kbl4AH - 1.12.2008, 21:10 |
||||
|
|||||
Letov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 321 Регистрация: 22.2.2007 Где: Санкт-Петербург Репутация: нет Всего: 4 |
К сожалению, в данный момент у меня нет под рукой материала на тему динамических массивов в паскале.
Вот здесь есть статья, описывающая создание одномерного динамического массива. Для создания двухмерного массива (матрицы) можно поступить следующим образом: 1) Создавать нужное колличество одномерных динамических массивов длинной M (кол-во столбцов) (строки матрицы) и заносить адреса их начала в некий динамический массив длинной N (кол-во строк). 2) Для обращения к данным использовать: Addr = str+N*L, где Addr - адрес элемента в памяти (указатель), str - адрес первого элемента строки, N - номер элемента, L - длина типа данных (т.е. количество памяти, занимаемое одной переменной данного типа даннных) Это, конечно, не идеальный вариант. Может быть кто-то подскажет более правильное и рациональное решение данной задачи. Но все же стоит попробовать. -------------------- Не бывает плохих языков программирования. Бывают плохие программисты... |
|||
|
||||
volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
Идеальных вариантов в программировании нет вообще. Хочешь идеальных решений - меняй профессию.
Оптимальный вариант приведен у тебя в пункте №1. Вот тут лежит его реализация: Динамический массив |
|||
|
||||
Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: нет Всего: 15 |
Спасибо!
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi" | |
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |