Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.01.2009, 17:58
street85 street85 вне форума
Прохожий
 
Регистрация: 26.11.2008
Сообщения: 9
Репутация: 10
По умолчанию полный перебор значений в массиве

Добрый день!
Помогите решить задачу с полным перебором всех значений, в массиве типа:
Код:
type
recData = record
  number: integer;
  numberId: integer;
  countId: integer;
end;
var
a: a: array of recData;

где number это значение
numberId начало группы в массиве
countId количество элементов в группе.

пример:
number, numberId, countId
данные:
Код:
6, 0, 1
3, 1, 2
2, 1, 2
4, 3, 3
1, 3, 3
5, 3, 3
в итоге получается 3-и группы:
Код:
(1)
6, 0, 1

(2)
3, 1, 2
2, 1, 2

(3)
4, 3, 3
1, 3, 3
5, 3, 3

и теперь нужно составить такой перебор, что в начале сделов перебор одного элемент в одной группе сделать полный перебор в другой и т.д.,
т.е получится такие значения:
Код:
6, 6, 6, 6..............6, 6..............

3, 3, 3, 3..............2, 2..............
2, 2, 2, 2..............3, 3..............

4, 4, 5, 5..............4, 4..............
1, 5, 1, 4..............1, 5..............
5, 1, 4, 1..............5, 1..............
Ответить с цитированием
  #2  
Старый 15.01.2009, 18:41
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Из написанного понял следующее:
1. Есть некоторая структура данных.
2. Эти структуры группируются по второму полю (по начальному элементу - что за элемент непонятно). Вот тут может неправ, но по представленным данным либо группировка по налаьному элементу, либо по длинне. Логичнее предположить, что по начальному элементу.

А вот дальше что делать - не понял. Раскрой алгоритм поподробнее.
Ответить с цитированием
  #3  
Старый 15.01.2009, 20:56
street85 street85 вне форума
Прохожий
 
Регистрация: 26.11.2008
Сообщения: 9
Репутация: 10
По умолчанию

1-e поле это данные (от них ничего не зависит)
2-е поле это начало группы в массиве данных
3-е поле это количество элементов

2 и 3 поле прасчитывается программой
массив данных начинается от "0"

т.е например если поле такое:
6, 0, 1
6 - значение (ничего от него не зависит)
0 - первое положение элемента в массиве
1 - количество элементов

3, 1, 2
3 - значение (ничего от него не зависит)
1 - первое положение элемента в массиве
2 - количество элементов

2, 1, 2
2 - значение (ничего от него не зависит)
1 - первое положение элемента в массиве
2 - количество элементов

и т.д.

2-е и 3-е поле создано чтобы разграничить группы

Последний раз редактировалось street85, 15.01.2009 в 20:59.
Ответить с цитированием
  #4  
Старый 15.01.2009, 21:47
street85 street85 вне форума
Прохожий
 
Регистрация: 26.11.2008
Сообщения: 9
Репутация: 10
По умолчанию

а затем нужно перебрать все возможные комбинации в группах.

а как хотябы сделать перебор в динамическом массиве?

Последний раз редактировалось Admin, 17.01.2009 в 13:45.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:58.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter