| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Какую процедуру можно использовать?? |
| Автор: lynx13 8.5.2008, 11:21 | ||
| У меня есть 34 вложенных цикла for, по мере прохождения этих циклов обрабатываются все варианты размещения 34 грузов на 34 позициях т.е. получается 34! вариантов(что представляет собой огромную цифру).... Но в задаче используется нейкий критерий оптимальности, по которому определяется лучший вариант размещения...Превышение этого критерия, говорит о том, что вариант заведомо не перспективный и дальнейшее его рассмотрение не нужно, поэтому вычисление должно прерваться, а я должна перейти к следующему шагу текущего цикла. Как это сделать?? Может есть какая-нибудь функция типа Break?
|
| Автор: dumb 8.5.2008, 11:27 |
continue |
| Автор: lynx13 8.5.2008, 12:03 |
| Если использовать 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 8.5.2008, 12:11 |
| goto? Знаю, его никто не любит (в т.ч. и я) но в даной задаче может помочь. |
| Автор: THandle 8.5.2008, 12:24 |
| lynx13, извиняюсь за оффтоп, но нельзя ли узнать на решение какой задачи потребовалось 34 вложенных цикла? ЗЫ: Просто интересно. |
| Автор: lynx13 8.5.2008, 14:11 | ||||
Задача оптимизации загрузки грузовой фуры!! Есть 34 груза разной массы,а определенная марка полуприцепа фуры имеет 34 поддона... ну вобщем нужно рассмотреть все возможные варианты укладки этих самых грузов в полуприцепе и выбрать лучший, при котором нагрузки на оси будут соответствоввать нормам...И все это дело решается методом ветвей и границ Другого способа, кроме как сделать 34 вложенных цикла, я не придумала
Ты абсолютно прав , что-то я торможу!!! Но если честно идиотская задача, там стока всего учитывать надо, что одним continue не отделаешься Добавлено через 46 секунд А делать надо, это блин мой диплом! |
| Автор: SAVANE 8.5.2008, 15:55 |
| А если использовать не цыкл For а к примеру WHILE (I<x) AND (STOP=FALSE) DO А В ТЕЛЕ ЦЫКЛА і прибавлять (ну и так 34 раза) |
| Автор: Esperito 8.5.2008, 15:56 |
| lynx13, это у тебя полный перебор, а не метод ветвей и границ. Тебе за такой диплом сделают большой ай-яй-яй |
| Автор: lukas 9.5.2008, 16:49 |
| да и к тому же... кто в одной процедуре пишет ну больше 10 циклов максимум... разгрупируй свою задачу по функциям и процедурам... все станет горазда легче! |
| Автор: TName 14.5.2008, 22:11 |
| если приходится делать много циклов, возникает вопрос: "а не решить ли это рекурсивной функцией?" И раз уж это диплом, то может в этом и есть суть... |
| Автор: aktuba 14.5.2008, 23:11 | ||
и тут возникает вопрос - а надо ли? |