Step 7 Tabelle je nach Input sortieren

Vokal12

Level-1
Beiträge
27
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,
ich habe folgendes Problem:
Ich habe eine Tabelle mit 2000 unsortierten Elemente. Ich möchte jetzt je nach Input n, die n ersten kleinen Elemente ausgeben, bis ich mit meiner Tabelle komplett durchgelaufen bin.
Am Ende soll ich eine sortierte Tabelle haben.
Ich programmiere mit SCL.

Z.B.: Tabelle aus 10 Elemente
Tab:[9,0,3,2,1,4,6,5,8,7]
n:=3 n:=4
1. Schritt: [0,1,2] 1. Schritt: [0,1,2,4]
2. Schritt:[0,1,2,3,4,5] 2. Schritt:[0,1,2,3,4,5,6,7,8]
3. Schritt:[0,1,2,3,4,5,6,7,8] 3. Schritt:[0,1,2,3,4,5,6,7,8,9]
4. Scrittt:[0,1,2,3,4,5,6,7,8,9]
.....

Danke im Voraus .
Vokal12
 
Hallo,
dafür gäbe es ja Sortier-Algorhythmen, die man auch in SCL nachprogrammieren kann - z.B. Bubblesort (hierzu mal die Forums-Suchmaschine bemühen).
Das Problem, dass du hier nur bekommen wirst, ist dass deine Zykluszeit während des Sortierens u.U. gewaltig ansteigt - sogar auch dann wenn du den Sortiervorgang selbst über mehrere SPS-Zyklen verteilst. Bist du dir darüber im Klaren ?

Die Werte-Rückgabe wäre dann das nächste Thema. Hier bist du nicht wirklich dynamisch. An irgend einer Stelle mußt du eine maximale Grenze definieren.

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
dafür gäbe es ja Sortier-Algorhythmen, die man auch in SCL nachprogrammieren kann - z.B. Bubblesort (hierzu mal die Forums-Suchmaschine bemühen).
Das Problem, dass du hier nur bekommen wirst, ist dass deine Zykluszeit während des Sortierens u.U. gewaltig ansteigt - sogar auch dann wenn du den Sortiervorgang selbst über mehrere SPS-Zyklen verteilst. Bist du dir darüber im Klaren ?

Die Werte-Rückgabe wäre dann das nächste Thema. Hier bist du nicht wirklich dynamisch. An irgend einer Stelle mußt du eine maximale Grenze definieren.

Gruß
Larry

ich habe schon mit Bubblesort probiert aber meine zykluszeit war relativ groß. Deswegen bin ich auf die gekommen, mein Sortiervorgang aufzuteilen.
 
... dann bräuchtest du dir doch nur die Bubblesort-Routine entsprechend aufteilen - z.B. so, dass du in jedem Zyklus nur 100 Umsortierungen machst.
Der Baustein müßte dann für deine weitere Verarbeitung nur ein "Ready" ausgeben, wenn er durch ist (und vielleicht ein "Busy" generieren für die Dauer seines Ablaufes).

Am Ende erzeugst du dir dann z.B. einen ANY-Pointer, der die Informationen des Speicherbereichs ausgibt, wo die umsortierten Daten abzugreifen sind.

Gruß
Larry
 
Zurück
Oben