2 / 2 / 1
Регистрация: 07.11.2011
Сообщений: 22
|
|
1 | |
Магия с условием19.12.2011, 15:54. Показов 1209. Ответов 17
Метки нет (Все метки)
Возможно я полный наркоман,но все же.
Как-то в интернетах видел решение данной проблемы. Проблема в следующим. Цикл в нем условие.Цикл выполняется только 1 раз,либо условие отвечает на true только один раз,но скорее всего цикл.Если перед условием добавляю showmessage,то все ок. 99% я видел решение данной ситуации. Щас найти не могу.Если не ошибаюсь,там ошибка решалась 1 функцией.
0
|
19.12.2011, 15:54 | |
Ответы с готовыми решениями:
17
Решить уравнение с пред условием, пост условием и со счетчиком Нужна прога с пред условием и пост условием и циклом Цикл с пред условием и пост условием: табулирование функций Магия |
512 / 298 / 37
Регистрация: 22.06.2011
Сообщений: 929
|
|
19.12.2011, 15:58 | 2 |
Отсыпь немножко...
0
|
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
|
|
19.12.2011, 16:04 | 3 |
не фига не понятно что ты хочешь ))
если нужно что бы цикл выполнился только 1 раз, то зачем вообще нужен цикл
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
19.12.2011, 16:05 | 4 |
Давай сюда этот исходник, посмотрю, кто там Глорию потерял в кольце Юпитера.
0
|
2 / 2 / 1
Регистрация: 07.11.2011
Сообщений: 22
|
||||||||||||||||
19.12.2011, 16:11 [ТС] | 5 | |||||||||||||||
Нет.Трабла в том ,что он и выполняется только 1 раз.А если добавляю перед условие showmessage,то он выполняется как ему и положено.
Добавлено через 3 минуты Сам исходник будет очень большим. Но ошибка тут отформатированный код:
старый вариант
Если первый раз условие выполнилось с false,то второй раз оно не выполняется. Если делаю так
0
|
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
|
|
19.12.2011, 16:13 | 6 |
0
|
2 / 2 / 1
Регистрация: 07.11.2011
Сообщений: 22
|
|
19.12.2011, 16:15 [ТС] | 7 |
0
|
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
|
|
19.12.2011, 16:16 | 8 |
0
|
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
|
|
19.12.2011, 16:19 | 9 |
не мы а Вы. Какой вопрос таков и ответ.
Добавлено через 2 минуты с отладчиком знаком?
0
|
2 / 2 / 1
Регистрация: 07.11.2011
Сообщений: 22
|
|
19.12.2011, 16:19 [ТС] | 10 |
0
|
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
|
|
19.12.2011, 16:24 | 11 |
ну значит туго придется в написании программ.
Добавлено через 48 секунд а если вместо вывода сообщения в цикле поставишь sleep(500) то тоже работает?
1
|
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
|
||||||
19.12.2011, 16:29 | 12 | |||||
Разбей эту процедуру на более мелкие процедуры... И почитай про форматирование кода))) http://citforum.ru/programming... le_delphi/
2
|
2 / 2 / 1
Регистрация: 07.11.2011
Сообщений: 22
|
|
19.12.2011, 16:31 [ТС] | 13 |
=*
Вроде работает. Добавлено через 1 минуту Спасибо за совет.
0
|
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
|
|
19.12.2011, 16:33 | 14 |
вообще конечно не должно быть такого, но по тому коду что ты выложил ничего толкового не скажешь, тут отладчиком нужно пройтись и посмотреть
1
|
Of Wolf and Man
999 / 198 / 5
Регистрация: 09.07.2008
Сообщений: 1,784
|
||||||||||||||||
19.12.2011, 17:42 | 15 | |||||||||||||||
Если тебе необходимо чтобы код между началом цикла и проверкой условия выполнился хотя бы один раз, при этом код в условии мог не выполняться правильнее выполнить этот код до цикла, и потом повторить его в конце цикла. (-1 break -1 if) Если тебе требуется чтобы весь код цикла выполнился хотя бы один раз - используй цикл с пост-условием repeat ... until <условие>
Этот последний break, как и тот что стоит под условием if stop=1 выводят из цикла который начинается в начале вышестоящего отрезка кода. А это значит что код выполняется только один раз со счетчиком 0 (зачем тогда вообще вводить цикл?).
Последний брейк вообще не понятно к чему относится, конечно может быть какой либо цикл который вы не включили в код, но тем не менее. Условие у него как у брейка из вышестоящего цикла, а это значит что если стоп - то программа должна вывалиться из всех циклов и код if antiban... выполняться не должен. По поводу вопроса - УБЕРИ БЕЗУСЛОВНЫЙ БРЕЙК ! Добавлено через 3 минуты Эк как код перекосило... Значит так в первой вырезке я брал код начиная с while 1=1 и до конца этого цикла Во втором случае я рассматривал вышестоящий цикл for со счетчиком перед концом которого есть один безусловный брейк В третьем случае я брал начало кода и конец кода (код под циклом for пометил многоточием типа он там есть) и обратил внимание что в конце данного отрезка существует брейк, который не завязан ни на один цикл. (или цикл вначало кода не записали) Добавлено через 6 минут ЗЫЖ - пойду потренеруюсь, видимо в последнем фаерфоксе криво работают теги Delphi. Извините за кривой код.
0
|
20.12.2011, 06:38 | 16 |
Firefox тут ни причём
Добавлено через 2 минуты Filya.deleted, во-первых, как уже сказали - учись красиво оформлять код. В твоём куске кода ничерта не понятно. Во-вторых - учи язык. Судя по всему ты ещё и циклы не особо понимаешь, и до TIdHTTP тебе как до луны пешком.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
20.12.2011, 07:11 | 17 |
Ну это же семантика while! При фалз выполняется только заголовок и последний раз. Да и откуда фалз? 1=1 всегда тру.
0
|
Of Wolf and Man
999 / 198 / 5
Регистрация: 09.07.2008
Сообщений: 1,784
|
|
20.12.2011, 13:52 | 18 |
Тарас, я думаю что он там стопами (условие где переменная stop=1) всё время проверяет и ими же делает выход из 3х вложенных циклов. Где то эта переменная не перезадается и при повторном вызове данной F(x) он эти цикелы пропускает.
0
|
20.12.2011, 13:52 | |
20.12.2011, 13:52 | |
Помогаю со студенческими работами здесь
18
Магия ip Магия с if..else Магия в юнити Магия математики Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |