Step 7 Sortieren von Zeiten(Tanknummer)

PinkPanther32

Level-2
Beiträge
152
Reaktionspunkte
47
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Gemeinde.

Ich stehe gerade sowas von auf dem schlauch und komme nicht weiter. mir fehlt ein ansatz der mir gerade nicht in den Kopf kommen will.

Ich habe 4 Tanks die eine Produktionszeit (Stunden/ Minuten(Jeweils als INT)haben.
nun will ich dieses Tanknummer so in eine reihenfolge bringen das der tank der die laengste produktionzeit hat in einem DB an erster stelle steht.
Irgendwie kann ich mir das nur ueber eine menge von vergleichern vorstellen. Und auch hier fehlt mir der ansatz.
kann man das auch irgendwie eleganter loesen?

gruesse der pinke panther
 
Such mal nach Bubblesort.

Um es einfacher zu machen solltest du dann die Stunden in Minuten umrechnen und die Minuten dazuaddieren. Dann die Bubblesortroutine drüber laufen lassen und du hast was du brauchst.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Naja aber wie kriege ich die Tanknummer dann in den zusammenhang mit der sortierung?


Beispiel:

tank 1 --> Produktionszeit 30 stunden
tank 2 --> Produktionszeit 32 stunden
tank 3 --> Produktionszeit 3 stunden
tank 4 --> Produktionszeit 18 stunden

Das sortierkreterium ist die zeit.
was aber dann in einer reihenfolge stehen soll ist die tank nummer.

Also nach meinem Beispiel braeuchte ich dann eine liste(DB) die wie folgt aussieht:

Tank3
Tank4
Tank1
Tank2

den zusammenhang zwischen den beiden wann ich was schreiben muss ist mir in Verbindung mit bubblesort nicht ganz klar.
 
Naja, Du schreibst die Zeiten (Stunden * 60 + Minuten) in ein UDT Array (DINT, Byte), das Byte entspricht der Tanknummer, dann Bubblesort über das DINT laufen lassen und dann das Array von 1 - 4 durchgehen und das Byte in Deinen DB schreiben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sortieren besteht immer (egal welches Verfahren) aus Vergleichs- und Vertauschungsoperationen. Du vergleichst die Zeiten und beim Vertauschen musst Du die zugehörigen Tank-Nummern mit vertauschen. Dann stehen die Tanknummern nach der Sortierung in der richtigen Reihenfolge.
Gruß
Erich
 
Moin,
ich glaube beim TE hakt es gerade bei einer viel trivialen Stelle, nämlich dem Zusammenhang zwischen Tanknummer und Tankzeit.
Hier musst du dir einen eigenen Datentypen schaffen (UDT) der beides beherbergt. Also wie von oliver.tonn in #4 geschrieben, eine UDT TankDaten bestehend aus TankNummer und TankZeit. Der Bubble-Sort schaut jetzt in die Variablen Tankzeit (um zu vergleichen) und verschiebt dann aber die ganze UDT TankDaten (samt TankNummer) an die entsprechende Stelle.
 
Habe Glaube jetzt eine loesung gefunden.
habe den block fuer bubblesort von der siemens seite geladen und etwas veraendert und glaube er wirkt so wie ich es will. muss morgen noch mal etwas genauer testen.
 
Zurück
Oben