Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Какую процедуру можно использовать?? 
V
    Опции темы
lynx13
Дата 8.5.2008, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 15.2.2008

Репутация: нет
Всего: нет



У меня есть 34 вложенных цикла for, по мере прохождения этих циклов обрабатываются все варианты размещения 34 грузов на 34 позициях т.е. получается 34! вариантов(что представляет собой огромную цифру)....
Но в задаче используется нейкий критерий оптимальности, по которому определяется лучший вариант размещения...Превышение этого критерия, говорит о том, что вариант заведомо не перспективный и дальнейшее его рассмотрение не нужно, поэтому  вычисление должно прерваться, а я должна перейти к следующему шагу текущего цикла. Как это сделать?? Может есть какая-нибудь функция типа  Break?


M
Alexeis
Модератор: Название темы должно отражать ее суть!



PM MAIL   Вверх
dumb
Дата 8.5.2008, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 3
Всего: 158



Цитата(lynx13 @  8.5.2008,  12:21 Найти цитируемый пост)
У меня есть 34 вложенных цикла for
smile
Цитата(lynx13 @  8.5.2008,  12:21 Найти цитируемый пост)
Может есть какая-нибудь функция типа  Break?
continue
PM MAIL   Вверх
lynx13
Дата 8.5.2008, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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;
PM MAIL   Вверх
FranticMan
Дата 8.5.2008, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 22.1.2008

Репутация: нет
Всего: нет



goto?
Знаю, его никто не любит (в т.ч. и я) но в даной задаче может помочь.
PM MAIL ICQ   Вверх
THandle
Дата 8.5.2008, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



lynx13, извиняюсь за оффтоп, но нельзя ли узнать на решение какой задачи потребовалось 34 вложенных цикла? 

ЗЫ: Просто интересно.
PM   Вверх
dumb
Дата 8.5.2008, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 3
Всего: 158



Цитата(lynx13 @  8.5.2008,  13:03 Найти цитируемый пост)
Если использовать continue, то будут выполняться все оставшиеся вложенные циклы
это с чего бы?! - continue прерывает выполнение текущей итерации и переходит к следующей.
именно этого ты и хочешь добиться, если конечно не ошибаешься при описании того, чего хочешь.
PM MAIL   Вверх
lynx13
Дата 8.5.2008, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 15.2.2008

Репутация: нет
Всего: нет



Цитата

lynx13, извиняюсь за оффтоп, но нельзя ли узнать на решение какой задачи потребовалось 34 вложенных цикла? 

Задача оптимизации загрузки грузовой фуры!!
Есть 34 груза разной массы,а определенная марка полуприцепа фуры имеет 34 поддона... ну вобщем нужно рассмотреть все возможные варианты укладки этих самых грузов в полуприцепе и выбрать лучший, при котором нагрузки на оси будут соответствоввать нормам...И все это дело решается методом ветвей и границ
Другого способа, кроме как сделать 34 вложенных цикла, я  не придумала smile 

Цитата

Цитата(lynx13 @  8.5.2008,  13:03 ) 
Если использовать continue, то будут выполняться все оставшиеся вложенные циклы 

это с чего бы?! - continue прерывает выполнение текущей итерации и переходит к следующей.
именно этого ты и хочешь добиться, если конечно не ошибаешься при описании того, чего хочешь. 


Ты абсолютно прав , что-то я торможу!!!

Но если честно идиотская задача, там стока всего учитывать надо, что одним  continue не отделаешься smile

Добавлено через 46 секунд
А делать надо, это блин мой диплом!
PM MAIL   Вверх
SAVANE
Дата 8.5.2008, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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!
PM MAIL WWW ICQ   Вверх
Esperito
Дата 8.5.2008, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 2.9.2007

Репутация: нет
Всего: 3



lynx13, это у тебя полный перебор, а не метод ветвей и границ. Тебе за такой диплом сделают большой ай-яй-яй smile
PM MAIL   Вверх
lukas
Дата 9.5.2008, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



да и к тому же... кто в одной процедуре пишет ну больше 10 циклов максимум...

разгрупируй свою задачу по функциям и процедурам... все станет горазда легче! 


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
TName
Дата 14.5.2008, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 16.3.2008

Репутация: нет
Всего: нет



если приходится делать много циклов, возникает вопрос: "а не решить ли это рекурсивной функцией?"
И раз уж это диплом, то может в этом и есть суть...
PM MAIL   Вверх
aktuba
Дата 14.5.2008, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 7
Всего: 38



Цитата(TName @  14.5.2008,  23:11 Найти цитируемый пост)
если приходится делать много циклов, возникает вопрос: "а не решить ли это рекурсивной функцией?"

и тут возникает вопрос - а надо ли?


--------------------
user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0527 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.