Diziler ile ilgili işleminizi kolay ve hızlı yapabilmeniz icin, Delphi’ ye bir cok dizi fonksiyonu eklenmiştir. Aşağıda bu fonksiyonlar sırası ile incelenmekte olup, ardından da orneklendirilmeleri yapılmıştır. Fonksiyonların kullanılabilmesi icin uses satırına math kutuphanesini eklemeyi unutmayınız.

Mean(Dizi);



Parametre olarak girilen dizi elemanlarının aritmetik ortalamasını hesaplayan bir fonksiyondur. Dizi değişkeninin tipi ondalıklı sayı tipinde olmalıdır.



Procedure TForm1.Button1Click(Sender; Object);

const

Dizi : Array[0..3] of Double=(10, 20, 30, 40); // Tip ondalıklı olmalı

var

Sonuc : Extended;

begin

Sonuc := Mean(Dizi);

Caption:= FloatToStr(Sonuc); // Elemanların aritmetik ortalamasını verir

end;









Sum(Dizi);



Parametre olarak diziye gonderilen elemanların toplamını hesaplayan bir fonksiyondur.



Procedure TForm1.Button1Click(Sender; Object);

const

Dizi : Array[0..3] of Double=(10, 20, 30, 40); // Tip ondalıklı olmalı

var

Sonuc : Extended;

begin

Sonuc := Sum(Dizi);

Caption:= FloatToStr(Sonuc); // Elemanların toplamını verir

end;









SumInt(Dizi);



Parametre olarak girilen dizi elemanlarının toplamını hesaplayan bir fonksiyondur. Burada dikkat edeceğiniz husus, dizi elemanlarının tam sayı tipli tanımlanmaları gerektiğidir.



Procedure TForm1.Button1Click(Sender; Object);

const

Dizi : Array[0..3] of Integer=(10, 20, 30, 40); // Tip tam sayı olmalı

var

Sonuc : Extended;

begin

Sonuc := SumInt(Dizi);

Caption:= FloatToStr(Sonuc); // Elemanların toplamını verir

end;



Bir onceki fonksiyon zaten bu işlemi kolayca yapar demeyin. Cunku tam sayılı işlemler cok daha hızlı bir şekilde sonuca ulaştırılırlar.









SumOfSquares(Dizi);



Parametre olarak girilen dizi elemanlarının karelerinin toplamını hesaplayan bir fonksiyondur.



Procedure TForm1.Button1Click(Sender; Object);

const

Dizi : Array[0..3] of Double=(10, 20, 30, 40);

var

Sonuc : Extended;

begin

Sonuc := SumOfSquares(Dizi);

Caption:= FloatToStr(Sonuc); // Elemanların karelerinin toplamını verir

end;



Fonksiyondan geriye donen değer ondalıklı sayı olacağı icin, reel tip bir değişkene aktarılmalıdır.









SumsAndSquares(Dizi , Toplam , Kare_Toplam);



Birinci parametre ile girilen dizi değişkeninin elemanlarının toplamını ikinci parametreye, elemanlarının karelerinin toplamını da ucuncu parametreye aktaran bir prosedurdur.



Procedure TForm1.Button1Click(Sender; Object);

const

Dizi : Array[0..3] of Double=(10, 20, 30, 40);

var

Toplam, Kare_Toplam : Extended;

begin

SumOfSquares(Dizi , Toplam , Kare_Toplam);

Caption:= ‘Elemanların Toplamı : ’+FloatToStr(Toplam]’ Elemanların Karelerinin Toplamı : ’+FloatToStr(Kare_Toplam);

end;









TotalVariance(Dizi);



Dizi elemanlarına ait toplam varyansı hesaplayan bir fonksiyondur.



Procedure TForm1.Button1Click(Sender; Object);

const

Dizi : Array[0..3] of Double=(10, 20, 30, 40);

var

Sonuc : Extended;

begin

Sonuc := TotalVariance(Dizi);

Caption:= FloatToStr(Sonuc);

end;









Variance(Dizi);



Dizi elemanlarına ait varyans değerini hesaplayan bir fonksiyondur.



Procedure TForm1.Button1Click(Sender; Object);

const

Dizi : Array[0..3] of Double=(10, 20, 30, 40);

var

Sonuc : Extended;

begin

Sonuc := Variance(Dizi);

Caption:= FloatToStr(Sonuc);

end;









EnsureRange(Kucuk , Orta , Buyuk);



Parametre olarak girilen elemanlar arasında ortanca değere sahip olanı donduren bir fonksiyondur.



Procedure TForm1.Button1Click(Sender; Object);

var

Sonuc : Extended;

begin

Sonuc := EnsureRange(40 , 100 , 70); // Orta eleman

Caption:= FloatToStr(Sonuc); // 70 yazar

end;









High(Dizi);



Parametre ile girilen dizinin en son elemanının index numarasını donduren bir fonksiyondur.



Procedure TForm1.Button1Click(Sender; Object);

const

Dizi : Array[0..3] of Double=(10, 20, 30, 40);

var

Sonuc : Integer;

begin

Sonuc := High(Dizi);

Caption:= IntToStr(Sonuc); // 3 yazar

end;



Orneğe dikkat edecek olursanız tanımlamış olduğunuz dizi değişkenin en son elemanının index numarası 3 tur. Bu değeri oğrenmek icin kullanabileceğiniz onemli bir fonksiyondur. (Bilhassa dinamik dizilerde kullanımı zorunlu gibidir)









Low(Dizi);



Parametre ile girilen dizinin ilk elemanının index numarasını donduren bir fonksiyondur.



Procedure TForm1.Button1Click(Sender; Object);

const

Dizi : Array[0..3] of Double=(10, 20, 30, 40);

var

Sonuc : Integer;

begin

Sonuc := Low(Dizi);

Caption:= IntToStr(Sonuc); // 0 yazar

end;



Dizinin ilk elemanı ( dizi[0] ) 0 olduğu icin, orneğimizde geriye donecek olan değer 0 olacaktır.



Aşağıdaki gibi bir (veya benzeri bir durumda ) durumda bu iki fonksiyon sizin icin yararlı olacaktır. Sınıf mevcudunun bilinmediği (veya her sınıf icin farklı olduğu durumlarda) dizinin kac eleman olacağı bilinmeyecek, aynı zamanda alt ve ust sınırları devamlı olarak farklı olacaktır. Sabit değerler yerine bu fonksiyonları kullanırsanız her zaman doğru sonuclara ulaşmanız mumkun olacaktır.



Procedure TForm1.Button1Click(Sender; Object);

var

Ogrenci : Array Of Integer;

Mevcut, I : Integer;

begin

Mevcut := StrToInt(Inputbox(‘Sınıf Mevcudunu Giriniz’,’Mevcut’,’’));

SetLength(Ogrenci , Mevcut);

For I:=Low(Ogrenci) To High(Ogrenci) Do // İlk ten son elemana kadar

Ogrenci[i] := StrToInt(InputBox(‘Notu Giriniz’,’Not’,’’));

end;









Low(Dizi);



Parametre ile girilen dizinin ilk elemanının index numarasını donduren bir fonksiyondur.



Procedure TForm1.Button1Click(Sender; Object);

const

Dizi : Array[0..3] of Double=(10, 20, 30, 40);

var

Sonuc : Integer;

begin

Sonuc := Low(Dizi);

Caption:= IntToStr(Sonuc); // 0 yazar

end;



Dizinin ilk elemanı ( dizi[0] ) 0 olduğu icin, orneğimizde geriye donecek olan değer 0 olacaktır.



Aşağıdaki gibi bir (veya benzeri bir durumda ) durumda bu iki fonksiyon sizin icin yararlı olacaktır. Sınıf mevcudunun bilinmediği (veya her sınıf icin farklı olduğu durumlarda) dizinin kac eleman olacağı bilinmeyecek, aynı zamanda alt ve ust sınırları devamlı olarak farklı olacaktır. Sabit değerler yerine bu fonksiyonları kullanırsanız her zaman doğru sonuclara ulaşmanız mumkun olacaktır.



Procedure TForm1.Button1Click(Sender; Object);

var

Ogrenci : Array Of Integer;

Mevcut, I : Integer;

begin

Mevcut := StrToInt(Inputbox(‘Sınıf Mevcudunu Giriniz’,’Mevcut’,’’));

SetLength(Ogrenci , Mevcut);

For I:=Low(Ogrenci) To High(Ogrenci) Do // İlk ten son elemana kadar

Ogrenci[i] := StrToInt(InputBox(‘Notu Giriniz’,’Not’,’’));

end;









MaxIntValue(Dizi);



Parametre olarak girilen dizi elemanları icerisinde maximum değeri bulabilen bir fonksiyondur. Dikkat edeceğiniz husus dizi değişkenin tam sayı tipli olması gerektiğidir.



Procedure TForm1.Button1Click(Sender; Object);

const

Dizi : Array[0..3] of Integer=(10, 70, 30, 40);

var

Sonuc : Integer;

begin

Sonuc := MaxIntValue(Dizi); // En buyuk değeri bul

Caption:= IntToStr(Sonuc); // 70 yazar

end;









MaxValue(Dizi);



Yine parametre olarak girilen dizi elemanlarından en buyuğunun değerini dondurur. Ustunluğu tam veya ondalıklı sayıların ikisi icinde kullanılabilmesidir.



Fonksiyondan geriye donecek olan değer ondalıklı sayı icereceği icin FloatToStr tip donuşturme fonksiyonu sayesinde yazdırılabilir.



Procedure TForm1.Button1Click(Sender; Object);

const

Dizi : Array[0..3] of Integer=(10, 20, 30, 40);

var

Sonuc : Extended;

begin

Sonuc := MaxValue(Dizi);

Caption:= FloatToStr(Sonuc); // 40 yazar

end;









MinIntValue(Dizi);



Parametre olarak girilen dizi elemanları icerisinde minimum değeri bulabilen bir fonksiyondur. Dikkat edeceğiniz husus dizi değişkenin tam sayı tipli olması gerektiğidir.



Procedure TForm1.Button1Click(Sender; Object);

const

Dizi : Array[0..3] of Integer=(10, 70, 30, 40);

var

Sonuc : Integer;

begin

Sonuc := MinIntValue(Dizi); // En buyuk değeri bul

Caption:= IntToStr(Sonuc); // 10 yazar

end;









MinValue(Dizi);



Yine parametre olarak girilen dizi elemanlarından en kucuğunun değerini dondurur. Ustunluğu tam veya ondalıklı sayıların ikisi icinde kullanılabilmesidir.



Fonksiyondan geriye donecek olan değer ondalıklı sayı icereceği icin FloatToStr tip donuşturme fonksiyonu sayesinde yazdırılabilir.



Procedure TForm1.Button1Click(Sender; Object);

const

Dizi : Array[0..3] of Integer=(10, 20, 30, 40);

var

Sonuc : Extended;

begin

Sonuc := MinValue(Dizi);

Caption:= FloatToStr(Sonuc); // 10 yazar

end;
_________________
__________________