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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2009, 08:57   #1
Evil Sun
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 11
Вопрос переменное число вложенных циклов

никак не могу сообразить. Вобщем задача в следующем. нужно написать универсальную процедуру полного перебора всех значений варьируемых параметров функции, чтобы эту самую функцию минимизировать, то есть найти ее минимум.
заранее мы не знаем количество ее аргументов) то есть они вводятся. обычно в лабораторках в университете количество аргументов, то есть сложность функции предопределена, и собственно можно заранее написать 2 вложенных цикла например и по всем переменным пробежаться) а здесь мы их количество не знаем.
-начало программы
-программа получает указатель на функцию
-получает количество варьируемых переменных
-формирует массив для регистрации их
-нужно все перебратью а вот тут у меня ступор - как

возможно я вобще пошла не тем путем, предложив в качестве решения массив. помогите идеями, или подскажите как сформировать эти циклы...
Evil Sun вне форума Ответить с цитированием
Старый 31.03.2009, 09:09   #2
Evil Sun
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 11
По умолчанию

если, уважаемые программисты, нет идей в ясном незацикленном как у меня на одном месте, мозгу, то тогда придется делать условно зависимое количество этих циклов и статично их прописывать.... но хотелось бы универсальности конечно
Evil Sun вне форума Ответить с цитированием
Старый 31.03.2009, 09:40   #3
Evil Sun
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 11
По умолчанию

а вот! прошу прощения что я именно в сишном форуме написала а не в каком другом, ибо могу оперировать только эти языком. думала, может быть решение функциональное, и я просто чего то не знаю. но решение явно алгоритмическое.. и алгоритм я почти придумала.... выложу как сформулирую... хотя идей все равно жду)
Evil Sun вне форума Ответить с цитированием
Старый 31.03.2009, 09:53   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Не совсем понял суть, но может рекурсия Вас спасёт?
Код:
void foo(int n) // n - количество вложенных циклов
{
  if (!n) // Вложенные циклы не нужны
  {
    // Здесь все нужные расчеты. Фактически это тело самого вложенного цикла
    ...
    return;
  }
  --n; // Уменьшаем количество шагов

  for (int i = 0; i < 10; ++i)
  {
    foo(n);  // рекурсивный вызов
  }
}
Если я с утра ничего не натупил, то при вызове foo(5) получится 5 вложенных циклов. Соответственно параметрами в функцию передаются нужные данные. Правда скорость работы будет уступать обычной записи циклов.
pu4koff вне форума Ответить с цитированием
Старый 31.03.2009, 09:59   #5
Evil Sun
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 11
По умолчанию

охты! спасибо, да! точно рекурсия))) спасибоооо))))))
Evil Sun вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
с использованием вложенных циклов вкусняшка Помощь студентам 4 31.03.2009 17:22
сохранение/загрузка вложенных компонент в dfm Oburec Компоненты Delphi 5 26.03.2009 11:30
Вытащить файлы из вложенных папок ZORRO2005 Microsoft Office Excel 14 06.10.2008 23:04
Ввести число N и определить делится ли оно без остатка на число M (VBA) Ivanich Microsoft Office Excel 7 24.04.2008 19:43
Переменное имя создаваемого файла Degmax Win Api 2 27.03.2008 20:39