C# Programlama Dili Dersleri 2

C# PROGRAMLAMA DİLİ DERSLERİ – 2

C#’t a karakterler nedir ? Sayı tipleri nedir ? Aritmetik operatörler , mantıksal operatörler nedir ? C# dilinde sınıflar nedir ? Bu ve benzeri sorulara cevap aradığımız bu yazı dizisinde C# Programlama Dili Dersleri’ne  ve  C#’a dair ilgili incelemelerimize devam ediyoruz.

C# PROGRAMLAMA DİLİ

C#’ta dokuz adet tamsayı tipi tanımlıdır (byte , sbyte , short , ushort ,int , uint , long , ulong)

İşaretli ve işaretsiz tamsayılar arasındaki fark ise , tamsayının üst bitinin (high order) yorumlanma durumlarına bağlıdır.İşaret bayrağı işaretli tamsayıda C# tarafından üst bite göre kod oluşturularak belirtilir.

Eğer işaret bayrağı 0 ise sayı pozitiftir , 1 ise sayı negatiftir.

C#’ta sinüs , kosinüs ve tanjantı hesaplamak adına Math.Sin() , Math.Cos () ve Math.Tan () kullanılmaktadır.Math.Sqrt () gibi trigonometrik metotlar double argüman ile çağrılıp double bir sonuç döndürürler.

Decimal Tipi :

Decimal tipi 1E-28 ile 7.9E+28 arasındaki değerleri simgelemek adına kullanılır.Decimal ondalık sayılara uygulandığında yuvarlama hatalarını ortadan kaldırır.

Bu tipi özellikle bellek gerektiren hesaplamalarda kullanmalısınız.

Karakterler :

C#’ta Unicode adı verilen 16 bitlik bir karakter tipi kullanılır.Standart 8 bit ASCII karakter seti , Unicode’un bir alt kümesidir ve 0’dan 127’ye kadar uzanır.

Bool Tipi :

Bool tipi ‘’ya doğru ya yanlış’’ True/False mantığında çalışır.1 true’ya dönüşmez , 0’da false’a .

Bazı Çıktı Seçenekleri :

WriteLine()’ı kullanıyorduk , bunu not edelim hemen.Ek olarak Formatted I/O (biçimlendirilmiş I/O) çıktı seçenekleride kullanılmaktadır.

Örnek olarak program çıktınız , 10/3 = 3.33333333 şeklinde olsun.Bu kadar çok ondalık basamak göstermek amaçlarınız için uygun olmayabilmektedir.O zaman ikinci bir WriteLine() stili öğrenelim .

WriteLine(“biçimlendirme karakter katarıi” , arg0 , arg1 ,  … , argN);

Burada ‘+’ işareti ile değilde , virgül ile ayrılır.

Burada baskı karakterleri ve biçimlendirme belirleyicileri olmak üzere iki öğe içerir.Ve biçimlendirme belirleyicileri şu şekilde bir görünüme sahiptir.

{argno , genişlik : fmt}

Argno  ; gösterilecek argüman sayısını (0’dan başlayarak) belirtir.Minimum genişliği genişlik ile ; biçim ise fmt ile belirtilir.

Yani bir biçimlendirme belirleyicisine rastladığında programda , argno’ya karşılık gelen argüman argno’nun yerine yerleştirilir.Genişlik ve fmt ise isteğe bağlı olarak kullanılır.

Örnek olarak  ;

Console.WriteLine (“Şubat {0}  yada {1} gündür ” 28 , 30);

Şubat 28 ya da 30 gündür çıktısını alırız buradan.

{0,10} şeklinde bir ifade koysaydık şubattan sonra  10 adet boşluk bırakarak 28’i yazacaktı.

Biçimlendirme de en çok kullanılan veri tipleri kayan noktalı ve ondalık değerlerdir.Bunun için WriteLine() ‘#’ konsolu kullanılır.

Örnek : {0:#.##} şeklinde kullanılabilir.

Mesela  ; ConsoleWriteLine(“{0:###,###.###}” , 123456.12);

Çıktısı ise ; 123,456.12 çıktısını verecektir.

Literaller :

İnsanların okuyabileceği biçimde temsil edilen sabit değerlere karşılık gelir.Mesela ; 50 sayısı bir literaldir.Aynı şekilde literaller sabitler(constant) şeklinde de ifade edilirler.

Herhangi bir değer tipinde literal olabilir.Bu literallerin gösteriliş şekli ise literalin tipine bağlıdır.

Literaller int , uint , long ya da ulong tipinde olabilirler.Yada kayan noktalı literaller ‘double’ tipindedir.

C#’ta bir literal tipi belirtmek istiyorsanız ;

12 int tipindedir.L ekleyerek 12L’yi long tipinde gösterebilirsiniz.İşaretsiz bir tamsayı belirtmek adına u ve ya U ekleyebiliriz.Bir float’ı belirtmek adına u1 ve ya UL kullanabiliriz.

Onaltılık Literaller ; Hexadecimal olarak duyuyor ya da duyacak olduğunuz tiptir.0-9 arası rakamlarla , ardından A’dan F’e kadar harfler kullanılarak simgelenir.

Örnek olarak : 0xFF (ondalık taban karşılığı 255’tir.)

Karakter Kaçış Sekansları ; Tek tırnak ve çift tırnakların C#’ta özel anlamları da olduğu için  problemler meydana gelebilir.Bu sebeple de birkaç kaçış sekansı kullanılmaktadır.

\a -> uyarı(zil) anlamındadır.

\b-> backspace(geri al) anlamındadır.

\f-> form feed (form besleme) anlamındadır

\n-> newline(yeni satır) anlamındadır.

\r-> carriage return (paragraf sonu) anlamındadır.

\t->yatay sekme anlamındadır.

\v-> düşey  sekme anlamındadır.

\0-> Null anlamındadır.

\’->Tek tırnak anlamındadır.

\”->Çift tırnak anlamındadır.

\\-> Ters bölü anlamındadır.

Karakter Katarı Literalleri  :

Karakter katarı literali -> çift tırnak arasına alınan bir karakter kümesidir.

“bu bir deneme yazısıdır.”

Değişkenler ;

‘ Tip değişken-ismi ‘ şeklinde ifade edilirler.

Tip; değişken veri tipini , değişken-ismi de o değişkene verilen isimdir.

C#’ta tüm değişkenler kullanılmadan önce deklare edilmelidir.

Bir değişkene ilk değeri atayalım beraber ;

İnt count = 10 ;

Char ch = ‘C’;

Float f = 1.5F gibi.

Bu dilde değişkenlerin tümü Main() metodunun başında tanımlanmaktaydı ancak C# bir yerel değişkenin blok içerisinde deklare edilmesine imkan tanımaktadır.

En önemli kapsamlar ise ; bir sınıf ve bir metot tarafından tanımlananlardır.

Tip Dönüşüm ve Atamaları :

Bir integer değeri float değere atamak istediğimizi varsayalım ;

İnt i ;

Float f ;

İ = 10 ;

F = i ;

İnteger’ı float’a atıyoruz.(basit bir örnek)

Otomatik Dönüşüm ;

Bir tipteki verinin diğer bir tipteki değişkene atanmasının otomatik olarak dönüşmesi durumunu sağlayan koşullar;

  • Her iki tip uyumlu olmalı
  • Hedef tip , kaynak tipten daha büyük olmalıdır

Her iki koşul da sağlanırsa , genişletici dönüşüm (widening conversion) söz konusu olacaktır.

Operatörler  :

Toplama (+) , Çıkarma (-) , Çarpma (*) , Bölme (/) , Artırma (++), Eksiltme (–)

Eğer artırma/azaltma operandları ifadenin önünde kullanılırlarsa (–x / ++x) gibi , C# geri kalan kısımda operandın değerini hesap etmeden önce işlemi gerçekleştirir.

Örnek :

X = 10 ve y = ++x -> y = 11 değerini hemen alacaktır.

X = 10 ve y = x++ ->  y =10 değerini ilk başta alacaktır.

Mantıksal Operatörler :

Eşittir (==) , Eşit değildir (!=) , Büyüktür (>) , Küçüktür (<) , Büyüktür veya eşittir (>=) , Küçüktür veya eşittir (<=)

Ve (&) , Veya (|) , XOR özel veya(^) , Kısa devre veya (||) , Kısa devre ve (&&) , Değil (!)

Kısa Devre Mantıksal Operatörler ;

Bu operatörler  VE (&&) ve VEYA (||) operatörleridir.

Atama Operatörü ;

Atama operatörü (=)’dir.

Değişken = deyim ;

Bileşik Atamalar ;

X = x+ 10 ‘u  -> x +=10; şeklinde

X = x-50’yi -> x -=50; şeklinde yazabiliriz.

değişken op = deyim ; genel gösterimidir.

Aritmetik ve Mantıksal Atama Operatörleri ;

+= , -= , *= , /= , %= , &= , |= , ^=

Bit Tabanlı Operatörler ;

Yalnızca tamsayılar için geçerlidir.Bool , float , double üzerinde kullanılamazlar.

Bu operatörlere bit tabanlı adı verilmektedir çünkü bir tamsayı değeri oluşturan bitlerin test edilmesi , ayarlanması ve kaydırılması işlemlerinde kullanılır.

Bit Tabanlı VE (&) , Bit tabanlı VEYA (|) , Bit tabanlı XOR(^) , Sağa kaydırma (>>) , Sola kaydırma (<<)

? Operatörü ;

Genel olarak belirli olan if-then-else ifadelerinin yerine kullanılır.? Operatörüne üçlü (ternary) operatör denilir.Nedeni ise  üç adet operand gerektirmesidir.

Kullanım Formu : Deyim1 ? Deyim2 : Deyim3;

Bu ifade de deyim1 bool deyimdir ve deyim2 ile deyim3 birer deyimdir.Deyim2 ve deyim3’ün tipleri aynı olmalıdır.

Eğer deyim1’in değeri doğru ise deyim2 hesaplanır .Yalnışsa deyim3 hesaplanır.

Program Kontrol İfadeleri  :

1 ) İf (koşul) ifade ;

else ifade;

2) if (koşul)  ifade ;

else if (koşul) ifade ;

else if (koşul) ifade ;

else ifade ;

3)switch (deyim) {

case sabit1 : ifade break ;

case sabit2 : ifade break ;

……

Default : ifade break ;  }

Not : Default ifadesi isteğe bağlıdır.Case ilişkili ifadelerin bir sonraki case içerisinde devam etmesi hatalıdır ve buna bir sonraki seçeneğe kaymama (no-fall-through) kuralı denir.

4) for (başlangıç ; koşul ; iterasyon) ifade ;

Not : iterasyon döngünün her tekrarlanışında döngü kontrol değişkeninin ne ölçüde değiştirileceğini tanımlar.

5) while (koşul) ifade ;

6)do { ifadeler ;  0    } while (koşul) ;

7)continue  ifadesi ile , döngüyü bir sonraki tekrarını gerçekleştirmeye zorlayarak , arada yer alan kodun dikkate alınmamasını sağlayabiliriz.

Sınıf – Nesne – Metotlar :

Sınıflar , C#’ın özüdür.Tüm C# faaliyetleri bir sınıf içerisinde meydana gelmektedir.Sınıf bir nesnenin şeklini tanımlayan bir şablondur.

Nesne tanımlanması için sınıf spesifikasyonu kullanılır.

Sınıf ‘class’ anahtar kelimesi kullanılarak oluşturulur.

Örnek ;

Class sınıfismi {

Erişim tip değişkeni1;

Erişim tip değişkeni2;

Erişim tip değişkenin ;

Erişim dönüş-tipi metot1 (parametreler) {  metod gövdesi }

…..

}

Burada erişim ilgili üyeye ne şekilde erişileceğini belirten bir erişim belirleyicisidir.Örnek olarak ; Public vb.

Bina adında bir sınıf oluşturalım ;

class bina {

public int katlar ;

public int odalar ;

}

Kullanım : erişim tip değişken-ismi ;

Bir bina nesnesi oluşturmak için ;

Building house = new Building (); Building tipinde bir nesne oluşturur.Ve fiziksel gerçeklik kazandırır.

Nokta (.) operatörü bir nesnenin ismini bir üyenin ismi ile bağlar.

Örnek : nesne.üye

Örnek = house.floors = 2;

C# PROGRAMLAMA DİLİ DERSLERİ 2 SONUÇ :

Bugünki yazımızda C# Programlama Dili Dersleri 2 adlı yazımızı sizlerle paylaştık.Bu seri de C#’a dair bir takım bilgileri beraber incelemek umuyorum hepimiz için faydalı olacaktır.Hemen hemen aynı mantık üzerinden programların çalışmasını anlamaya çalışarak , istediğiniz dilde daha hızlı ilerleyebileceğimizi düşünmekteyiz.

İyi çalışmalar.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

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