scl_siemens_2012
Level-1
- Beiträge
- 2
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo,
habe folgendes Problem. Ich soll folgende FB anstatt Bubble Sort Verfahren mit Quick Sort Verfahren sortieren lassen. Kennt sich damit jemand aus?! Danke!
FUNCTION_BLOCK AUSWERTEN
CONST
GRENZE := 7;
END_CONST
VAR_IN_OUT
sortierpuffer : ARRAY[0..GRENZE] OF INT;
END_VAR
VAR_OUTPUT
rechenpuffer : ARRAY[0..GRENZE] OF
STRUCT
wurzel : INT;
quadrat : INT;
END_STRUCT;
END_VAR
VAR_TEMP
tauschen : BOOL;
index, hilf : INT;
wertr, ergebnr: REAL;
END_VAR
BEGIN
(********************************************************
Teil 1 Sortierung : nach dem "Bubble Sort" Verfahren: Werte
solange paarweise tauschen, bis Messwertpuffer sortiert ist.
**********************************************************)
REPEAT
tauschen := FALSE;
FOR index := GRENZE TO 1 BY -1 DO
IF sortierpuffer[index-1] > sortierpuffer[index]
THEN hilf := sortierpuffer[index];
sortierpuffer[index] := sortierpuffer[index-1];
sortierpuffer[index-1] := hilf;
tauschen := TRUE;
END_IF;
END_FOR;
UNTIL NOT tauschen
END_REPEAT;
(**********************************************************
Teil 2 Berechnung : Wurzelberechnung mit Standardfunktion
SQRT und Quadrierung mit Funktion QUADRAT durchführen.
************************************************************)
FOR index := 0 TO GRENZE BY 1 DO
rechenpuffer[index].wurzel := WURZEL(sortierpuffer[index]);
rechenpuffer[index].quadrat := QUADRAT(sortierpuffer[index]);
QUADRAT(sortierpuffer[index]);
END_FOR;
END_FUNCTION_BLOCK
habe folgendes Problem. Ich soll folgende FB anstatt Bubble Sort Verfahren mit Quick Sort Verfahren sortieren lassen. Kennt sich damit jemand aus?! Danke!
FUNCTION_BLOCK AUSWERTEN
CONST
GRENZE := 7;
END_CONST
VAR_IN_OUT
sortierpuffer : ARRAY[0..GRENZE] OF INT;
END_VAR
VAR_OUTPUT
rechenpuffer : ARRAY[0..GRENZE] OF
STRUCT
wurzel : INT;
quadrat : INT;
END_STRUCT;
END_VAR
VAR_TEMP
tauschen : BOOL;
index, hilf : INT;
wertr, ergebnr: REAL;
END_VAR
BEGIN
(********************************************************
Teil 1 Sortierung : nach dem "Bubble Sort" Verfahren: Werte
solange paarweise tauschen, bis Messwertpuffer sortiert ist.
**********************************************************)
REPEAT
tauschen := FALSE;
FOR index := GRENZE TO 1 BY -1 DO
IF sortierpuffer[index-1] > sortierpuffer[index]
THEN hilf := sortierpuffer[index];
sortierpuffer[index] := sortierpuffer[index-1];
sortierpuffer[index-1] := hilf;
tauschen := TRUE;
END_IF;
END_FOR;
UNTIL NOT tauschen
END_REPEAT;
(**********************************************************
Teil 2 Berechnung : Wurzelberechnung mit Standardfunktion
SQRT und Quadrierung mit Funktion QUADRAT durchführen.
************************************************************)
FOR index := 0 TO GRENZE BY 1 DO
rechenpuffer[index].wurzel := WURZEL(sortierpuffer[index]);
rechenpuffer[index].quadrat := QUADRAT(sortierpuffer[index]);
QUADRAT(sortierpuffer[index]);
END_FOR;
END_FUNCTION_BLOCK