Страница: 1 | 2 |
Вопрос: Помогите новичку. Проблема с циклами
Добавлено: 24.08.11 15:28
Автор вопроса: Дмитрий
Столкнулся с такой проблемой:
Например имеются циклы
For i1=1 To 10
For i2=1 To 10
For i3=1 To 10
...
Next i3
Next i2
Next i1
Проблема состоит в том, что количество i при выполнении програмы всегда разное. Как выкрутится из этой ситуации?
Заранее спасибо.
Ответы
Всего ответов: 22
Номер ответа: 1
Автор ответа:
Coloss
ICQ: 479007356
Вопросов: 15
Ответов: 37
Профиль | | #1
Добавлено: 24.08.11 17:30
если честно я не понял, это получается 3-х мерный массив. а что сделать то надо?
Номер ответа: 2
Автор ответа:
Дмитрий
Вопросов: 9
Ответов: 18
Профиль | | #2
Добавлено: 24.08.11 18:41
По ходу выполнения работы програмы количество циклов может менятся
есть переменные i(k) (в моем примереi(3)коэфициэнт k может принимать любые значения, соответственно и кооличество циклов будет больше но операции, которые проделываются в цикле остаются одни и теже. второй пример ghb k=4:
Вроде одно и тоже, но все таки...
я не могу заранее не могу предвидеть значение к и прописать в коде необходимое количество циклов.
Номер ответа: 3
Автор ответа:
Дмитрий
Вопросов: 9
Ответов: 18
Профиль | | #3
Добавлено: 24.08.11 18:43
Значение k может менятся от 3 до 40, соответствено на 40-ка цикл уже будет не слабый
Номер ответа: 4
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #4
Добавлено: 24.08.11 20:30
Нужно переделать алгоритм, чтоб не требовались вложенные циклы.
Номер ответа: 5
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #5
Добавлено: 24.08.11 20:31
Или, может быть, рекурсией, можно большой уровень вложенности делать (пока стек не переполнишь)
Номер ответа: 6
Автор ответа:
Дмитрий
Вопросов: 9
Ответов: 18
Профиль | | #6
Добавлено: 24.08.11 21:30
Я новичек: что такое рекурсия
Я не вижу способа сделать без вложеных циклов. Конкретно код выглядит так:
Номер ответа: 7
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #7
Добавлено: 24.08.11 22:04
Смотри в википедии. В двух словах не объяснить.
Если опыта мало, то будет непросто решить задачу
Номер ответа: 8
Автор ответа:
Coloss
ICQ: 479007356
Вопросов: 15
Ответов: 37
Профиль | | #8
Добавлено: 25.08.11 17:10
можно вместо 10,11,12 использовать переменную и её можно править по ходу программы. а вообще можно узнать задачу полностью?
Номер ответа: 9
Автор ответа:
Дмитрий
Вопросов: 9
Ответов: 18
Профиль | | #9
Добавлено: 26.08.11 08:37
задача по комбинаторике, разложить 20 по 3, 100 по 30 (причем вариант может быть любой)
Номер ответа: 10
Автор ответа:
Дмитрий
Вопросов: 9
Ответов: 18
Профиль | | #10
Добавлено: 26.08.11 08:40
понимаю что так и комп может повесится, но в цикле еще идет проверка вариантов на соответствие условиям. Но изначально комбинаторика!
Номер ответа: 11
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #11
Добавлено: 26.08.11 20:28
что значит "разложить 20 по 3"? Разлить 20 грамм водки по 3 рюмкам? Нормально опиши задачу как она поставлена
Номер ответа: 12
Автор ответа:
BG(Алексей)
Вопросов: 26
Ответов: 295
Профиль | | #12
Добавлено: 27.08.11 05:10
ППЦ
Номер ответа: 13
Автор ответа:
Дмитрий
Вопросов: 9
Ответов: 18
Профиль | | #13
Добавлено: 27.08.11 08:15
Вроде понятно описал
Номер ответа: 14
Автор ответа:
Дмитрий
Вопросов: 9
Ответов: 18
Профиль | | #14
Добавлено: 27.08.11 08:17
Такой код я уже написал выше только вместо 20 было 10
Номер ответа: 15
Автор ответа:
DimBi
Вопросов: 15
Ответов: 55
Профиль | | #15
Добавлено: 27.08.11 12:59
Пример нормального описания задачи:
Задача Дмитрия:
или