Страница: 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
       
    
       
  
Пример нормального описания задачи:
 
    
Задача Дмитрия:
или