Bölüm 5 - DELPHI’DE ATAMA İŞLEMLERİ & OPERATÖRLER
Delphi’de Kullanılan Operatörler
Bu kısımda sizlere, Delphi’de kullanabileceğiniz operatörleri gruplandırarak bilgi verelim.
• Matematiksel Operatörler
Operatör Görevi Örnek
+ Toplama 10+20
- Fark 30-20
* Çarpım 20*50
/ Bölme 10/5
Mod Mod 10 mod 3
Div Tam Bölüm 10 div 3
= Eşitlik if(ad=’Hasan’) then
> Büyüktür if(yas>50) then
< Küçüktür if(yas<50) then
>= Büyük Eşittir if(yas>=50) then
<= Küçük Eşittir if(yas<=50) then
<> Eşit Değil if(yas<>50) then
:= Atama Ad:=’Hasan’
Bu kısımda sizlere, Delphi’de kullanabileceğiniz operatörleri gruplandırarak bilgi verelim.
• Matematiksel Operatörler
Operatör Görevi Örnek
+ Toplama 10+20
- Fark 30-20
* Çarpım 20*50
/ Bölme 10/5
Mod Mod 10 mod 3
Div Tam Bölüm 10 div 3
= Eşitlik if(ad=’Hasan’) then
> Büyüktür if(yas>50) then
< Küçüktür if(yas<50) then
>= Büyük Eşittir if(yas>=50) then
<= Küçük Eşittir if(yas<=50) then
<> Eşit Değil if(yas<>50) then
:= Atama Ad:=’Hasan’
Sanıyorum diğer operatörler için örnek yapmaya gerek yok. Zaten ilerleyen kısımlarda hepsini bolca kullanma imkanı bulacağız.
• Logical Operatörler
Mantıksal işlemlerinizde kullanabileceğiniz bir çok operatörü Delphi size sunmaktadır. Aşağıda bu operatörlerden bahsedilmektedir.
o Not
Dönen değerin olumsuzunu belirtmek için kullanılan Mantıksal operatördür (Eğer true dönerse false. False dönerse true). Genellikle dallanma, karşılaştırma işlemlerinde kullanılır.
• Logical Operatörler
Mantıksal işlemlerinizde kullanabileceğiniz bir çok operatörü Delphi size sunmaktadır. Aşağıda bu operatörlerden bahsedilmektedir.
o Not
Dönen değerin olumsuzunu belirtmek için kullanılan Mantıksal operatördür (Eğer true dönerse false. False dönerse true). Genellikle dallanma, karşılaştırma işlemlerinde kullanılır.
Eğer yukarıdaki if satırında “not” komutu kullanılmazsa, formun başlığında hiç bir zaman metninizi yazdıramazsınız. Burada şunu da hatırlatalım, Boolean tip bir değişken tanımlandığı anda varsayılan değeri false dır.
o And
Aynı anda iki sonucu beraber değerlendirebilmek amaçlı kullanılan bir operatördür. Genellikle karşılaştırma gerektiren (if - Case vs.) durumlar için
aynı anda birden fazla şartı sağlama amaçlı kullanılmaktadır.
o Or
Belirtilen sonuçlardan herhangi bir tanesinin doğruluğunun yeterli olduğu durumlarda kullanılan bir operatördür. Genellikle karşılaştırma gerektiren (if – case) durumlar için şartlardan herhangi bir tanesinin sağlanmasının yeterli olduğu durumlar için kullanılır.
Aşağıda hem “and” hem de “or” için örneklendirme yapılmıştır.
İlk Olarak “and” operatörünü örneklendirelim. Örnekte notun 50 ile 100 arasında olması şartı aranmaktadır. Dikkat edeceğiniz husus hem 50 den büyük, hem de 100 den küçük olma zorunluluğudur.
o And
Aynı anda iki sonucu beraber değerlendirebilmek amaçlı kullanılan bir operatördür. Genellikle karşılaştırma gerektiren (if - Case vs.) durumlar için
aynı anda birden fazla şartı sağlama amaçlı kullanılmaktadır.
o Or
Belirtilen sonuçlardan herhangi bir tanesinin doğruluğunun yeterli olduğu durumlarda kullanılan bir operatördür. Genellikle karşılaştırma gerektiren (if – case) durumlar için şartlardan herhangi bir tanesinin sağlanmasının yeterli olduğu durumlar için kullanılır.
Aşağıda hem “and” hem de “or” için örneklendirme yapılmıştır.
İlk Olarak “and” operatörünü örneklendirelim. Örnekte notun 50 ile 100 arasında olması şartı aranmaktadır. Dikkat edeceğiniz husus hem 50 den büyük, hem de 100 den küçük olma zorunluluğudur.
Şimdi de diğer operatörümüz olan “Or” seçeneğini örneklendirelim. Örneğimizde notlar isimli değişkenin değeri kontrol edilerek, şayet “0” dan
küçük veya “100” den büyük olması durumunda gerekli olan uyarı, formun başlığında kullanıcıya iletilmektedir. Dikkat edeceğiniz husus, belirtilen
şartlardan bir tanesinin true değeri döndürmesinin (doğru olması) uyarının verilmesi için yeterli olacağıdır.
küçük veya “100” den büyük olması durumunda gerekli olan uyarı, formun başlığında kullanıcıya iletilmektedir. Dikkat edeceğiniz husus, belirtilen
şartlardan bir tanesinin true değeri döndürmesinin (doğru olması) uyarının verilmesi için yeterli olacağıdır.
Procedure içerisinde notlar isimli değişkenin değeri “100” den büyük olduğu için ikinci şart sağlanmakta, dolayısıyla (şartlardan birisi true olduğu için) if satırı true değerini döndürmekte ve uyarı mesajını da formun başlığında kullanıcıya göstermektedir.
Delphi’de Diğer Atama İşlemleri
Delphi’de atama işlemleri “:=” operatörüyle yapılabilmektedir. Bu husususanıyorum şu ana kadar yaptığımız örneklerden anlamışsınızdır. Fakat Delphi kendi fonksiyonlarını kullanarak daha hızlı atamalarda yapabilmektedir. Atama işleminin anlaşılması için ikilik düzendeki (Bilgisayar tüm işlemleri ikilik düzende gerçekleştirir.) aşağıdaki örnekleri dikkatlice inceleyiniz. Bellekte iki bayt (16 bit) yer tutan bir değişkene nasıl atama yapılabileceğini göstereceğim.
Örneğimiz için kullandığım kod aşağıda verilmiştir.
Örneğimiz için kullandığım kod aşağıda verilmiştir.
Burada Delphi’nin ilk yaptığı iş “x” değişkenine bellekte 16 bitlik (her 0 veya 1 bir bit demektir) yer ayırmaktır (içerisinde de rastgele 0 – 1 ler bulunur).
Yukarıdaki şekil x değişkenine ayrılan 16 bitlik yeri göstermektedir. Daha sonra bu değişkene aktarılmak istenen “7+5” değeri, için iki sayıyı da ikilik düzene çevirip ondan sonra toplama işlemini yapmaktadır.
“7” Sayısının ikilik düzende karşılığı (devamlı bölüm değerini 2 ye bölün) alt satırda verilmiştir.
“7” Sayısının ikilik düzende karşılığı (devamlı bölüm değerini 2 ye bölün) alt satırda verilmiştir.
Aynı şekilde “5” sayısının ikilik düzendeki karşılığı da aşağıdaki satırda size verilmektedir.
Artık bu ikisini kolaylıkla toplayacaktır.
“7+5=13” satırını Delphi size yukarıdaki şekilde hesaplayabilmektedir. İlk etapta size biraz karışık gelebilir, ama bu yöntem gerçekten son derece kolaydır. Kullandığınız hesap makineleri de sonuçları hep bu mantıkla hesaplamakta (Yoksa bütün çarpım sonuçları hafızada tutulmamaktadır. Zaten böyle bir veritabanı oluşturmak her babayiğidin harcı olmayacaktır) sonucu kısa süre içerisinde verebilmektedir.
• x:=x+1 Ataması:
Bu atama yöntemiyle “x” değişkeninin bir fazlası tekrar “x” değişkenine aktarılmaktadır (Burada eşitlik söz konusu değildir. Hiç bir matematiksel
değerin bir fazlası kendisine eşit olamaz).
procedure TForm1.Button6Click(Sender: TObject);
var
x:Integer;
begin
x:=10;
x:=x+1; //Sonuç x 11 oldu.
end;
• x:=a+b Ataması:
“a” değişkeni ile “b” değişkeninin matematiksel değerleri toplanıp “x” değişkenine aktarılmaktadır.
procedure TForm1.Button6Click(Sender: TObject);
var
x:Integer;
begin
x:=20+70; //Sonuç x 90 oldu.
end;
Burada yapılan işlemlerin eşitlik değil, atama olduklarını tekrar hatırlatırım.,
• Inc(x) Ataması:
x:=x+1;
“x” değişkeninin değerini bir artırarak tekrar “x” değişkenine aktarır.
procedure TForm1.Button6Click(Sender: TObject);
var
x:Integer;
begin
x:=10 ;
inc(x); //Sonuç x değişkeninin değerini bir artır.
Form1.Caption:=IntToStr(x); //11 yazar.
end;
Aşağıdaki şekilde bir kullanıma Delphi izin vermeyecektir.
procedure TForm1.Button6Click(Sender: TObject);
var
x:Integer;
begin
x:=10 ;
//inc(x);//Sonuç x 11 oldu.
Form1.Caption:=IntToStr(inc(x)); // Delphi bu atamaya izin vermez
end;
• Inc(x,5) Ataması:
x:=x+5;
“x” değişkeninin değerini beş (5) artırarak tekrar “x” değişkenine aktarır.
procedure TForm1.Button6Click(Sender: TObject);
var
x:Integer;
begin
x:=10 ;
inc(x,5);//Sonuç x 15 oldu.
Form1.Caption:=IntToStr(x); //15 yazar
end;
Inc(x,5); satırında “5” in yerine herhangi bir değişkenin ismini de kullanabilirsiniz.
procedure TForm1.Button6Click(Sender: TObject);
const
deger:Integer=15;
var
x:Integer;
begin
x:=10 ;
inc(x,deger);//Sonuç x 25 oldu.
Form1.Caption:=IntToStr(x); //25 yazar
end;
Görüldüğü gibi değişken değeri kullanılarak da fonksiyon işlevini yapabilmektedir.
• Dec(x) Ataması:
x:=x-1;
“x” değişkeninin değerini bir azaltarak tekrar “x” değişkenine aktarır.
procedure TForm1.Button6Click(Sender: TObject);
var
x:Integer;
begin
x:=10 ;
Dec(x); //Sonuç x değişkeninin değerini bir azalt.
Form1.Caption:=IntToStr(x); //9 yazar.
end;
• Dec(x,5) Ataması:
x:=x-5;
“x” değişkeninin değerini “5” azaltarak tekrar “x” değişkenine atar.
procedure TForm1.Button6Click(Sender: TObject);
var
x:Integer;
begin
x:=10 ;
Dec(x,5);//Sonuç x 5 oldu.
Form1.Caption:=IntToStr(x); //5 yazar
end;
Dilerseniz Dec(x,degisken) şeklinde de kullanabilirsiniz. Aşağıda bu husus örneklendirilmiştir.
procedure TForm1.Button6Click(Sender: TObject);
const
deger:Integer=15;
var
x:Integer;
begin
x:=10 ;
Dec(x,deger); //Sonuç x -5 oldu.
Form1.Caption:=IntToStr(x); //-5 yazar
end;
Inc() ve Dec() fonksiyonuyla yapacağınız atamaların daha hızlı çalışacaklarını belirtip bu konuyu burada kapatmayı uygun gördüm.
değerin bir fazlası kendisine eşit olamaz).
procedure TForm1.Button6Click(Sender: TObject);
var
x:Integer;
begin
x:=10;
x:=x+1; //Sonuç x 11 oldu.
end;
• x:=a+b Ataması:
“a” değişkeni ile “b” değişkeninin matematiksel değerleri toplanıp “x” değişkenine aktarılmaktadır.
procedure TForm1.Button6Click(Sender: TObject);
var
x:Integer;
begin
x:=20+70; //Sonuç x 90 oldu.
end;
Burada yapılan işlemlerin eşitlik değil, atama olduklarını tekrar hatırlatırım.,
• Inc(x) Ataması:
x:=x+1;
“x” değişkeninin değerini bir artırarak tekrar “x” değişkenine aktarır.
procedure TForm1.Button6Click(Sender: TObject);
var
x:Integer;
begin
x:=10 ;
inc(x); //Sonuç x değişkeninin değerini bir artır.
Form1.Caption:=IntToStr(x); //11 yazar.
end;
Aşağıdaki şekilde bir kullanıma Delphi izin vermeyecektir.
procedure TForm1.Button6Click(Sender: TObject);
var
x:Integer;
begin
x:=10 ;
//inc(x);//Sonuç x 11 oldu.
Form1.Caption:=IntToStr(inc(x)); // Delphi bu atamaya izin vermez
end;
• Inc(x,5) Ataması:
x:=x+5;
“x” değişkeninin değerini beş (5) artırarak tekrar “x” değişkenine aktarır.
procedure TForm1.Button6Click(Sender: TObject);
var
x:Integer;
begin
x:=10 ;
inc(x,5);//Sonuç x 15 oldu.
Form1.Caption:=IntToStr(x); //15 yazar
end;
Inc(x,5); satırında “5” in yerine herhangi bir değişkenin ismini de kullanabilirsiniz.
procedure TForm1.Button6Click(Sender: TObject);
const
deger:Integer=15;
var
x:Integer;
begin
x:=10 ;
inc(x,deger);//Sonuç x 25 oldu.
Form1.Caption:=IntToStr(x); //25 yazar
end;
Görüldüğü gibi değişken değeri kullanılarak da fonksiyon işlevini yapabilmektedir.
• Dec(x) Ataması:
x:=x-1;
“x” değişkeninin değerini bir azaltarak tekrar “x” değişkenine aktarır.
procedure TForm1.Button6Click(Sender: TObject);
var
x:Integer;
begin
x:=10 ;
Dec(x); //Sonuç x değişkeninin değerini bir azalt.
Form1.Caption:=IntToStr(x); //9 yazar.
end;
• Dec(x,5) Ataması:
x:=x-5;
“x” değişkeninin değerini “5” azaltarak tekrar “x” değişkenine atar.
procedure TForm1.Button6Click(Sender: TObject);
var
x:Integer;
begin
x:=10 ;
Dec(x,5);//Sonuç x 5 oldu.
Form1.Caption:=IntToStr(x); //5 yazar
end;
Dilerseniz Dec(x,degisken) şeklinde de kullanabilirsiniz. Aşağıda bu husus örneklendirilmiştir.
procedure TForm1.Button6Click(Sender: TObject);
const
deger:Integer=15;
var
x:Integer;
begin
x:=10 ;
Dec(x,deger); //Sonuç x -5 oldu.
Form1.Caption:=IntToStr(x); //-5 yazar
end;
Inc() ve Dec() fonksiyonuyla yapacağınız atamaların daha hızlı çalışacaklarını belirtip bu konuyu burada kapatmayı uygun gördüm.