Delphi’de matematiksel işlemler

Bazı matematik fonksiyonları kullanabilmek için Uses kısmına Math kütüphanesinin eklenmesi gerekmektedir.

MATEMATİK SABİTLERİ

PI sabiti (fonksiyonu) : Pi π sabit sayısını döndüren fonksiyondur. Sonuç Reel sayıdır.

Var  Sonuc : Extended;
 
Begin
 Sonuc := PI; // Sonuc = 3.14159265358979
End;

E sabiti (Exp Fonksiyonu) : Delphide e sabit sayısını (22/7) döndüren fonksiyon yoktur. Exp fonksiyonu e sayısının girilen parametre kadar üssünü döndürür. Exp fonksiyonu 1 parametresi ile cağrılarak e sabit sayısı elde edilebilir. Sonuç Reel sayıdır.

Var  Sayi, Sonuc : Extended;

Begin
 Sonuc := Exp(1); // Sonuc = e = 2,71828182845905
 
 Sayi := 5;
 Sonuc := Exp(Sayi); 
 // Sonuc = e üssü 5 = 148,413159102577
End;

MATEMATİK TEMEL FONKSİYONLAR

Abs : Parametre olarak girilen sayının pozitif değerini hesaplamak için kullanılır. Sonuç Reel sayıdır.

Var Sayi, Sonuc : Extended;

Begin
 Sayi := 195.3;
 Sonuc := Abs(Sayi); // Sonuc = 195,3
 
 Sayi := -195.3;
 Sonuc := Abs(Sayi); // Sonuc = 195,3 
End;

Ceil : Parametre olarak girilen sayıyı her zaman bir üst tam sayıya yuvarlatarak geriye döndürür. Sonuç Tamsayıdır (Integer).

Var Sayi : Extended; Sonuc : Integer;

Begin
 Sayi := 195.3;
 Sonuc := Ceil(Sayi); // Sonuc = 196

 Sayi := 195.8;
 Sonuc := Ceil(Sayi); // Sonuc = 196

 Sayi := -195.3;
 Sonuc := Ceil(Sayi); // Sonuc = -195

 Sayi := -195.8;
 Sonuc := Ceil(Sayi); // Sonuc = -195
End;

Floor : Parametre olarak girilen sayıyı her zaman bir alt tam sayıya yuvarlatarak geriye döndürür. Sonuç Tamsayıdır (Integer).

Var Sayi : Extended; Sonuc : Integer;

Begin
 Sayi := 195.3;
 Sonuc := Floor(Sayi); // Sonuc = 195

 Sayi := 195.8;
 Sonuc := Floor(Sayi); // Sonuc = 195

 Sayi := -195.3;
 Sonuc := Floor(Sayi); // Sonuc = -196

 Sayi := -195.8;
 Sonuc := Floor(Sayi); // Sonuc = -196
End;

Int : Parametre olarak girilen sayının tam kısmını geriye döndürür. Sonuç Reel sayıdır.

Var Sayi, Sonuc : Extended;

Begin
 Sayi := 195.8;
 Sonuc := Int(Sayi); // Sonuc = 195

 Sayi := -195.8;
 Sonuc := Int(Sayi); // Sonuc = -195
End;

Trunc : Parametre olarak girilen sayının tam kısmını geriye döndürür. Sonuç Tamsayıdır (Integer). (Int fonksiyonuyla benzerdir. Bu fonksiyon Tam sayı, Int fonksiyonu Reel sayı döndürür) (Trunc fonksiyonu Int fonksiyonuna göre yavaştır)

Var Sayi : Extended; Sonuc : Integer;

Begin
 Sayi := 195.8;
 Sonuc := Trunc(Sayi); // Sonuc = 195

 Sayi := -195.8;
 Sonuc := Trunc(Sayi); // Sonuc = -195
End;

Frac : Parametre olarak girilen sayının ondalık kısmını geriye döndürür. Sonuç Reel sayıdır.

Var Sayi, Sonuc : Extended;

Begin
 Sayi := 195.874;
 Sonuc := Frac(Sayi); // Sonuc = 0,874

 Sayi := -195.874;
 Sonuc := Frac(Sayi); // Sonuc = -0,874
End;

Power : İlk parametre Reel sayı olarak girilen sayının ikinci parametre Reel sayı olarak girilen üssünü döndürür. Sonuç Reel sayıdır.

Var Sayi, Sayi1, Sonuc : Extended;

Begin
 Sayi := 195.3; Sayi1 := 2.0;
 Sonuc := Power(Sayi, Sayi1); // Sonuc = 195,3 in 2 üssü = 38142,09
End;

IntPower : İlk parametre Reel sayı olarak girilen sayının ikinci parametre Tam sayı olarak girilen üssünü döndürür. Sonuç Reel sayıdır.

Var Sayi, Sonuc : Extended; Sayi1 : Integer;

Begin
 Sayi := 195.3; Sayi1 := 2;
 Sonuc := IntPower(Sayi, Sayi1); // Sonuc = 195,3 in 2 üssü = 38142,09
End;

Max : Parametre olarak girilen iki reel sayının büyük olanını döndürür. Sonuç Reel sayıdır.

Var Sayi, Sayi1, Sonuc : Extended;

Begin
 Sayi := 100; Sayi1 := 200;
 Sonuc := Max(Sayi, Sayi1); // Sonuc = 200
End;

Min : Parametre olarak girilen iki reel sayının küçük olanını döndürür. Sonuç Reel sayıdır.

Var Sayi, Sayi1, Sonuc : Extended;

Begin
 Sayi := 100; Sayi1 := 200;
 Sonuc := Min(Sayi, Sayi1); // Sonuc = 100
End;

Sign : Parametreye girilen reel sayının pozitif, sıfır veya negatif olduğunu döndürür. Eğer sayı sıfırdan küçük ise -1, büyük ise +1, sıfıra eşit ise 0 değerini döndürecektir.

Var Sayi, Sonuc : Extended;

Begin
 Sayi := 195.8;
 Sonuc := Sign(Sayi); // Sonuc = 1

 Sayi := -195.8;
 Sonuc := Sign(Sayi); // Sonuc = -1

 Sayi := 0;
 Sonuc := Sign(Sayi); // Sonuc = 0
End;

Sqr : Parametre olarak girilen sayının karesini döndürmek için kullanılır. Sonuç Reel sayıdır.

Var Sayi, Sonuc : Extended;

Begin
 Sayi := 5;
 Sonuc := Sqr(Sayi); // Sonuc = 25
End;

Sqrt : Parametre olarak girilen sayının karekökünü döndürmek için kullanılır. Sonuç Reel sayıdır.

Var Sayi, Sonuc : Extended;

Begin
 Sayi := 25;
 Sonuc := Sqrt(sayi); // Sonuc = 5
End;

Inc : Bir veya iki parametre ile kullanılır. Eğer tek tam sayı parametre girilirse girilen parametreyi bir artırır. Eğer iki tam sayı parametre girilirse girilen ilk parametreyi girilen ikinci parametre kadar artırır.

Var Sayi, Sayi1 : Integer;

Begin
 Sayi := 195;
 Inc(Sayi); // Sayi = 196
 
 Sayi := 195; Sayi1 := 5;
 Inc(Sayi, Sayi1); // Sayi = 200
End;

Dec : Bir veya iki parametre ile kullanılır. Eğer tek tam sayı parametre girilirse girilen parametreyi bir azaltır. Eğer iki tam sayı parametre girilirse girilen ilk parametreyi girilen ikinci parametre kadar azaltır.

Var Sayi, Sayi1 : Integer;

Begin
 Sayi := 195;
 Dec(Sayi); // Sayi = 194
 
 Sayi := 195; Sayi1 := 5;
 Dec(Sayi, Sayi1); // Sayi = 190
End;

Odd : Parametre olarak girilen Tam sayının Tek olup olmadığını kontrol eder. Sayı Tek ise TRUE, çift ise FALSE değeri döndürür. Sonuç Boolean’dır.

Var Sayi : Integer; Sonuc : Boolean;

Begin
 Sayi := 4;
 Sonuc := Odd(Sayi); // Sonuc = FALSE

 Sayi := 5;
 Sonuc := Odd(Sayi); // Sonuc = TRUE
End;

MATEMATİKSEL OPERATÖRLER

Bölme, bölüm ve kalan

Div : Bölme işleminde tam bölüm almak için kullanılır. Sonuç Tam (Integer) sayıdır.

Var Sayi, Sayi1, Sonuc : Integer;

Begin
 Sayi := 25; Sayi1 := 4;
 Sonuc := Sayi Div Sayi1; // Sonuc = 6 
 // 25 / 4 = Bölüm 6, Kalan 1
End;

Mod : Bölme işleminde kalan sonucu almak için kullanılır. Sonuç Tam (Integer) sayıdır.

Var Sayi, Sayi1, Sonuc : Integer;

Begin
 Sayi := 25; Sayi1 := 4;
 Sonuc := Sayi Mod Sayi1; // Sonuc = 1 
 // 25 / 4 = Bölüm 6, Kalan 1
End;

Mod işlemi bir sayının katlarını test etmek için kullanılabilir. Eğer sayı diğer test edilen sayının katıysa Mod işlemi sonucu 0 çıkacaktır.

Var I : Integer;

Begin
 For I := 0 to 20 do
  If (I Mod 4 = 0) then Memo1.lines.add(IntToStr(I));
  // Memo1'e 4'ün katları 
  // 0, 4, 8, 12, 16, 20 sayılarını ekler
End;

LOGARİTMİK FONKSİYONLAR

Logaritma
Log2 : Parametre olarak girilen reel sayının 2 tabanında logaritmasını almak için kullanılır. Sonuç Reel sayıdır.

Var Sayi, Sonuc : Extended;

Begin
 Sayi := 256;
 Sonuc := Log2(Sayi); // Sonuc = log 2 (256) = 8
End;

Log10 : Parametre olarak girilen reel sayının 10 tabanında logaritmasını almak için kullanılır. Sonuç Reel sayıdır.

Var Sayi, Sonuc : Extended;

Begin
 Sayi := 10000;
 Sonuc := Log10(Sayi); // Sonuc = Log10(10000) = log 10 (10000) = 4
End;

LogN : İlk parametre olarak girilen reel sayının ikinci parametre olarak girilen reel sayı tabanında logaritmasını almak için kullanılır. Sonuç Reel sayıdır.

Var Sayi, Sayi1, Sonuc : Extended;

Begin
 Sayi := 5; Sayi1 := 125;
 Sonuc := LogN(Sayi, Sayi1); // Sonuc = LogN(5, 125) = log 5 (125) = 3
End;

Ln : Parametre olarak girilen sayının e tabanında logaritmasını almak için kullanılır. Sonuç Reel sayıdır.

Var Sayi, Sonuc : Extended;

Begin
 Sayi := 2.71828182845905; // e = 2.71828182845905
 Sonuc := Ln(Sayi); // Sonuc = ln (e) = log e (e) = 1
End;

TRİGONOMETRİK FONKSİYONLAR

Dik üçgen

Sin fonksiyonu : Bir dik üçgende bir açının karşı dik kenarın hipotenüse olan oranına, açının sinüsü denir. Sin fonksiyonu parametre olarak verilen sayının Sinüs değerini Radyan cinsinden döndüren fonksiyondur. (Radyanda bir çemberin çevresi 2 x π; Derecede ise çemberin cevresi 360 derecedir)

Var  Sayi, Sonuc : Extended;

Begin
 Sayi := 30;
 Sonuc := Sin(Sayi); // Sonuc = -0,988031624092862
End;

Derece cinsinde hesaplamak için parametre π / 180 çarpanı ile çarpılmalıdır.

Var  Sayi, Carpan, Sonuc : Extended;

Begin
 Sayi := 30; Carpan := PI / 180;
 Sonuc := Sin(Sayi * Carpan); // Sonuc = 0,5
End;

Cos fonksiyonu : Bir dik üçgende bir açının komşu dik kenarın hipotenüse olan oranına, açının Kosinüsü denir. Cos fonksiyonu parametre olarak verilen sayının Kosinüs değerini Radyan cinsinden döndüren fonksiyondur. (Radyanda bir çemberin çevresi 2 x π; Derecede ise çemberin cevresi 360 derecedir)

Var  Sayi, Sonuc : Extended;

Begin
 Sayi := 30;
 Sonuc := Cos(Sayi); // Sonuc = 0,154251449887584
End;

Derece cinsinde hesaplamak için parametre π / 180 çarpanı ile çarpılmalıdır.

Var  Sayi, Carpan, Sonuc : Extended;

Begin
 Sayi := 30; Carpan := PI / 180;
 Sonuc := Cos(Sayi * Carpan); // Sonuc = 0,866025403784439
End;

Tan fonksiyonu : Bir dik üçgende bir açının karşı dik kenarın komşu dik kenara olan oranına, açının Tanjantı denir. Tanjant aynı zamanda Sinüs / Kosinüs oranına eşittir. Tan fonksiyonu parametre olarak verilen sayının Tanjant değerini Radyan cinsinden döndüren fonksiyondur. (Radyanda bir çemberin çevresi 2 x π; Derecede ise çemberin cevresi 360 derecedir)

Var  Sayi, Sonuc : Extended;

Begin
 Sayi := 30; 
 Sonuc := Tan(Sayi); // Sonuc = -6,40533113479614
End;

Derece cinsinde hesaplamak için parametre π / 180 çarpanı ile çarpılmalıdır.

Var  Sayi, Carpan, Sonuc : Extended;

Begin
 Sayi := 30; Carpan := PI / 180;
 Sonuc := Tan(Sayi * Carpan); // Sonuc = 0,577350269189626
End;

Not Normalde Tanjant‘a 90 derece değer verildiğinde hata verecek ve sonuç tanımsız olacaktır. Fakat Delphi’de Tan fonksiyonuna 90 derece değer verildiğinde hata vermez ve (-3,68934881474191E19) bir sonuç vermektedir. Buna dikkat edilmelidir.

BİT İŞLEME VE KARŞILAŞTIRMA KOMUT VE OPERATÖRLERİ

Not komutu : İki görevle kullanılır. Birinci görevi karşılaştırmadır. Bir ifadeyi karşılaştırarak doğru olduğunda sonuç yanlış (False), yanlış olduğunda sonuç doğru (True) olur.

Not karşılaştırma

Var  Sayi : Integer;

Begin
 Sayi := 75;
 if not (Sayi<0) then
  label1.Caption := 'Sayı sıfırdan büyük'
 else
  label1.Caption := 'Sayı sıfırdan küçük';
End;

// 75 Sayısı 0 dan büyük olduğu
// için birinci ifade yanlış olduğu için
// Not sonucu Doğru olur Label'de
// "Sayı sıfırdan büyük" yazar 

İkinci görevi bit olarak karşılaştırmadır. Verilen integer sayılardaki bitler teker teker karşılaştırarak Sonuc üretilir.

Not bit karşılaştırma

Not bit karşılaştırma örneği

Var  Sayi : Integer;

Begin
 Sayi := 144;
 Sonuc := Not Sayi;
 // Sonuc = Not 144 = -145
 // Integer sayılar işaretli 32 bit olduğu için
 // en baştaki 0 olan işaret biti ve diğer bitler
 // 1 olacak ve sayı negatif olacaktır
 // 11....01101111 = -145
Var  Sayi : Longword;

Begin
 Sayi := 144;
 Sonuc := Not Sayi;
 // Sonuc = Not 144 = 4294967151
 // Longword sayılar işaretsiz 32 bit olduğu için
 // en baştaki 0 olan bitler 1 olacaktır
 // 11....01101111 = 4294967151

And komutu : İki görevle kullanılır. Birinci görevi karşılaştırmadır. Birden fazla ifadeyi karşılaştırarak hepsinin doğru olduğu durumda sonuç doğru (True) diğer durumlarda sonuç yanlış (False) olur.

And karşılaştırma

Var  Sayi : Integer;

Begin
 Sayi := 75;
 if (Sayi>0) And (Sayi<100) then
  label1.Caption := 'Sayı 1 ile 100 arasında'
 else
  label1.Caption := 'Sayı 0 dan küçük veya 100 den büyük';
End;

// 75 Sayısı 0 dan büyük ve 100 den küçük olduğu
// için her iki ifade de doğru olur.
// Her iki ifade doğru olduğu için
// And sonucu Doğru olur Label'de
// "Sayı 1 ile 100 arasında" yazar 

İkinci görevi bit olarak karşılaştırmadır. Verilen integer sayılardaki bitler teker teker karşılaştırarak Sonuc üretilir.

And bit karşılaştırma

And bit karşılaştırma örneği

Var  Sayi, Sayi2, Sonuc: Integer;

Begin
 Sayi := 144; Sayi2 := 18;
 Sonuc := Sayi And Sayi2;
 // Sonuc = 144 And 18 = 16

Or komutu : İki görevle kullanılır. Birinci görevi karşılaştırmadır. Birden fazla ifadeyi karşılaştırarak hepsinin yanlış olduğu durumda sonuç yanlış (False) diğer durumlarda sonuç doğru (True) olur.

Or karşılaştırma

Var  Sayi : Integer;

Begin
 Sayi := 75;
 if (Sayi<0) Or (Sayi>100) then
  label1.Caption := 'Sayı 0 dan küçük veya 100 den büyük'
 else
  label1.Caption := 'Sayı 1 ile 100 arasında';
End;

// 75 Sayısı 0 dan büyük ve 100 den küçük olduğu
// için her iki ifade de yanlış olur.
// Her iki ifade yanlış olduğu için
// Or sonucu Yanlış olur Label'de
// "Sayı 1 ile 100 arasında" yazar 

İkinci görevi bit olarak karşılaştırmadır. Verilen integer sayılardaki bitler teker teker karşılaştırarak Sonuc üretilir.

Or bit karşılaştırma

Or bit karşılaştırma örneği

Var  Sayi, Sayi2, Sonuc: Integer;

Begin
 Sayi := 144; Sayi2 := 18;
 Sonuc := Sayi Or Sayi2;
 // Sonuc = 144 Or 18 = 146

Xor komutu : İki görevle kullanılır. Birinci görevi karşılaştırmadır. İki ifadeyi karşılaştırarak ikisi aynı (ikisi doğru veya ikisi de yanlış) olduğunda sonuç yanlış (False), İkisi farklı (bir doğru biri yanlış) olduğunda sonuç doğru (True) olur.

Xor karşılaştırma

Var  Sayi : Integer;

Begin
 Sayi := 75;
 if (Sayi<0) Xor (Sayi<100) then
  label1.Caption := 'Karşılaştırmalar farklı'
 else
  label1.Caption := 'Karşılaştırmalar aynı';
End;

// 75 Sayısı 0 dan büyük ve 100 den küçük olduğu
// için birinci ifade yanlış
// ikinci ifade doğru olduğu için
// Xor sonucu Doğru olur Label'de
// "Karşılaştırmalar farklı" yazar 

İkinci görevi bit olarak karşılaştırmadır. Verilen integer sayılardaki bitler teker teker karşılaştırarak Sonuc üretilir.

Xor bit karşılaştırma

Xor bit karşılaştırma örneği

Var  Sayi, Sayi2, Sonuc: Integer;

Begin
 Sayi := 144; Sayi2 := 18;
 Sonuc := Sayi Xor Sayi2;
 // Sonuc = 144 Xor 18 = 130

Shl operatörü : Verilen integer sayıyı verilen integer parametre kadar bit olarak sola kaydırır.

Shl Operatörü

Var  Sayi, Parametre, Sonuc: Integer;

Begin
 Sayi := 10; Parametre := 2;
 Sonuc := Sayi Shl Parametre;
 // Sonuc = 10 Shl 2 = 40
End;

Shr operatörü : Verilen integer sayıyı verilen integer parametre kadar bit olarak sağa kaydırır.

Shr Operatörü

Var  Sayi, Parametre, Sonuc: Integer;

Begin
 Sayi := 144; Parametre := 3;
 Sonuc := Sayi Shr Parametre;
 // Sonuc = 144 Shr 3 = 18
End;

Devam edecek…

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.