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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2011, 06:12   #1
a_cre
 
Регистрация: 14.10.2011
Сообщений: 3
Печаль как посчитать все итерации в циклах ?

Привет !

-Конечно, язык MQL4 отличается от C++, но в целом синтаксис и базовая часть идентичны, и

поскольку не было подходящей ветки, я запостился именно здесь.

Вопрос не простой:
есть несколько циклов - это число постоянное
один цикл вложен в другой и так далее по цепочке

собственно сам вопрос в прикрепленном текстовом файле - большое СПС админу и модератору этого форума за ограничения размера сообщений!
Вложения
Тип файла: txt tema.txt (11.7 Кб, 164 просмотров)
a_cre вне форума Ответить с цитированием
Старый 14.10.2011, 07:52   #2
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Код:
unsigned count = 0;
while (...)
{
    while (...)
    {
        while (...)
        {
            ++count;
        }
    }
}
// здесь значение count будет равно количеству итераций по всем циклам
Файл ваш не смотрел.
Кстати, большое количество вложенных циклов, как правило больше одного - явно признак плохого алгоритма
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 15.10.2011, 05:12   #3
Anton_uz
Пользователь
 
Регистрация: 02.12.2009
Сообщений: 10
По умолчанию программисты вы или нет ?

вопрос состоит не в том, - хороший ли это алгоритм или плохой ?

дело в том, что перебрать все возможные варианты можно только так...

мне что нужно было ?...

- мне нужно было узнать: сколько максимум может быть итераций, чтобы посчитать примерное время проведения тестирования в секундах для одной такой итерации и потом умножить на общее количество итераций,

так что: к алгоритму просьба не придираться!

и высчитать все эти итерации я хотел не методом глупого инкриментирования (т.к. могут уйти часы..), а математическим методом перемножения
Anton_uz вне форума Ответить с цитированием
Старый 15.10.2011, 06:46   #4
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Если я правильно Вас понял, Вам нужно вычислить время выполнения алгоритма для большох чисел.
Поступаем так: берём алгоритм с небольшим количеством итераций и заключаем его таймер следующим образом:
Код:
// Инициализация таймера замера времени выполнения алгоритма
LARGE_INTEGER freq;
QueryPerformanceFrequency(&freq);
LARGE_INTEGER time1;
QueryPerformanceCounter(&time1);

// Что-то вычисляем в циклах
...................................

// Снятие показаний таймера
LARGE_INTEGER time2;
QueryPerformanceCounter(&time2);
time2.QuadPart -= time1.QuadPart;
double span = (double) time2.QuadPart / freq.QuadPart;
После того, как время будет измерено, делаем перерасчёт его на нужное число итераций.
Например: в 3-х циклах, по три итерации (это 3*3*3), мы получили время в 1мкс (1/27 и даст нам искомое время для всех итераций). Теперь, нам надо узнать время выполнения алгоритма для 10*10*10 итераций получаем формулу (10*10*10)*1/27.
Вот, примерно так.
Да, и ещё, если Вы используете циклы while со значениями итераций вычисляемые в самих циклах, то определить время их выполнения можно лишь приблизительно или экспериментально.

Цитата:
а вот, как сделать, чтобы можно было подсчитать с точностью до +/- 1 цикла всё это, учитывая первый неправильный старт каждого из циклов ?
Я думаю - никак, кроме как экспериментально.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 15.10.2011 в 07:08.
Smitt&Wesson вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
(JAVA) ИТЕРАЦИИ ПО СПИСКУ КОТОРЫЙ ВСЕ ВРЕМЯ МЕНЯЕТСЯ LadyDisco Помощь студентам 1 26.05.2011 16:26
RANDOM в циклах Stakhoff Общие вопросы C/C++ 5 05.04.2011 12:52
глюк в циклах Rio309 Общие вопросы Delphi 4 05.10.2009 15:44
вопрос о циклах alexsamurai Microsoft Office Excel 9 10.01.2009 13:25
Паскаль. найти все числа кратные трем и посчитать их количество __k1ll3r__ Помощь студентам 6 02.04.2008 16:37