Aşağıdaki örnekte bir Db içinde rastgele verilmiş 32 adet real tipinde veriyi küçükten büyüğe sıralattım kodda ufak bir oynama yaparak tersinide yapabilirsiniz.
Fantazi yapmak isteyen ark.lar verilerin toplayıp, ortalamasını aldırıp, standart sapmasını da hesaplatabilir, datalar içindeki enküçük ve enbüyük verileri buldurtabilirsiniz, SCL için bunlar iş degildir.
Kod:
FUNCTION_BLOCK FB100
VAR_IN_OUT
Start:INT; // Hedef DB deki (DB aşağıda) başlangıç indeksi
End :INT; // Hedef DB deki son indeks
END_VAR
VAR
i,j:INT;
Swap:REAL; // Takas degişkeni verileri yer degiştirmede kullandım
END_VAR
BEGIN
FOR i:=Start TO (End-1) BY 1 DO // İç içe iki for döngüsüyle verileri
FOR j:= i+1 TO End BY 1 DO // tarıyoruz
IF DB101.Data[i]> DB101.Data[j] THEN // i ve j inci veriler test edilir
Swap :=DB101.Data[j]; // Yer degiştirme işlemi yapıyoruz
DB101.Data[j]:=DB101.Data[i];
DB101.Data[i]:=Swap;
END_IF;
END_FOR;
END_FOR;
END_FUNCTION_BLOCK
DATA_BLOCK DB101 //Hedef DB miz DB101, 32 adet bilgi var içinde
STRUCT
Data : ARRAY [0..31] OF REAL;
END_STRUCT
BEGIN
END_DATA_BLOCK