1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| straight edge | 
                        
			
			  
			
				 Сообщение
					#1				
			 
		 | 
	
| 
        	
        		 Гость  | 
       
			
			 Такая вот задачка: Дана система шестеренок, т.е. для каждой шестеренки указано с какими она соединена. Необходимо определить будет ли она крутиться. 
			
			
					
		 | 
	
![]() ![]()  | 
	
| trminator | 
                        
			
			  
			
				 Сообщение
					#2				
			 
		 | 
	
| 
        	
        		 Четыре квадратика ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация:    4           	 | 
       
			
			 Проверьте!!! 
			
			======================================== Код program shesterenka; var A: array[1..100,1..100] of Integer; {Матрица смежности} B: array[0..100] of Integer;{В какую сторону крутится i-я шестеренка} New: array[1..100]of boolean; {Проходили ли уже эту шестеренку} i, j, n : integer; {Всякие разные переменые} prev : integer; {В как сторону вертелась предыдущая} procedure Stop(v:integer); begin WriteLn('Противоречие на шестеренке #',v); halt end; function test(v:integer):boolean; var i :integer; pr :boolean; begin pr:=true; for i:=1 to N do if A[v,i]=1 then if (B[i]<>B[prev])and(B[i]<>0) then pr:=false; test:=pr end; procedure Use(v:integer); begin if test(v) then B[v]:=-B[prev] else Stop(v); prev:=v; end; procedure walk(v:integer); var w:integer; begin Use(v); New[v]:=false; for w:=1 to N do if (A[v,w]=1)and(New[w])then walk(w) end; begin Write('Input N: ');ReadLn(N); WriteLn('Input matrix'); for i:=1 to N do for j:=1 to N do Read(A[i,j]); for i:=1 to n do begin B[i]:=0;{ничего не крутится} New[i]:=true end; prev:=0; B[prev]:=1; walk(1); {Запускаем обход с 1-й шестеренки} j:=0; for i:=1 to N do if not new[i] then inc(j); if j=N then WriteLn('All Okay') else WriteLn('Что-то не соединено') end. ==================================== Это если размеры одинаковые. Если разные, то вместо направления вращения надо записывать в массив B угловые скорости. ==================================== Вводить матрицу смежности для системы: если i соединена с j, то A[i,j]=1 иначе A[i,j]=-1 Сообщение отредактировано: volvo - -------------------- Закон добровольного труда Зимерги: 
					
		Люди всегда согласны сделать работу, когда необходимость в этом уже отпала  | 
	
 straight edge   Задачка с шестеренками   13.04.2003 3:05
 
 AlaRic   Re: Задачка с шестеренками   13.04.2003 10:43
 
 hydroxychloroquine buy online us   No Prescription Amoxicillin   23.09.2021 22:57
 
 GLuk   Re: Задачка с шестеренками   13.04.2003 11:33
 
 cheap fioricet soma tramadol via   cialis bruxelles   20.12.2021 11:56
 
 reill   Re: Задачка с шестеренками   13.04.2003 14:46
 
 Clane   Re: Задачка с шестеренками   14.04.2003 14:32
 
 reill   Re: Задачка с шестеренками   14.04.2003 16:44
 
 cialis without a doctor's pr   Amoxicillin Allergy Delayed Onset   9.11.2021 19:56
 
 trminator   Re: Задачка с шестеренками   15.04.2003 13:18
 
 trminator   Re: Задачка с шестеренками   15.04.2003 22:45
 
 trminator   Re: Задачка с шестеренками   20.04.2003 21:11![]() ![]()  | 
	
 
  | 
		Текстовая версия | 4.11.2025 6:49 |