![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| lynx13 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 15.2.2008 Репутация: нет Всего: нет |
У меня есть 34 вложенных цикла for, по мере прохождения этих циклов обрабатываются все варианты размещения 34 грузов на 34 позициях т.е. получается 34! вариантов(что представляет собой огромную цифру)....
Но в задаче используется нейкий критерий оптимальности, по которому определяется лучший вариант размещения...Превышение этого критерия, говорит о том, что вариант заведомо не перспективный и дальнейшее его рассмотрение не нужно, поэтому вычисление должно прерваться, а я должна перейти к следующему шагу текущего цикла. Как это сделать?? Может есть какая-нибудь функция типа Break?
|
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 3 Всего: 158 |
||||
|
||||
| lynx13 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 15.2.2008 Репутация: нет Всего: нет |
Если использовать continue, то будут выполняться все оставшиеся вложенные циклы, а мне это как раз и не надо..
А надо , чтобы я перешла к следующему шагу цикла на котором , критерий стал больше чем нужно.. Например, For i:=1 to 34 * * * for i:= 1 to 26 do begin * * * if Yoptim>1000 then ***(вот тут типа должен быть какой-нибудь метод, чтобы перейти на следуйщий шаг этого же цикла,все что ниже не выполняется) for i:=1 to 25 do for i:=1 to 24 do *** end; * * * end; |
|||
|
||||
| FranticMan |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 22.1.2008 Репутация: нет Всего: нет |
goto?
Знаю, его никто не любит (в т.ч. и я) но в даной задаче может помочь. |
|||
|
||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 50 Всего: 372 |
lynx13, извиняюсь за оффтоп, но нельзя ли узнать на решение какой задачи потребовалось 34 вложенных цикла?
ЗЫ: Просто интересно. |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 3 Всего: 158 |
||||
|
||||
| lynx13 |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 15.2.2008 Репутация: нет Всего: нет |
Задача оптимизации загрузки грузовой фуры!! Есть 34 груза разной массы,а определенная марка полуприцепа фуры имеет 34 поддона... ну вобщем нужно рассмотреть все возможные варианты укладки этих самых грузов в полуприцепе и выбрать лучший, при котором нагрузки на оси будут соответствоввать нормам...И все это дело решается методом ветвей и границ Другого способа, кроме как сделать 34 вложенных цикла, я не придумала
Ты абсолютно прав , что-то я торможу!!! Но если честно идиотская задача, там стока всего учитывать надо, что одним continue не отделаешься Добавлено через 46 секунд А делать надо, это блин мой диплом! |
||||
|
|||||
| SAVANE |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 20.7.2006 Где: Украина, Полтава Репутация: нет Всего: 1 |
А если использовать не цыкл For а к примеру
WHILE (I<x) AND (STOP=FALSE) DO А В ТЕЛЕ ЦЫКЛА і прибавлять (ну и так 34 раза) --------------------
Be not afraid of growing slowly, be afraid only of standing still! |
|||
|
||||
| Esperito |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 2.9.2007 Репутация: нет Всего: 3 |
lynx13, это у тебя полный перебор, а не метод ветвей и границ. Тебе за такой диплом сделают большой ай-яй-яй
|
|||
|
||||
| lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: 3 Всего: 15 |
да и к тому же... кто в одной процедуре пишет ну больше 10 циклов максимум...
разгрупируй свою задачу по функциям и процедурам... все станет горазда легче! -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
| TName |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 16.3.2008 Репутация: нет Всего: нет |
если приходится делать много циклов, возникает вопрос: "а не решить ли это рекурсивной функцией?"
И раз уж это диплом, то может в этом и есть суть... |
|||
|
||||
| aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 7 Всего: 38 |
и тут возникает вопрос - а надо ли? -------------------- ![]() |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |