Bu yazımda Delphi ile matematik yapacağız. Hemde sayısal değişkenleri daha iyi anlayacağız. Uzatmadan konuya giriyorum.
Fazla ayrıntıya girmeden forma bir button koyalım. Ve matematik yapmak için sayısal değişkenler kullanacağız. Tanımlıyoruz 🙂
var i:integer;//tam sayı r:real;//reel sayı
Toplama:
var sayi1,sayi2,toplam:integer;//tam sayı kullanacağız begin //forma 2 tane edit koyuyoruz. sayi1:=StrToInt(Edit1.Text); sayi2:=StrToInt(Edit2.Text); toplam:=sayi1+sayi2; ShowMessage(IntToStr(toplam)); end;
Tabi tam sayı kullandığımız için tam sayılarla toplama yapabiliriz ancak. Şimdi aynısını Reel sayılar ile yapalım.
var sayi1,sayi2,toplam:Real;//reel sayı kullanacağız begin //forma 2 tane edit koyuyoruz. sayi1:=StrToFloat(Edit1.Text); sayi2:=StrToFloat(Edit2.Text); toplam:=sayi1+sayi2; ShowMessage(FloatToStr(toplam)); end;
Burdan öğrendiklerimiz;
- StrToFloat(); => String tipi Float tipe dönüştürür (Reel sayılar için.)
- FloatToStr(); => Float tipi String tipe dönüştürür (Reel sayılar için.)
- StrToInt(); => String tipi Integer tipe dönüştürür (Tam sayılar için.)
- IntToStr(); => Integer tipi String tipe dönüştürür (Tam sayılar için.)
- Toplama işlemi “+” operatörü ile yapılır 🙂
Şimdi bu öğrendiklerimiz Delphi’de bize her daim lazım olabilecek türden şeyler. Hadi bide Reel sayılarda toplama yapalım ama sonucu yazdırırken Yuvarlayıp tam sayı olarak yazdıralım;
var sayi1,sayi2,toplam:Real;//reel sayı kullanacağız yuvarlanmis:Integer;//sonuç değişkenimiz. begin //forma 2 tane edit koyuyoruz. sayi1:=StrToFloat(Edit1.Text); sayi2:=StrToFloat(Edit2.Text); toplam:=sayi1+sayi2; yuvarlanmis:=Round(toplam); ShowMessage(IntToStr(yuvarlanmis)); end;
Buradan öğrendiğimiz;
- Round(); => Reel sayıyı (Real) Tam Sayı (Integer) yapar (yuvarlar.)
tabi burada gördüğünüz gibi her şey için değişken tanımlamak zorunda değiliz, yukarıdaki işlemi hiç değişken tanımlamadan yapacağım;
begin ShowMessage(IntToStr(Round(StrToFloat(Edit1.Text)+StrToFloat(Edit2.Text)))); end;
Tabi yazdığınız kodun okunaklı olması önemlidir 🙂 bu yüzden değişken tanımlamaktan kaçınmayın. Ama gereksiz değişken kalabalığı sistem kaynaklarının israfı demektir. Buda çok iyi bir durum değildir 🙂 .Yani ikisinin ortası bir ayar tutmak lazımdır…
Şimdi diğer işlemler için birer örnek yapalım.
Çıkarma :
var sayi1,sayi2,fark:integer;//tam sayı kullanacağız begin //forma 2 tane edit koyuyoruz. sayi1:=StrToInt(Edit1.Text); sayi2:=StrToInt(Edit2.Text); fark:=sayi1-sayi2; ShowMessage(IntToStr(fark)); end;
Buradan Öğrendiğimiz :
- Çıkarma işlemi “-” operatörü ile yapılır.
Şimdi bunu Reel sayı kullanarak, Değişken tanımlamadan, Yuvarlıyarak siz yapın. Bakalım 3 şekilde ayrı ayrı yapabiliyor musunuz 🙂
Çarpma:
var sayi1,sayi2,sonuc:integer;//tam sayı kullanacağız begin //forma 2 tane edit koyuyoruz. sayi1:=StrToInt(Edit1.Text); sayi2:=StrToInt(Edit2.Text); sonuc:=sayi1*sayi2; ShowMessage(IntToStr(sonuc)); end;
Buradan Öğrendiğimiz :
- Çarpma işlemi “*” operatörü ile yapılır.
Ve yine bunu diğer şekillerde siz yapın.
Bölme:
var sayi1,sayi2:integer;//tam sayı kullanacağız sonuc:Real;//bölme işlemi yaparken sonuç değişkeni reel olmak zorundadır. begin //forma 2 tane edit koyuyoruz. sayi1:=StrToInt(Edit1.Text); sayi2:=StrToInt(Edit2.Text); sonuc:=sayi1/sayi2; ShowMessage(FloatToStr(sonuc)); end;
Evet, sonuç değişkenini real tanımladık çünkü tam sayı tanımlasaydık şu hatayı verecekti:
Incompatible types: ‘Integer’ and ‘Extended’
Şimdi ise kalansız bölme yapalım bu sefer sonuç değişkeni integer olacak.
var sayi1,sayi2,sonuc:integer;//tam sayı kullanacağız begin //forma 2 tane edit koyuyoruz. sayi1:=StrToInt(Edit1.Text); sayi2:=StrToInt(Edit2.Text); sonuc:=sayi1 div sayi2; ShowMessage(FloatToStr(sonuc)); end;
Buradan Öğrendiklerimiz :
- Bölme işlemi “/” operatörü ile yapılır.
- Bölme işlemi yapılırken sonuç değişkeni reel olmak zorundadır.
- Kalansız bölme için “div” komutunu kullanabiliriz.
- Kalansız bölme yapılırken sonuç değişkeni Reel olmak zorunda değildir!
Ve yine bunu diğer şekillerde siz yapın.
Şimdi öğrendiklerimizi tek seferde bir daha tekrar edelim.
var sayi1,sayi2,sayi3,sayi4,sayi5,sayi6,sonuc:integer;//tam sayı kullanacağız begin //forma 6 tane edit koyuyoruz. sayi1:=StrToInt(Edit1.Text); sayi2:=StrToInt(Edit2.Text); sayi3:=StrToInt(Edit3.Text); sayi4:=StrToInt(Edit4.Text); sayi5:=StrToInt(Edit5.Text); sayi6:=StrToInt(Edit6.Text); sonuc:=(((sayi1 + sayi2)/sayi3*(sayi4-sayi5)) div sayi6); ShowMessage(IntToStr(sonuc)); end;
Evet, artık çarpma bölme toplama çıkarma yapabiliyor olmanız lazım.