Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2015, 16:34   #1
fanlis
Пользователь
 
Регистрация: 13.05.2007
Сообщений: 60
Вопрос Двумерный массив констант с разной длиной

Доброго времени суток, господа!

Можно ли как-то задать двумерный массив констант с разной длиной, т.е. что-то вроде
Код:
const 
  mas: array[0..2] of array ..... of integer = ((1,2), (5,4,7,3,5), (5,4,6));
наподобие того, как задается двумерный динамический массив. И чтобы я потом мог работать с ним в цикле
Код:
for i:=0 to high(mas) do
  for j:=0 to high(mas[i]) do
    .......
fanlis вне форума Ответить с цитированием
Старый 21.04.2015, 16:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Сомневаюсь что получится...
Хотя попробуй array of array прописать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.04.2015, 18:27   #3
fanlis
Пользователь
 
Регистрация: 13.05.2007
Сообщений: 60
По умолчанию

Так как писать-то?
Я просто делал так:
Код:
Const
  mas: array[0..2] of array[0..4] of integer = ((1,2,0,0,0), (5,4,7,3,5), (5,4,6,0,0));
Код:
for i:=0 to high(mas) do
  for j:=0 to high(mas[i]) do
  begin
    if mas[i,j]=0 then break;
    .........
  end;
Но на больших массивах и если в разница в количестве элементов в строке большая, то получается много лишних нулей, что жрет память и вообще не красиво. Вот и думаю, как это лучше сделать...
fanlis вне форума Ответить с цитированием
Старый 21.04.2015, 18:30   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Можешь рассказать зачем тебе такой необразмеренный массив понадобился?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.04.2015, 19:14   #5
StriderX
Форумчанин
 
Регистрация: 21.04.2014
Сообщений: 115
По умолчанию

Цитата:
Сообщение от fanlis Посмотреть сообщение
Доброго времени суток, господа!

Можно ли как-то задать двумерный массив констант с разной длиной, т.е. что-то вроде
Код:
const 
  mas: array[0..2] of array ..... of integer = ((1,2), (5,4,7,3,5), (5,4,6));
C XE7 и выше динамические массивы получили схожий со строками синтаксис. Можно объявить переменной и заполнить его в секции инициализации модуля: arr[0] := [1, 2, 3]; arr[1] := [1, 2];
Константа всё равно после компиляции от переменной ничем не отличается. Защиту от записи можно сделать через inline аксессор.
StriderX вне форума Ответить с цитированием
Старый 22.04.2015, 08:18   #6
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

Цитата:
Сообщение от fanlis Посмотреть сообщение
Но на больших массивах и если в разница в количестве элементов в строке большая, то получается много лишних нулей, что жрет память и вообще не красиво. Вот и думаю, как это лучше сделать...
заполняй его динамически и будет размер каждой его части таким, как задашь
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Старый 22.04.2015, 11:49   #7
fanlis
Пользователь
 
Регистрация: 13.05.2007
Сообщений: 60
По умолчанию

Ну в общем понятно, задать массив как задаются константы не получится. Только через заполнение переменных.
fanlis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование в VBA: двумерный массив M на N, нужно создать новый одномерный массив TheAnnihilyator Помощь студентам 1 04.06.2014 09:16
Двумерный массив развернуть в одномерный массив по строкам[QBASIC] TrueStyle777 Помощь студентам 3 29.05.2013 21:56
Написать алгоритм, который реализует jagged массив (рваный массив с различной длиной строк), используя список списков (Pascal ABC) бабуся Помощь студентам 0 29.04.2013 00:07
Массив списков слов разной длины guest0147 Паскаль, Turbo Pascal, PascalABC.NET 3 18.03.2013 18:22
Как правильно задать строковый массив констант(символьный тип коснтант). Leshii Visual C++ 2 15.10.2012 23:49