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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2011, 16:46   #1
java_91
Пользователь
 
Регистрация: 11.11.2008
Сообщений: 32
По умолчанию Динамическое вложение циклов

Здравствуйте. Подскажите пожалуйста как реализовать динамическое вложение массивов, например:
for i[index] to cout1 do
for i[index+1] to cout2 do
for i[index+2] to cout3 do
// и так далее до index+n
end;
end;
end;

Заранее большое спасибо.
java_91 вне форума Ответить с цитированием
Старый 31.01.2011, 16:52   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

рекурсия ?
vovk вне форума Ответить с цитированием
Старый 31.01.2011, 17:02   #3
java_91
Пользователь
 
Регистрация: 11.11.2008
Сообщений: 32
По умолчанию

да скорее всего. Спасибо что сказали как это называется
java_91 вне форума Ответить с цитированием
Старый 31.01.2011, 17:09   #4
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Да не за что))
vovk вне форума Ответить с цитированием
Старый 01.02.2011, 12:42   #5
java_91
Пользователь
 
Регистрация: 11.11.2008
Сообщений: 32
По умолчанию

Не получается что то с рекурсией =(
Код:
var
  Form1: TForm1;
  i : array [1..10] of integer ;
  n, index, k : integer;
implementation

{$R *.dfm}
procedure TForm1.recurs(Sender: TObject);
Begin
  k := k+1;
  index := index+1;
  for i[index]:=1 to n do
    Begin
    StringGrid1.Cells[index,k];
    if index <= n then
      recurs(Sender);
    end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
k := 0;
index := 0;
n := StrToInt(Edit1.Text);
recurs(Sender);
end;
Выдает ошибку "pas(37): For loop control variable mast be simple local variable"
java_91 вне форума Ответить с цитированием
Старый 01.02.2011, 13:00   #6
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

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

На счёт ошибки, это не ошибка а предупреждение, о том что вы используете глобальные переменные в цикле, ошибка будет при использовании, вы будете обращатся к несуществующим элементам.

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

Последний раз редактировалось vovk; 01.02.2011 в 13:03.
vovk вне форума Ответить с цитированием
Старый 01.02.2011, 14:49   #7
java_91
Пользователь
 
Регистрация: 11.11.2008
Сообщений: 32
По умолчанию

условие задачи такое. есть неопределенное количество связанных таблиц.
в одной связке БД их может быть 2 а в другой 5. Надо организовать экспорт в эксель так что бы например:
Вид1
группа1
Наименование1
Наименование2
группа2
Наименование3
Вид2
группа3
Наименование4
Наименование5
Наименование6
и тд.
Но например у некоторых связок видов не предусмотрено есть только группы и наименования, а у некоторых еще добавляется и типы.
Для этого я думал реализовать как цикл в рекурсии:
for - цикл для 1 колонки (Вид)
begin
записываем название 1 колонки (вида)
если больше то опять на себя но колонка увеличивается на 1 (колонка 2 - группа)
end
P.S. Простите за корявый язык, я но я сам толком не очень понимаюб как это реализовать.
java_91 вне форума Ответить с цитированием
Старый 01.02.2011, 15:01   #8
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Честное слово ничего не понял((
vovk вне форума Ответить с цитированием
Старый 01.02.2011, 15:21   #9
java_91
Пользователь
 
Регистрация: 11.11.2008
Сообщений: 32
По умолчанию

попробую еще раз:
Надо сделать шаблон экспорта в эксель.
Шаблон экспортирует поля из связанных таблиц БД.
Например есть таблица видов, таблица групп, таблица просто названий и характеристик. Они связанны 1<-много. Надо перенести в Excel так что бы 1 колонка отображала вид. 2- группу , 3- наименование... (в моем предыдущем условии есть пример как должно выглядеть в excel).
Сама загвоздка и причина применения рекурсии в том что связанных таблиц может быть меньше или больше. Т.е. может без вида (без колонки видов в предыдущем примере, а может еще появиться промежуточная колонка типы (если еще 4 связанных таблицы будет))
java_91 вне форума Ответить с цитированием
Старый 01.02.2011, 17:10   #10
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Извини всё равно непонятно. Но если таблицы связаны, почему просто не подготовить запросы, а потом экспортировать уже результаты запросов?
vovk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вложение цифр после 20 и до 100 в кружок DUC Microsoft Office Word 13 05.11.2016 22:51
Правильное вложение средств для раскрутки. Alex Cones Свободное общение 24 13.11.2010 11:47
как удалить созданную тему или хотя бы вложение свое? dasmeer Помощь студентам 1 14.03.2010 00:19
Покупка автомобиля - как вложение денег Alar Свободное общение 28 07.04.2008 13:37