Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
У меня такой простой вопрос. Как запустить цикл For с самого начала, если он не сработал в одном из нескольких условий? У меня просто задачка, такая, программа высчитывает несколько вариантов ходов, а варианты выпадают рандомно, в начале цикла For. Нужно если выпавший вариант не подходит, цикл запускался снова и выдавал новый вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 12:05 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 12:10 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
Вот такое одно из условий которое в случае если вариант хода не подходит, цикл отсюда должен запуститься вновь. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 12:13 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 12:17 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
Или так надо: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 12:20 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
Hugo121, Выдает вот такую вот ошибку, на окончании условия End If ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 12:36 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
Hugo121, Выдает теперь вот такую ошибку в окончании условия End If ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 12:38 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
Выражению If x = 5 Then GoTo 10 End If не нужен, не путай с Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 12:40 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
Ну пример кода может и неудачен, он бесконечный, поэтому по Esc такое и покажет. Но ведь рабочий код не будет бесконечным, однажды x будет <> 5 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 12:44 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
Оформить цикл в процедуре (как минимум) и вызывать ее по условию без всяких там атавизмов (я о GoTo). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 14:02 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
Например, x будет 35? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 14:04 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
AndreyMpОформить цикл в процедуре (как минимум) и вызывать ее по условию без всяких там атавизмов (я о GoTo). Так так так )) по подробнее ))) У меня задействовано два цыкла Цыкал Do и цыкал For Цыкал Do отвечает за счетчик ходов. А For за рендомный вариант хода. Все находится в нутри цыкла For. В цыкле Do есть несколько условий отвечающих за возможность проведения данного хода, если ход не возможен, цыкл For должен просчитать еще один вариант хода. Другой. И все должно пройти по кругу еще раз. Если все удачно, цыклы завершают работу когда поле заполнено и ходов больше делать некуда. Может есть варианты как лучше такую операцию провести ? рассмотрю все идеи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 14:11 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
Хорошо, без GoTo: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 14:17 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
Похоже? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 14:27 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
lopuxi, привет lopuxi У меня такой простой вопрос. Как запустить цикл For с самого начала, если он не сработал в одном из нескольких условий? У меня просто задачка, такая, программа высчитывает несколько вариантов ходов, а варианты выпадают рандомно, в начале цикла For. Нужно если выпавший вариант не подходит, цикл запускался снова и выдавал новый вариант. не стал разбираться что именно делает твоя прога, но вот, может идея этого пригодиться? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. при "прохождении" массива циклом и выполнении некоторого условия "запускается" цикл заново, предыдущий цикл "исключается". При невыполнении некоторого условия при "прохождении" всего цикла, новый цикл не "запускается". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 14:33 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
такой вызов процедуры как-то называется, а как, не помню... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 14:36 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
Рекурсия это называется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 14:54 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
> Автор: lopuxi > Вот такое одно из условий которое в случае если вариант хода не подходит, цикл отсюда должен запуститься вновь. Сделай ещё один цикл в отдельной функции, в котором будут генерироватся начальные условия и выполнятся проверка валидности начальных условий. А из основных циклов вызывай эту функцию и заведи константу(Enum, Const) ошибки и проверяй результат функции на равенство этой константе, что-бы понять что функция не нашла валидных исходных данных. Мне кажется что рекурсия здесь не очень хороший вариант решения, потому что, глубина рекурсии ограничена ресурсами компьютера, а линейный цикл неограничен ничем. И если у тебя есть варианты в которых могут генерироватся невалидные начальные данные, то в принципе возможна ситуация, когда любые сгенерённые исходные данные будут невалидны и при неконтролируемой рекурсии получишь Stack Overflow. Да и сопровождать рекурсивные алгоритмы сложнее Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 16:23 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
lopuxi, А зачем тогда условии, если все равно запускать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 18:33 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
А почему просто не переинициализировать переменную цикла без всяких некошерных GoTo? Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 19:05 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
Antonariy, А потому что For - это тот же While, просто на две команды меньше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2009, 19:20 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
)) В общем ребят, я тока учусь, задачка эта была самостоятельная работа из учебника :)) В целом я ее решил, вариант хода, шахматной фигуры, выбирается рандомно. Она идет туда куда можно где клетка не занята и туда когда захочет. Вот что получилось Но выдает в определенный момент выдает ошибку :( Не понимаю, причину. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2009, 13:16 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
lopuxiНо выдает в определенный момент выдает ошибку :( Не понимаю, причину. В связи с отсутствием текста ошибки и места ее возникновения, предполагаю, что ругается на ошибку в слове "Очистеть" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2009, 13:30 |
|
||
|
Цикл For в VBA Excel
|
|||
|---|---|---|---|
|
#18+
Подставил в цикал For подсчет длинны массива Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. При такой вариации код не виснет. но останавливается, ходы дальше не продолжаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2009, 13:33 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36301598&tid=2160412]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 143ms |

| 0 / 0 |
