Delphi Dünyası Facebook'ta

Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

Gönderen Konu: Matematik Fonksiyonları  (Okunma sayısı 4266 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı hayati

  • Administrator
  • *****
  • İleti: 860
  • Rep: +19/-3
  • Cinsiyet: Bay
Matematik Fonksiyonları
« : 20 Ekim 2007 10:23:23 »
Matematik fonksiyonları kullanırken ondalıklı sayıların, tam sayıları kapsadığı (digit kaybı olmadığı için) unutulmamalıdır. Bu fonksiyonları çalıştırabilmeniz için math kütüphanesini uses satırına eklemeyide unutmayınız.

Abs(ondalıklı_sayı)
Parametre olarak girilen (parantez içerisindeki değer parametre olarak adlandırılmaktadır) reel sayının pozitif değerini hesaplamak için kullanılır. Parametre pozitif ise sayının değerini değiştirmeyecektir. Eğer negatif ise o zaman pozitif değerini geriye döndürecektir.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. sayi : Real;
  4. Sonuc : Real;
  5. begin
  6. Sayi :=StrToFloat(Edit1.Text);
  7. Sonuc :=Abs(sayi); // Pozitife çevir.
  8. Caption:= FloatToStr(sonuc);
  9. end;

Fonksiyona gönderilen parametre tam sayı veya reel sayı tipli olabilir. Aynı mantıkla geriye döndürdüğü sayının tipi de yine tam sayı veya ondalıklı sayı olabilcektir.


Ceil(ondalıklı_sayı)
Parametre olarak girilen bir üst tam sayıya yuvarlatarak geriye döndürür. Dönen sayının tipi tam sayı olduğu için IntToStr tip dönüştürme fonksiyonu sayesinde kolayca yazdırılabilir.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. sayi : Real;
  4. Sonuc : Integer;
  5. begin
  6. Sayi :=125.2;
  7. Sonuc :=Ceil(sayi); // Ondalıklı sayıyı üste yuvarla.
  8. Caption:= IntToStr(sonuc); // 126 yazar
  9. end;

Aşağıda ki şekilde de kullanılabilir.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. sayi : Real;
  4. Sonuc : Integer;
  5. begin
  6. Sayi :=StrToFloat(Edit1.Text);
  7. Sonuc :=Ceil(sayi); // Editteki değeri bir üst tam sayıya yuvarla
  8. Caption:= IntToStr(sonuc);
  9. end;

Ceil fonksiyonu, sayıda yer alan ondalıklı kıma bakmadan bir üst tam sayıya yuvarlamak için kullanılır.

Floor(ondalıklı_sayı)
Bu fonksiyon ceil fonksiyonunun yaptığı işlevin tam tersini yapar. Yani parametre olarak girilen ondalıklı sayıyı, virgülden sonraki kısmın büyüklüğüne bakmadan bir alt tam sayıya yuvarlayacaktır. Sayının negatif veya pozitif olması önem arz etmez. Her zaman bir alt tam sayıya yuvarlama yapacaktır. ( -2.8’ i -3 olarak döndürecektir )
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. sayi : Real;
  4. Sonuc : Integer;
  5. begin
  6. Sayi :=125.9;
  7. Sonuc :=Floor(sayi); // Bir alt ta sayıya indir.
  8. Caption:= IntToStr(sonuc); // 125 yazar
  9. end;

Negatif tam sayılara örnek yapacak olursak :
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. sayi : Real;
  4. Sonuc : Integer;
  5. begin
  6. Sayi :=-125.1;
  7. Sonuc :=Floor(sayi);
  8. Caption:= IntToStr(sonuc); // -126 yazar
  9. end;

Floor fonksiyonu, sayıda yer alan ondalıklı kısma bakmadan bir alt tam sayıya yuvarlamak için kullanılır.

Trunc(ondalıklı_sayı)
Parametre olarak girilen ondalıklı sayının tam kısmını döndüren matematiksel bir fonksiyondur.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. sayi : Real;
  4. Sonuc : Integer;
  5. begin
  6. Sayi :=125.9;
  7. Sonuc :=Trunc(sayi); // Sadece tam kısmını göster
  8. Caption:= IntToStr(sonuc); // 125 yazar
  9. end;

Trunc fonksiyonunda herhangi bir yuvarlatma söz konusu değildir. Negatif sayılar içinde kolaylıkla kullanılabilir. (-125.9’ u -125 olarak hesaplar) Geriye dönen değerin tipinin tam sayı olduğunu fonksiyon tanımlamasından kolayca çıkarabilirsiniz.

Frac(ondalıklı_sayı)
Parametre olarak girilen değerin ondalıklı kısmını hesaplayan bir fonksiyondur. Tanımlamaya dikkat edecek olursanız. Geriye dönen değerin tipinin ondalıklı bir sayı (extended) olduğunu görürsünüz.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. sayi : Real;
  4. Sonuc : Extended;
  5. begin
  6. Sayi :=125.756; // İsterseniz bir kontrolden değer aktarabilirsiniz
  7. Sonuc :=Frac(sayi); // Ondalıklı kısmı al
  8. Caption:= FloatToStr(sonuc); // 0.756 yazar
  9. end;

Fonksiyondan geriye dönen değer ondalıklı bir sayı tipi olduğu için FloatToStr fonksiyonu ile kolayca değerini yazdırabilirsiniz.

Exp(ondalıklı_sayı)
Parametre olarak girilen sayıyı ��?e��? ( 22/7 ) nin üssü olarak kabul eder ve kuvvetini alır. (Şayet 2 girilirse e sayısının karesi alınır)
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. sayi : Integer;
  4. Sonuc : Extended;
  5. begin
  6. Sayi :=2;
  7. Sonuc :=Exp(sayi); // e nin karesini bul
  8. Caption:= FloatToStr(sonuc); // 7.389 yazar
  9. end;


Int(ondalıklı_sayı)
Parametre olarak girilen değerin tam kısmını reel sayı olarak döndüren bir fonksiyondur. Sonucu herhangi bir kontrolde yazdırmak için FloatToStr tip dönüştürme fonksiyonunu kullanmalısınız. IntToStr tip dönüştürme fonksiyonu hata verecektir.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. sayi : Real;
  4. Sonuc : Real;
  5. begin
  6. Sayi :=-120.85; // Değeri kontrolden de aldırabilirsiniz.
  7. Sonuc :=Int(sayi); // Tam kısmını al
  8. Caption:= FloatToStr(sonuc); // -120 yazar
  9. end;

Tekrar hatırlatmakta yarar görüyorum, bu fonksiyondan geriye dönen sayının tipi ondalıklı sayı tipidir. Bu yüzden yazdırmak için FloatToStr fonksiyonundan faydalanmalısınız.

IntPower(ondalıklı_sayı , tam_sayı)
Birinci parametre olarak girilen ondalıklı sayının, ikinci parametre ile girilen kuvvetini hesaplatmak için kullanılır. İkinci parametre olarak sadece tam sayı değeri girebilirsiniz.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. sayi : Real;
  4. Sonuc : Extended;
  5. begin
  6. Sayi :=5.2;
  7. Sonuc :=IntPower(sayi , 2); // e nin karesini bul
  8. Caption:= FloatToStr(sonuc); // 27.04 yazar
  9. end;

IntPower fonksiyonundan geriye dönen sayının tipi ondalıklı olmaktadır. Bu yüzden kontrol üzerinde yazdırabilmek için FloatToStr fonksiyonundan faydalanmalısınız.

Ln(ondalıklı_sayı)
Parametre olarak girilen ondalıklı (ondalıklı sayılar tam sayıları kapsarlar, unutmayın) sayının e tabanında logaritmasını almak için kullanılır. Fonksiyondan geriye yine bir ondalıklı sayı döner.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. sayi : Real;
  4. Sonuc : Real;
  5. begin
  6. Sayi :=10;
  7. Sonuc :=Ln(sayi); // Logesayi demektir.
  8. Caption:= FloatToStr(sonuc); // 2.302 yazar
  9. end;

Fonksiyondan geriye dönen değer ondalıklı sayı tipli olduğu için FloatToStr fonksiyonu kullanılarak yazdırılabilir.

Log10(ondalıklı_sayı)
Parametre olarak girilen değişkenin 10 tabanına göre logaritmasını almak için kullanılır.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. sayi : Real;
  4. Sonuc : Real;
  5. begin
  6. Sayi :=100;
  7. Sonuc :=Log10(sayi);
  8. Caption:= FloatToStr(sonuc); // 2 yazar
  9. end;

Fonksiyondan geriye dönen değer ondalıklı sayı tipli olduğu için FloatToStr fonksiyonu kullanılarak yazdırılabilir.

Log2(ondalıklı_sayı)
Parametre olarak girilen değişkenin 2 tabanında logaritmasını hesaplayan bir fonksiyondur.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. sayi : Real;
  4. Sonuc : Real;
  5. begin
  6. Sayi :=8;
  7. Sonuc :=Log2(sayi); //Log28
  8. Caption:= FloatToStr(sonuc); // 3 yazar
  9. end;

Fonksiyondan geriye dönen değer ondalıklı sayı tipli olduğu için FloatToStr fonksiyonu kullanılarak yazdırılabilir.

LogN(ondalıklı_sayı , ondalıklı_sayı2)
Parametre olarak girilen değişkenin 2 tabanında logaritmasını hesaplayan bir fonksiyondur.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. sayi : Real;
  4. Sonuc : Real;
  5. begin
  6. Sayi :=9;
  7. Sonuc :=LogN(3,sayi); //Log39
  8. Caption:= FloatToStr(sonuc); // 2 yazar
  9. end;

Fonksiyondan geriye dönen değer ondalıklı sayı tipli olduğu için FloatToStr fonksiyonu kullanılarak yazdırılabilir.

Max(ondalıklı_sayı , ondalıklı_sayı2)
Parametre olarak girilen ondalıklı (veya tam sayı) sayıların en büyüğünü hesaplayan bir fonksiyondur. Dikkat edeceğiniz husus fonksiyonun sadece iki parametre aldığıdır. Yani elinizdeki üç sayının en büyüğünü bu fonksiyonla hesaplatamazsınız. (Dolaylı olarak olabilir)
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. Ilk, Son : Integer;
  4. Sonuc : Real;
  5. begin
  6. Ilk : 25;
  7. Son : 5;
  8. Sonuc :=Max(Ilk , Son); // Büyük olanını bul
  9. Caption:= FloatToStr(sonuc); // 25 yazar
  10. end;

Parametre olarak ondalıklı sayıda kullanabilirsiniz.

Min(ondalıklı_sayı , ondalıklı_sayı2)
Parametre olarak girilen ondalıklı (veya tam sayı) sayıların en küçüğünü hesaplayan bir fonksiyondur. Dikkat edeceğiniz husus fonksiyonun sadece iki parametre aldığıdır. Yani elinizdeki üç sayının en büyüğünü bu fonksiyonla hesaplatamazsınız. (Dolaylı olarak olabilir)
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. Ilk, Son : Integer;
  4. Sonuc : Real;
  5. begin
  6. Ilk : 25;
  7. Son : 5;
  8. Sonuc :=Min(Ilk , Son); // Küçük olanını bul
  9. Caption:= FloatToStr(sonuc); // 5 yazar
  10. end;

Parametre olarak ondalıklı sayıda kullanabilirsiniz.

Mudiv(Tam_Sayı , Tam_Sayı2 , Tam_Sayı3)
İlk iki parametre ile verilen tam sayıları çarpıp, üçüncü parametreye bölen matematiksel bir fonksiyondur. Fonksiyondan geriye dönen değerin tipi tam sayı olduğu için, sonuç ondalıklı olarak çıkarsa aşağı veya yukarı tam sayıya yuvarlama işlemi yapacaktır.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. Sayi, Adet, Bol, Sonuc : Integer;
  4. begin
  5. Sayi : 10;
  6. Adet : 2;
  7. Bol : 3;
  8. Sonuc :=Muldiv(Sayi, Adet, Bol); // 10*2/3
  9. Caption:= IntToStr(sonuc); // 7 yazar
  10. end;

Fonksiyondan geriye dönen değer tam sayı tipli olduğu için, tip dönüştürme işlemini IntToStr fonksiyonu ile gerçekleştirebilirsiniz.

Pi
Matematikte kullanılan pi sayısının değerini içerisinde tutabilen bir fonksiyondur. 3.1415926535897932385 sayısına eşit olan bu fonksiyon sayesinde, daireye ait alan ve çevre hesaplamalarını kolaylıkla yaptırabilirsiniz. Fonksiyon ondalıklı bir sayı barındırdığı için FloatToStr fonksiyonu kullanılarak tip dönüşüm işlemleri uygulanmalıdır.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. YariCap : Integer;
  4. Cevre, Alan : Double;
  5. begin
  6. YariCap : 10;
  7. Cevre : 2 * pi * YariCap; //Çevre = 2 * pi * r
  8. Alan := pi * YariCap * YariCap;
  9. Label1.Caption := ‘Daire Alanı : ’+ FloatToStr(Alan);
  10. Label2.Caption := ‘Dairenin Çevresi’+FloatToStr(Cevre);
  11. end;


Poly(Ondalıklı_Sayı , Değişken)
Programınızda polinom fonksiyon sonuçlarını hesaplatmak için kullanılır. Birinci parametre polinom fonksiyondaki değişkenin değeri, ikinci parametre ise polinom fonksiyonda kullanılacak olan kat sayıların değerini tutacak olan dizi değişkenden ibarettir.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. KatSayilar : Array of Double;
  4. Değer, Derece, i : Integer;
  5. Sonuc : Extended;
  6. begin
  7. Deger := StrToInt(InputBox(‘Hangi Değer İçin’,’Deger’,’’));
  8. Derece := StrToInt(InputBox(‘Poinom Kaçıncı Dereceden’,’Derece’,’’));
  9. SetLength(KatSayilar , Derece+1); // Boyutla
  10. For I:=Low(KatSayilar) to High(KatSayilar) do
  11. KatSayilar[i]:=StrToInt(InputBox(IntToStr(i)+’.ci Kat Sayıyı Giriniz’,’KatSayi’,’’));
  12. Sonuc:=Poly(Deger , KatSayilar); // Polinomu hesapla
  13. Caption := ‘Polinomun Sonucu : ’+FloatToStr(Sonuc);
  14. end;

Fonksiyonu kullanırken dizi değişkeninizi ondalıklı sayı tanımlamaya dikkat ediniz. Programı çalıştırdıktan sonra polinomda kullanılan (y=ax2+bx) x değişkeninin değerini girmeniz istenecektir. Ardından polinom fonksiyonunuzun kaçıncı dereceden olduğunu ve katsayılarını sırası ile (olmayan bir katsayı için sıfır giriniz) girmenizi isteyecektir. Fonksiyondan geriye dönen değer ondalıklı sayı olacağı için sonucu [b]FloatToStr [/b] fonksiyonu ile yazdırabilirsiniz.

Power(Ondalıklı_Sayı , Ondalıklı_Sayı2)
Üst almak için Delphi’ de kullanılan bir fonksiyondur. Birinci parametre ile verilen ondalıklı sayının, ikinci parametreyle verilen kuvvetini hesaplar.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. Taban, Us : Double;
  4. Sonuc : Extended;
  5. begin
  6. Taban := 4;
  7. Ust := 3;
  8. Sonuc := Power(Taban , Ust); // Üst al
  9. Caption := FloatToStr(Sonuc); // 4 * 4 * 4 = 64 yazar
  10. end;

Taban ve üst değerleri ondalıklı sayıda olabilir. (yani 2.4’ ün 5.2’ ci kuvvetini de hesaplayabilir) Fonksiyondan geriye dönen değer ondalıklı sayı olduğu için sonucu yazdırmak için FloatToStr fonksiyonunu kullanabilirsiniz.

Round(Ondalıklı_Sayı)
Parametre ile girilen reel sayıyı ondalıklı kısımdaki değere göre, bir üst veya bir alt tam sayıya yuvarlamak için kullanılan bir fonksiyondur. Ondalıklı kısımdaki ilk rakam 5 veya daha büyük ise üstte, daha küçük ise altta yuvarlanacaktır. Fonksiyondan geriye dönen değer tam sayı tipli olacağı için, kontrol içerisinde yazdırmak için IntToStr fonksiyonunu kullanmanız yeterli olacaktır.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. Deger, Sonuc : Extended;
  4. begin
  5. Deger := 1001.465;
  6. Sonuc := RoundTo(Deger , -2); // Ondalıklı kısımdan 2 rakam
  7. Caption := FloatToStr(Sonuc); // 1001.47 yazar
  8. end;

Eğer ikinci parametre pozitif sayı ise : Bu durumdan tam kısmın en sonundan başlayarak, ikinci parametreyle belirtilen değer kadar 0 eklenir. Sonuçta yine üstte veya altta yuvarlatma işlemi uygulanacaktır.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. Deger, Sonuc : Extended;
  4. begin
  5. Deger := 1591.465;
  6. Sonuc := RoundTo(Deger , 3); // Ondalıklı kısımdan 2 rakam
  7. Caption := FloatToStr(Sonuc); // 2000 yazar
  8. end;


Örnek//
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. Deger, Sonuc : Extended;
  4. begin
  5. Deger := 1491.465;
  6. Sonuc := RoundTo(Deger , 3); // Ondalıklı kısımdan 2 rakam
  7. Caption := FloatToStr(Sonuc); // 1000 yazar
  8. end;

Üstte ki örnekte sağdan üç rakamı 0 yapınız, aynı zamanda en son 0 yapılan rakam 5 den büyük ise bir üstte, küçük ise bir altta yuvarla denilmek istenmektedir. Biraz değişik gelebilir, ama yeterince örnek çözerseniz mantığına alışacaksınız sanırım.

Sign(ondalıklı_sayı)
Parametreye girilen değerin pozitif, sıfır veya negatif olduğunu gösterebilen bir fonksiyondur. 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.
Sign fonksiyonundan geriye dönen değer 0, 1, -1 rakamlarından bir tanesi olacaktır. Sayının çok büyük veya küçük olması bu durumu değiştirmemektedir.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. Ilk : Double;
  4. Sonuc : Integer;
  5. begin
  6. Ilk := StrToFloat(Edit1.Text);
  7. Sonuc := Sign(Ilk);
  8. Caption:= FloatToStr(sonuc);
  9. end;

Yazılan kodlamada açıklanacak bir şey olmadığı (her şey açık zaten) için açıklama satırlarına gerek görülmemiştir.

SimpleRoundTo(ondalıklı_sayı , Tam_Sayı)
Çalışma mantığı daha önce izah edilen RoundTo fonksiyonuna çok benzemektedir. Aralarında ki tek fark SimpleRoundTo fonksiyonunda yuvarlatma işlemi uygulanmayacağıdır. Aşağıda ki sonuçları yapacağınız örnek ile kıyaslayınız.

SipleRoundTo(1254.6543,1) - - > 2000
SipleRoundTo(1254.6543,-2) - - > 1254.65
SipleRoundTo(1254.6543,-3) - - > 1254.653


Sqr(ondalıklı_sayı)
Parametre girilen sayının karesini hesaplayabilen bir Delphi fonksiyonudur. Tam sayılar için kullanılabileceği gibi ondalıklı sayılar için sonucu hesaplayabilmektedir.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. Sonuc, Sayi : Double;
  4. begin
  5. Sayi := 100.2;
  6. Sonuc := Sqr(Sayi);
  7. Caption:= FloatToStr(sonuc); // 10040.04 yazar
  8. end;

Kullanılan parametrenin tipi tam sayı ise bu durumda sonucu daha hızlı hesaplayacaktır.

Sqrt(ondalıklı_sayı)
Parametre girilen sayının ondalıklı sayının karekökünü hesaplayan bir fonksiyondur. Parametrenin tam sayı veya ondalıklı sayı olması önem arz etmemektedir.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. Sonuc, Sayi : Double;
  4. begin
  5. Sayi := 100;
  6. Sonuc := Sqrt(Sayi); // Karekökünü hesapla
  7. Caption:= FloatToStr(sonuc); // 10 yazar
  8. end;

Bu fonksiyon geriye ondalıklı sayı döneceği için sonucu yazdırmak için FloatToStr fonksiyonunu kullanmalısınız.

Inc(Tam_Sayı , Tam_Sayı2)
Bu bir fonksiyon değil (prosedür), ama burada vermeyi uygun gördüm. Method birinci parametre ile girilen değişkenin (tam sayı olmak zorundadır) artıracaktır. İkinci parametrenin opsiyonel olduğunu belirtmek isterim, şayet verilmezse artım değeri 1 olarak alınacaktır.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. Deger : Integer;
  4. begin
  5. deger := 99;
  6. Inc(deger); // Değişkenin değerini bir artır
  7. Caption:= IntToStr(deger); // 100 yazar
  8. end;


Örnek//
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. Deger : Integer;
  4. begin
  5. deger := 99;
  6. Inc(deger,11); // Değişkenin değerini onbir artır
  7. Caption:= IntToStr(deger); // 110 yazar
  8. end;

Inc metoduyla ondalıklı sayı kullanamazsınız. Eğer kullanmaya kalkarsanız Delphi sizi hata mesajı ile uyaracaktır.

Dec(Tam_Sayı , Tam_Sayı2)
Method birinci parametre ile girilen değişkenin (tam sayı olmak zorundadır) değerini ikinci parametre kadar (ikinci değişkende tam sayı olmak zorundadır) azaltacaktır. İkinci parametrenin opsiyonel olduğunu belirtmek isterim, şayet verilmezse azalma değeri 1 olarak alınacaktır.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. Deger : Integer;
  4. begin
  5. Deger := 100;
  6. Dec(Deger,1); // Değişkenin değerini bir azalt
  7. Caption:= IntToStr(Deger); // 99 yazar
  8. end;


Örnek//
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. Deger : Integer;
  4. begin
  5. Deger := 110;
  6. Dec(Deger,11); // Değişkenin değerini onbir azalt
  7. Caption:= IntToStr(Deger); // 99 yazar
  8. end;

Dec prosedürü de sadece tam sayı değerler için kullanıldığından ondalıklı sayılar için denerseniz programınız kırılacaktır.

Div
Bu da bir fonksiyon olmamakla beraber bu kısımda bulunmasında fayda görmekteyim. Matematiksel bölme işleminde tam bölüm değerini veren bir komuttur.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. Deger, Sonuc : Integer;
  4. begin
  5. Deger := 19;
  6. Sonuc := Deger div 4; // 4 kaç kere var
  7. Caption:= IntToStr(Sonuc); // tam olarak 4 kere var
  8. end;


Mod
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. Deger, Sonuc : Integer;
  4. begin
  5. Deger := 19;
  6. Sonuc := Deger mod 4; // kalan ne
  7. Caption:= IntToStr(Sonuc); // 3 yazar
  8. end;


Shl
Değişken değerlerinin iki sayısı veya kuvvetleriyle kolayca işlem yapılabilmesini sağlayan komuttur. (C++ bilenler için >> ve <<) Yaptığı işleme gelince; solunda belirtilen sayıyla, sağında belirtilen sayıyı ikinin kuvveti olarak kabul ederek çarpar.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. Deger : Integer;
  4. Sonuc : Extended;
  5. begin
  6. Deger := 10;
  7. Sonuc := Deger Shl 3; // 2^3*10=80
  8. Caption:= FloatToStr(Sonuc); // 80 yazar
  9. end;

Shl komutunun yaptığı işlem şudur. a:=10 shl 3 satırı a:=10*2üzeri3 ile aynı işi yapacaktır. Yani sağdaki sayıyı 2 nin üsttü olarak alacak solundaki sayıyla çarpacaktır. (C++ da 3 bit sola ötele)
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. Deger : Integer;
  4. Sonuc : Extended;
  5. begin
  6. Deger := 20;
  7. Sonuc := Deger Shl 5; // 2^5*20=640
  8. Caption:= FloatToStr(Sonuc); // 640 yazar
  9. end;


Shr
Değişken değerlerinin iki sayısı veya kuvvetleriyle kolayca işlem yapılabilmesini sağlayan diğer bir komuttur. (C++ bileşenleri için >> ve <<) Yaptığı işleme gelince; solunda belirtilen sayıyla, sağında belirtilen sayıyı ikinin kuvveti olarak kabul ederek böler. Belirtilen üst değeri kadar bit sağa öteleme yapar da denilebilir.
Kod:  (Unknown Language)
  1. Procedure TForm1.Button1Click(Sender; Object);
  2. var
  3. Deger : Integer;
  4. Sonuc : Extended;
  5. begin
  6. Deger := 20;
  7. Sonuc := Deger Shr 2; // 20/2^2=5
  8. Caption:= FloatToStr(Sonuc); // 5 yazar
  9. end;


sonuc:=deger shr 2 satırı sonuc:=deger/(2^2) ile aynı sonucu verecektir. Yani sağında ki sayıyı ikinin kuvveti olarak kabul edecek, solunda ki sayıya bölecektir.
« Son Düzenleme: 21 Şubat 2009 10:19:14 by hayati »
Olsa dahi tenimin kıl biten her yeri bir dil, güçsüzüm şükretmeye,şükrüm binde bir bile değil (İ.R.)

Çevrimdışı barutali

  • Administrator
  • *****
  • İleti: 2.228
  • Rep: +54/-0
  • Cinsiyet: Bay
  • Falan filan ...
  • Delphi Sürümü: 2010 - XE2
Ynt: Matematik Fonksiyonları
« Yanıtla #1 : 31 Ocak 2008 20:40:07 »
Çok güzel bi döküman olmus eline sağlık hocam



Amatör Küme Programcı

Çevrimdışı Kocaturk

  • Administrator
  • *****
  • İleti: 2.474
  • Rep: +56/-5
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: Matematik Fonksiyonları
« Yanıtla #2 : 01 Şubat 2008 00:06:32 »
Hayati Eline,koluna,emeğine sağlık. Devamını da bekliyoruz inşallah.

Çevrimdışı 32844

  • Delphi 6 Level 4
  • ****
  • İleti: 288
  • Rep: +3/-0
  • Cinsiyet: Bay
Ynt: Matematik Fonksiyonları
« Yanıtla #3 : 03 Şubat 2008 01:48:08 »
Hayati,

Bu güzel bilgileri, bize adeta görsel şov olarak sunmuşsun. Ellerin dert görmesin. İznini almadan çıktısını aldım ve Delphi ile ilgili dökümanları tuttuğum klasöre koydum. Sakıncası varsa bildir, anında yok edeyim. Hakkını helal et.

Saygılar.
Çang çing çong çung.
Çin Atasözü

Çevrimdışı mkaderoglu

  • Delphi 1 Level 2
  • **
  • İleti: 11
  • Rep: +0/-0
  • Cinsiyet: Bay
    • Maxer Software
Ynt: Matematik Fonksiyonları
« Yanıtla #4 : 09 Eylül 2009 14:17:36 »
ellerine sağlık dostum makale yazım düzeni ve konu anlatımı harika

Çevrimdışı barutali

  • Administrator
  • *****
  • İleti: 2.228
  • Rep: +54/-0
  • Cinsiyet: Bay
  • Falan filan ...
  • Delphi Sürümü: 2010 - XE2
Ynt: Matematik Fonksiyonları
« Yanıtla #5 : 09 Eylül 2009 14:39:05 »
benimde zamanında arşive aldığım anlatımlardan biri...  kitaplarda bile bulunmaz böylesi



Amatör Küme Programcı