Показать сообщение отдельно
Старый 18.06.2009, 23:53   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Сортировка координат

60   73   29   
-50  20   48   
-100 82   4    
-100 29   4    
-100 29   6    

-100 29   4    
-100 29   6    
-100 82   4    
-50  20   48   
60   73   29
Вариант номер один:
Data 60, 73, 29
Data -50, 20, 48
Data -100, 82, 4
Data -100, 29, 4
Data -100, 29, 6

Global XS%=3
Global YS%=5
Dim p(XS,YS)

Function debug_matrix()
	Local s$
	For y=1 To YS
		s=""
		For x=1 To XS
			s=s+LSet(p(x,y),5)
		Next
		DebugLog s
	Next
End Function

Function PrevColCor%(z%,i%)
	If z=1 Return True
	If p(z-1,i)=p(z-1,i+1)
		Return True
	EndIf
	Return False
End Function

For y=1 To YS
	For x=1 To XS
		Read p(x,y)
	Next
Next

debug_matrix()
DebugLog ""
;====================
For z=1 To XS
	For j=2 To YS
		For i=1 To YS-j+1
			If p(z,i)>p(z,i+1) And PrevColCor(z,i)
				For r=z To XS
					Local t%=p(r,i)
					p(r,i)=p(r,i+1)
					p(r,1+i)=t
				Next
			EndIf
		Next
	Next
Next
;====================
debug_matrix()
DebugLog ""
WaitKey()
End
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (19.06.2009)