Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
356 / 124 / 3
Регистрация: 25.01.2012
Сообщений: 5,464
Записей в блоге: 118
1

Пропустить ряд индексов при установке размера элемента многомерного массива

06.10.2015, 16:29. Показов 1049. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Цитата Сообщение от volvo Посмотреть сообщение
Если когда-нибудь RTTI допилят до того уровня
Может можно было-бы упускать ряд индексов
Pascal
1
2
3
4
var
massiv: array of array of array of array of  array of integer;
begin
SetLenght massiv ([x1],[x2],[пропустить индекс],[пропустить индекс],[пропустить индекс]);
где пропустить индекс можно было-бы напрмер дав значение x3, x4 и x5 какое-то особенное, ноль нельзя...жаль, но вот в данном примере установился-бы размер третьего измерения по индексу [x1],[x2].
Это важный вопрос, заранее благодарен за помощь. Нет правда уверенности, что метод, для которого это нужно, будет применён в модуле AI, но предпосылки есть.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.10.2015, 16:29
Ответы с готовыми решениями:

Несоответствующий размер элемента при установке в зависимости от размера другого элемента
Добрый день Имеется Grid, с помощью которого формируется заголовок таблицы, под ним расположен...

Передача многомерного массива переменного размера в функцию
Как в с передается в функцию многомерный массив, чья размерность определеяется "по ходу дела"....

Передача в параметр многомерного массива произвольного размера
Пусть, например, имеется функция void Gauss(double **a, double *b, size_t n, double *x) { size_t...

Копирование многомерного массива в многомерный массив большего размера
Здравствуйте. Вопрос кажется простым но у меня с ним происходят странные проблемы. У меня есть...

2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
06.10.2015, 16:39 2
Лучший ответ Сообщение было отмечено Hretgir как решение

Решение

Ну, хоть и нельзя упускать индексы - но можно же оставить прежний размер:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var
  massiv: array of array of array of array of array of integer;
  x1, x2: integer;
begin
  SetLength(massiv, 2, 3, 4, 5, 6);
  // показываем размеры массива
  ShowMessage(Format('%d,%d,%d,%d,%d',
                     [Length(massiv),
                      Length(massiv[0]),
                      Length(massiv[0][0]),
                      Length(massiv[0][0][0]),
                      Length(massiv[0][0][0][0])
                     ])
  );
  x1 := 10;
  x2 := 7;
  SetLength(massiv,
    x1{Length(massiv)},
    x2{Length(massiv[0])},
    Length(massiv[0][0]), // оставить прежнее значение, 3-е измерение
    Length(massiv[0][0][0]), // оставить прежнее значение, 4-е измерение
    Length(massiv[0][0][0][0]) // оставить прежнее значение, 5-е измерение
    );
  // показываем новые размеры
  ShowMessage(Format('%d,%d,%d,%d,%d',
                     [Length(massiv),
                      Length(massiv[0]),
                      Length(massiv[0][0]),
                      Length(massiv[0][0][0]),
                      Length(massiv[0][0][0][0])
                     ])
  );
end;
1
356 / 124 / 3
Регистрация: 25.01.2012
Сообщений: 5,464
Записей в блоге: 118
06.10.2015, 18:19  [ТС] 3
То-есть, там где нули, могут быть и переменные равные нулю?

Добавлено через 50 секунд
а не, мы немного о разном.
массивы-то непропорциональные.
x1 и x2 - индексы. я ведь где-то задавал вопрос о том, как задать размеры элементам непропорционального многомерного массива.

Добавлено через 9 минут
Дело в том, что массив непропорциональный, так например размер третьего измерения по индексу [10], [2] может сильно отличаться от размера третьего измерения по индексу [2],[4].
ведь каждый элемент третьего ряда-массив второго ряда, то-есть у него два индекса, пусть даже массив десятимерный, индексы в двух предыдущих рядах, и вот допустим элемент massiv [1],[1] и massiv [1],[2] могут отличаться в размере, ведь они массивы

Добавлено через 5 минут
Я ведь уже спрашивал как задавать размеры элементам многомерного непропорционально массива. Я просто не могу найти ту тему. Ведь каждый элемент-полноценный массив, и у него может быть свой размер. Так если первый ряд имеет размер в пять элементов, то в нём находятся ряды разной длины (массивы разных размеров), даже в кинозалах есть ряды с разным кол-вом мест, это не ново и естественно. Я говорю о давно известном уровне техники.

Добавлено через 2 минуты
Заранее спасибо за исчерпывающий ответ.

Добавлено через 28 минут
Я премного извиняюсь, я вспомнил, хоть и не нашел, там при задании размера элемента непропорционального массива указываются индексы в его имени. Я еще раз прошу прощения, но я смартфона, вот
SetLenght (massiv [1],[2],x), где x- размер, вот надо индексы что за вторым пропустить. Еще раз извинизвиняюсь за некорректное изложение вопроса.

Добавлено через 1 минуту
Я помню, что мне отвечали про индексы в имени элемента. Это было.
0
06.10.2015, 18:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.10.2015, 18:19
Помогаю со студенческими работами здесь

Удаление элемента из многомерного массива
всеМ привет! имеется массив (иногда он одномерный, иногда многомерный), как узнать, какой он...

Передача элемента многомерного массива в функцию
Здравствуйте. Даже не знаю как правильней обозначить проблему. Вот код, там я коментами расписал...

Получить ключ элемента из многомерного массива
Есть многомерный массив такого вида: Array ( => Array ( => 140 => #708090 => S => 30 =>...

Как найти значение элемента многомерного массива?
Допустим есть массив $arr = array( 'a' => array( 'x' => '0', 'y' => '0', 'z' => '1'...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru