Mantık sorusu

rudes

Üye
Katılım
11 Ocak 2007
Mesajlar
81
Puanları
1
Yaş
39
Merhaba Arkadaşlar
6 Tane intager sayım var bunların herbirisi bir word'e move edilmiş durumda bu sayılar degişken.Ben bu sayıları büyükten küçüğe doğru sıralamak istiyorum.Bunu nasıl yapabilirim.Yorumlarınızı bekliyorum..
 
Yazımızda endüstrinin can damarı sayılabilecek PLC’yi inceleyeceğiz.
KNX Standardı, küçük bir rezidansın içerisindeki aydınlatma, perde panjur, klima kontrolünden, Dünya’nın en büyük havalimanlarındaki aydınlatma otomasyonu gibi çözümler için tercih edilen bir Dünya standardıdır.
Compare komutu kullanabilirsin. Bu komut fonksiyonunda küçükse-büyükse-eşitse-eşit değilse gibi özellikler yüklüdür. Büyükten küçükğe sıralama derken nasıl bir sıralama anlayamadım. Ama büyük veya küçük sayı değerlerinden Bool yada Decimal olarak return kodu alabilirsin. Daha komplike işlemleri SCL yada STL diliyle gerçekleştirebilmen mümkün.
 
Bence SCL ile bir blok hazırla. Dongulu bir kodla if then else ile sıralamayı yapabilirsin. Bne bir ara ladder ile yazmaya kalkmıstım ama baya uzun oldu. Internetten C ile yazılmış bir algoritmayı al ve SCL diline uyarla. Bu hem daha hızlı çalışır hem de daha az hafıza kaplar.
 
aldarin ' Alıntı:
Bence SCL ile bir blok hazırla. Dongulu bir kodla if then else ile sıralamayı yapabilirsin. Bne bir ara ladder ile yazmaya kalkmıstım ama baya uzun oldu. Internetten C ile yazılmış bir algoritmayı al ve SCL diline uyarla. Bu hem daha hızlı çalışır hem de daha az hafıza kaplar.
Ladder'da yapmak uzun sürüyor scl dilini bilmediğim için şuan çalışma yapıyorum üzerine.Yardımlarınız için sağolun arkadaşlar..
 
SCL dilinde "bubble sort" tekniği kullanılarak yapılan sıralama işlemine örnek:

CONST
LIMIT := 7;
END_CONST
VAR_IN_OUT
sortbuffer : ARRAY[0..LIMIT] OF INT;
END_VAR
VAR_OUTPUT
calcbuffer : ARRAY[0..LIMIT] OF
STRUCT
squareroot : INT;
square : INT;
END_STRUCT;
END_VAR
VAR_TEMP
swap : BOOL;
index, aux : INT;
valr, resultr: REAL ;
END_VAR

BEGIN
(********************************************************
Part 1 Sorting : According to the "bubble sort" method: Swap
pairs of values until the measured value buffer is sorted.
**********************************************************)
REPEAT
swap := FALSE;
FOR index := LIMIT TO 1 BY -1 DO
IF sortbuffer[index-1] > sortbuffer[index]
THEN aux :=sortbuffer[index];
sortbuffer[index] := sortbuffer[index-1];
sortbuffer[index-1] := aux;
swap := TRUE;
END_IF;
END_FOR;
UNTIL NOT swap
END_REPEAT;
 

Forum istatistikleri

Konular
127,950
Mesajlar
913,831
Kullanıcılar
449,595
Son üye
Ferden1011

Yeni konular

Geri
Üst