Bir Dizideki Sayıların Birbirleri ile Olan Farkların En Küçüğü

Sefa41

Üye
Katılım
15 Ara 2015
Mesajlar
42
Puanları
1
Yaş
33
Merhabalar;

20 real sayıdan oluşan bir dizideki tüm sayıların birbirleriyle olan farklarının en küçüğünü başka bir diziye yazdırmak istiyorum. Mesela dizideki 1. sayı diğer 19 sayıdan çıkarılıp en küçük farkı başka bir diziye yazılacak.
Bunu 2..20. sayıya kadar yapacak.
Bunu nasıl yapabilirim? Hazır yazılı program olan varsa paylaşabilirse sevinirim.
(Not: SCL dilim zayıf.)
 
temel algoritma ; for içinde for döngüsü
PLC de nasıl yapılıyor bilimem
 
Peki SCL de Databloga veri nasıl yazdırabilirim?
Şu şekilde deniyorum fakat olmuyor. ( DB10.DD[0]:=10.0)
 
Son düzenleme:
upload_2016-11-22_13-53-50.png

upload_2016-11-22_13-55-2.png
 
FUNCTION_BLOCK "Block_1"
{ S7_Optimized_Access := 'FALSE' }
VERSION : 0.1
VAR_INPUT
pt : Array[0..100] of Real;
END_VAR

VAR_OUTPUT
_min : Real;
END_VAR

VAR
array_min : Real;
i { S7_HMI_Accessible := 'False'; S7_HMI_Visible := 'False'} : Int;
END_VAR


BEGIN
#array_min := 4000000000.0;
FOR #i := 0 TO 100 DO
IF #pt[#i] < #array_min
THEN
#array_min := #pt[#i];
END_IF;
END_FOR;
#_min:=#array_min;

END_FUNCTION_BLOCK
 
FUNCTION_BLOCK "Block_1"
{ S7_Optimized_Access := 'FALSE' }
VERSION : 0.1
VAR_INPUT
pt : Array[0..100] of Real;
END_VAR

VAR_OUTPUT
_min : Real;
END_VAR

VAR
array_min : Real;
i { S7_HMI_Accessible := 'False'; S7_HMI_Visible := 'False'} : Int;
END_VAR


BEGIN
#array_min := 4000000000.0;
FOR #i := 0 TO 100 DO
IF #pt[#i] < #array_min
THEN
#array_min := #pt[#i];
END_IF;
END_FOR;
#_min:=#array_min;

END_FUNCTION_BLOCK


hocam yanlış anlamış olabilirim; ama sanki bu fonksiyon sadece dizideki en küçük sayıyı buluyor. İstenen daha farklı diye anlıyorum.
 

Forum istatistikleri

Konular
129,827
Mesajlar
930,545
Kullanıcılar
452,650
Son üye
HiAxiSeytan

Yeni konular

Çevrimiçi üyeler

Geri
Üst