| 
				
					|  | Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
 |  
 
	
		| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |  
		| Autor | Nachricht |  
		| Gloka 
 
 
 Anmeldungsdatum: 16.04.2013
 Beiträge: 5
 
 
 | 
			
				|  Verfasst am: 16.04.2013, 09:08    Titel: Zeidimensionales array sortieren? |   |  
				| 
 |  
				| Hallo miteinander ich bin ein Freebasic und allgemeiner Programmiere Anfänger. 
 Ich habe da eine Frage bei der Ihr mir vielleicht helfen könntet.
 Ist es möglich ein zweidimensionales array zu ordnen? Das array sieht in etwa so aus:
 
 Hund		2
 Blume	1
 Haus		3
 Auto		5
 Zug		4
 
 Ich möchte das jetzt der Grösse nach ordnen, aber so dass zu der Blume immer die 1 gehört und zum Hund die 2. Es sollte dann am Schluss so aussehen:
 
 Blume	1
 Hund		2
 Haus		3
 Zug		4
 Auto		5
 
 Bubblesort ist mir bekannt aber ich kenne das nur für ein eindimensionales array, kann man das erweitern?
 |  |  
		| Nach oben |  |  
		|  |  
		| Affemitwaffel 
 
 
 Anmeldungsdatum: 02.06.2011
 Beiträge: 39
 
 
 | 
			
				|  Verfasst am: 16.04.2013, 11:41    Titel: |   |  
				| 
 |  
				| Hi, wäre es nicht eventuell einfacher, wenn du einfach einen UDT machst und dann nur eine 1-Dimensionale Array erstellst?
 Es sieht in dem Beispiel aber so aus, als ob der Gegenstand (oder was auch immer^^) schon direkt neben der Zahl steht und damit sollte es beim sortieren genauso funktionieren wie bei einer 1-Dimensionalen Array
 |  |  
		| Nach oben |  |  
		|  |  
		| nemored 
 
  
 Anmeldungsdatum: 22.02.2007
 Beiträge: 4711
 Wohnort: ~/
 
 | 
			
				|  Verfasst am: 16.04.2013, 13:30    Titel: |   |  
				| 
 |  
				| Ein zweidimensionales Array würde sich hier meines Erachtens sowieso nicht anbieten; wenn dann zwei eindimensionale Arrays: begriff(1) = "Hund" : wert(1) = 2
 begriff(2) = "Blume" : wert(2) = 1
 usw.
 
 Dann könntest du naxh wert() sortieren und begriff() in gleicher Weise mitsortieren. Noch etwas einfacher geht es aber, wie Affemitwaffel schon erwähnt hat, mit UDTs.
 _________________
 Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
 |  |  
		| Nach oben |  |  
		|  |  
		| volta 
 
 
 Anmeldungsdatum: 04.05.2005
 Beiträge: 1876
 Wohnort: D59192
 
 | 
			
				|  Verfasst am: 16.04.2013, 14:44    Titel: |   |  
				| 
 |  
				| Hi, wenn es ein UDT sein soll
 
  	  | Code: |  	  | ' nach ytwinkys: 'http://www.freebasic-portal.de/code-beispiele/suchen-und-sortieren/qsort-shellsort-54.html
 'aber auf das UDT angepasstes Qsort
 
 Type SortType
 i As Integer
 s As String
 End Type
 
 Dim sortarray(4) As SortType
 sortarray(0).i=2 : sortarray(0).s="Hund"
 sortarray(1).i=1 : sortarray(1).s="Blume"
 sortarray(2).i=3 : sortarray(2).s="Haus"
 sortarray(3).i=5 : sortarray(3).s="Auto"
 sortarray(4).i=4 : sortarray(4).s="Zug"
 
 Declare Sub QSort(Feld() As SortType, ByVal l As Integer, ByVal r As Integer, ByVal Downwards As Integer=0)
 
 For i As Integer = 0 To 4
 Print sortarray(i).s;" ";sortarray(i).i
 Next
 Print
 QSort (sortarray(),0,4,0)
 
 For i As Integer = 0 To 4
 Print sortarray(i).s;" ";sortarray(i).i
 Next
 Sleep
 
 Sub QSort(Feld() As SortType, ByVal l As Integer, ByVal r As Integer, ByVal Downwards As Integer=0)
 Dim As Integer i=l, j=r 'Variablen für die Schleifensteuerung festlegen
 Dim As Integer x=Feld((l+r)\2).i 'Referenz-Element ermitteln, das 'Mittelste' im Feld
 Do
 While IIf(Downwards, Feld(i).i>x, Feld(i).i<x) 'Ein passendes Vergleichselement finden
 i+=1 'Zähler erhöhen
 Wend
 While IIf(Downwards, x>Feld(j).i, x<Feld(j).i) 'Noch ein passendes Element finden
 j-=1
 Wend
 If i<=j Then 'ggfs.
 Swap Feld(i), Feld(j) '..tauschen
 i+=1 'Zähler erhöhen..
 j-=1 '..diesen erniedrigen..
 End If
 Loop Until i>j
 If l<j Then QSort(Feld(), l, j, Downwards) 'ggfs mit den neuen Grenzen sortieren
 If i<r Then QSort(Feld(), i, r, Downwards) 'anderenfalls mit den neuen Grenzen sortieren
 End Sub
 | 
 _________________
 Warnung an Choleriker:
 Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
 Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
 |  |  
		| Nach oben |  |  
		|  |  
		| Gloka 
 
 
 Anmeldungsdatum: 16.04.2013
 Beiträge: 5
 
 
 | 
			
				|  Verfasst am: 17.04.2013, 10:15    Titel: |   |  
				| 
 |  
				| Vielen dank ihr habt mir sehr weitergeholfen.  Was dieses UDT genau ist versteh ich noch nicht wirklich aber dazu hat es ja genügend Tutorials. |  |  
		| Nach oben |  |  
		|  |  
		|  |  
  
	| 
 
 | Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten.
 Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
 Du kannst deine Beiträge in diesem Forum nicht löschen.
 Du kannst an Umfragen in diesem Forum nicht mitmachen.
 
 |  |