Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 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:
  1. For i1=1 To 10
  2.    For i2=1 To 10
  3.       For i3=1 To 10
  4.          For i4=1 To 10
  5.  
  6. ...
  7.          Next i4
  8.       Next i3
  9.    Next i2
  10. Next i1


Вроде одно и тоже, но все таки...
я не могу заранее не могу предвидеть значение к и прописать в коде необходимое количество циклов.

Ответить

Номер ответа: 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
рекурсией, можно большой уровень вложенности делать

Я новичек: что такое рекурсия
чтоб не требовались вложенные циклы

Я не вижу способа сделать без вложеных циклов. Конкретно код выглядит так:
  1.  
  2. For i1=1 To 10
  3.    For i2=i1+1 To 11
  4.       For i3=i2+1 To 12
  5. ...
  6.       Next i3
  7.    Next i2
  8. Next i1

Ответить

Номер ответа: 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

  1. dim M()
  2. For i1=1 To 18
  3.    For i2=i1+1 To 19
  4.       For i3=i2+1 To 20
  5.  
  6. ...
  7.  
  8.       Next i3
  9.    Next i2
  10. Next i1


Вроде понятно описал

Ответить

Номер ответа: 14
Автор ответа:
 Дмитрий



Вопросов: 9
Ответов: 18
 Профиль | | #14 Добавлено: 27.08.11 08:17
Такой код я уже написал выше только вместо 20 было 10

Ответить

Номер ответа: 15
Автор ответа:
 DimBi



Вопросов: 15
Ответов: 55
 Профиль | | #15 Добавлено: 27.08.11 12:59
Пример нормального описания задачи:
Задача 1. У мамы 2 яблока и 3 груши. Каждый день в течение 5 дней подряд она выдает по одному фрукту. Сколькими способами это может быть сделано?

Задача Дмитрия:
разложить 20 по 3, 100 по 30

или
паки-паки.... кстати Вы меня не правильно поняли!

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам