Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne göre bellekte yer ayrılır. Program içerisinde veriler bu değişkenlere atanarak işlemler dinamik hale getirilir ve kolayca işlenebilir. Değişkenler için en önemli iki özellik değişkenin veri tipi ve faaliyet alanıdır. Değişken isimlendirmesinde bazı kurallara uyulmalıdır. 1. Değişken mutlaka bir harf (İngiliz alfabesinin 26 harfinden biri) ile başlamalıdır. Rakam ve alt çizgi (_) karakterleri de değişken isminde kullanılabilir. 2. Değişken ismi 40 karakteri geçmemeli. 3. Visual C# Komutları ve fonksiyonları kullanılmamalıdır 4. Değişken adı arasında boşluk bulundurmamalıdır. 5. C# ‘da değişken adlandırmada küçük‐büyük harf ayırımı vardır. Yani program içinde , AD, ad ve Ad farklı değişkenleri ifade etmektedir. Geçerli değişken isimleri : baslamaZamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while
Veri Tipleri
Değişkenlerin Tanımlanması C#’da program içinde kullanılacak değişkenler, veri tipi ile birlikte tanımlanır. Örneğin : int sayi1; string soyad; double x,y; Değişkenler tanımlandıkları yerlere göre “lokal” veya “global” olmak üzere ikiye ayrılırlar. Lokal değişkenler bir metod içerisinde tanımlanan ve bu metodun dışında geçerli olmayan değişkenlerdir. Global değişkenler ise kullanılan sınıfa özgü ve sınıfın her yerinde kullanılan değişkenlerdir.
Diziler Aynı özelliğe sahip elemanların bir araya getirdiği gruba dizi denir. Diziler tek boyutlu, iki veya üç boyutlu olabilir. Dizideki herhangi bir elemanı tanımlayabilmek için bir değer vermek yeterli oluyorsa bu dizilere tek boyutlu diziler denir. Matematikteki sayı dizileri tek boyutlu diziler için iyi bir örnek olabilir. Eğer dizideki bir elemanı tanımlamak için en az iki değer vermek gerekiyorsa bu dizilere de iki boyutlu diziler denir. Bunlara en güzel örnek matematikteki matrislerdir. Diziler belirli kurallara uymak suretiyle tanımlanabilir. Dizilerin ilk elemanı 0. eleman olmaktadır. 11 elemanlı bir sayilar dizisi aşağıdaki şekilde tanımlanır: int [ ] sayilar=new int [11]; İki veya üç boyutlu diziler ise boyutlar arasına virgül konularak tanımlanır. Örneğin 4 satır 7 sütünlu bir c matrisi aşağıdaki şekilde tanımlanır : int [ , ] c = new int [4,7];
Sabitler Programda değerinin değişmesini istemediğiniz değerler için tanımlanır. Const veri_tipi sabit_ismi = değeri; Örnek :
const float pi = 3.1415;
şeklinde yapılır. Sabitin değerinin program içinde değiştiremeyiz.
Değişkenlere Başlangıç Değeri Verilmesi Varsayılan olarak sayısal değişkenlerin değeri 0, alfabetik değişkenlerin değeri boş karakterdir. Değişkenlere başlangıçta değer vermek istenirse, aşağıdaki şekilde yapılabilir : int x=3; string adSoyad = “Ümit KOCABIÇAK”; float boy=1.83; bool evli = true;
Dizinin elemanlarına değer aktararak aşağıdaki şekilde tanımlayabiliriz : string[ ] gunler = new string[ ] {“Pzt”, “Salı”, “Çar”, “Per”, “Cuma”, “Cmt”, “Pzr”};
İfadeler Her türlü sabit, değişken ve fonksiyonlardan meydana gelen ve program satırında eşitliğin sağ tarafında yer alan kısma ifade adı verilir. İfadelerin sol tarafında bir değişken ve onu izleyen atama (=) operatörü yer alır. Sağ taraftaki ifadede elde edilen değer, sol taraftaki değişkene (veya özelliğe) aktarılır. İfadelere örnekler : hiz = yol / zaman; x = y * z + 3; C#’da satırlar (;) ile sonlandırılır. İfade bir satıra sığmazsa, alt satıra devam edilebilir. (;) işaretine kadar satır devam edecektir. Programın değişik yerlerinde, açıklama yapma ihtiyacı doğabilir. Açıklama amacıyla kullanılacak satırlar // ile başlamalıdır. Örnek : // Bu program ikinci derece denklemin köklerini bulur. // DELTA hesaplanıyor. D = B * B – 4 * A * C; Birçok satır açıklama amacıyla kullanılacaksa, açıklama satırları /* ile */ arasında yer almalıdır. Örnek : /* bu program bileşik faiz hesabını yapar. */
Tip Dönüşümü Şöyle bir örnekle tip dönüşümünü açıklamaya çalışalım. A ve b değişkenleri byte veri tipi olan değişkenler olsun. C’de byte tipinde ve a ile b’nin toplamı olan bir değişken olsun. Program çalıştığında hata verecektir. Çünki a ve b’nin toplamı int tipinde bir değer verir. byte a=54, b=33; byte c=a+b; Eğer byte c=a+b; yerine int c=a+b; yazsaydık hata vermeyecekti. Çünki toplam int veri tipinin içine sığabilecekti. Yani dönüştürülecek veri tipinin boyutu hedef veri tipinin boyutundan büyükse, C# bunu otomatik olarak dönüştüremez ve hata verir. float d = 2.68F; int e = (int) d; Burada float veritipinde olan d değişkeni int veritipinde olan e değişkenine atanıyor. Hata vermemesi için d değişkeninin soluna (int) yazıp dönüşümü sağlıyoruz. e değişkeninin değeri bu atamdan sonra 2 değerini alır.
Tip Dönüşümü Tip dönüşümü için ayrıca Convert sınıfının metotları da kullanılabilir. int e = Convert.ToInt32(d); şeklinde de yazabiliriz.
Sayısal İfadeler
Bilgisayarda aritmetik işlemlerde bir öncelik derecesi vardır. Bu öncelik derecesi aşağıdaki gibi sıralanmaktadır 1. Parantez içi 2. Çarpma veya Bölme 3. Modüler Aritmetik 4. Toplama veya çıkarma X = X + 3 ifadesini istersek X + = 3 şeklinde yazabiliriz. Örnekler : A * = C Î A = A * C X / = 2 Î X = X / 2 Ayrıca a++; ifadesi a=a+1; ifadesiyle aynıdır. Benzer şekilde a‐‐; ifadesi de a=a‐1; ile aynıdır.
İlişki İfadeleri İki değeri karşılaştırmak amacıyla kullanılan ifadelerdir. Karşılaştırılan değerler sayısal veya karakter şeklinde olabilir.
Mantıksal İfadeler Bu ifadeler iki veya daha fazla ifade arasında kullanılırlar. Mantıksal operatörlerle iki veya daha fazla ilişkiyi birbirine bağlarlar, sonunda Doğru ya da Yanlış değerini hesaplarlar. Bunlardan en önemlileri ! (Değil), && (ve) ve || (veya) ‘dır. Aşağıdaki tabloda bu operatörlerin doğruluk değerleri gösterilmiştir. Visual Basic ‘te Doğru ifadesi olarak True kelimesi, Yanlış ifadesi olarak False kelimesi kullanılır. (D: Doğru, Y: Yanlış)
String Metotlar 1) Sayısal bir değişkeni string’e (karakter) çevirmek için ToString metodu kullanılır. Özellikle formlarda text kutularına yazdırılırken fayda sağlar. Aynı etkiyi Convert.ToString(ifade)’de sağlar. x = 2.3452; txtSayi.Text=x.ToString();
2) Özellikle kesirli sayıların noktadan sonraki istenilen miktardaki hanelerini göstermek için, String.Format metodu kullanılır. x = 2.3452; txtSayi.Text=String.Format(“{0:f3}”,x); şeklinde bir program parçasında x değişkeninin noktadan sonra 3 hanesi gösterilecektir (2.345). 3) Alfabetik değişkenlerin karakter sayısını bulmak için, Length özelliğinden yararlanılır: ad=”Sakarya”; uzunluk=ad.Length; // uzunluk değeri 7 bulunur 4) Alfabetik değişkenlerin belli bir kısmını elde etmek için Substring metodu kullanılır. ad=”Sakarya”; ad2=ad.Substring(3,2); // sonuçta ka elde edilir
String Metotlar 5) Alfabetik ifadeleri büyük harfe dönüştürmek için ToUpper, küçük harfe dönüştürmek için ToLower metotları kullanılır. ad=”sakarya”; buyuk=ad.ToUpper(); // sonuçta SAKARYA elde edilir kucuk=ad.ToLower(); // sonuçta sakarya elde edilir 6) Alfabetik ifadedeki herhangi bir karakteri başka bir karakterle değiştirmek için Replace metodu kullanılır. ad=”sakarya”; ad=ad.Replace(‘a’ , ‘*’); // sonuçta s*k*ry* elde edilir 7) Alfabetik ifadedeki baştaki ve sondaki gereksiz boşlukları kaldırmak için Trim metodu kullanılır. ad=” Sakarya ”; ad=ad.Trim(); // sonuçta ad=”Sakarya” elde edilir.
8) Alfabetik bir ifadeyi char tipi bir diziye çevirmek için ToCharArray metodu kullanılır. ad=”sakarya”; char[] dizi=ad.ToCharArray(); //sonuçta dizi[0]=’s’, dizi[1]=’a’, dizi[6]=’a’
Random Sayı Üretme Bazı uygulamalarda rasgele sayılara ihtiyacımız olabilir. İlk önce random sayı için Random sınıfından bir nesne oluşturulur : Random rasgele_sayi = new Random( ); Rasgele tamsayı üretmek için Next metodu kullanılır : rasgele_sayi.Next(10); Next metodunun değeri, oluşturulacak rasgele sayının üst değerini vermektedir. Yukarıdaki örneğe göre 0 ile 9 arasında tamsayı rasgele sayı üretilecektir. 100 ile 200 arasında rasgele sayı üretmek için; rasgele_sayi.Next(101)+100; ifadesini yazmalıyız.
Matematik Fonksiyonlar Buradaki her bir matematik fonksiyonu Math sınıfından gelmektedir. Bu sebeple fonksiyon isminden önce Math sınıfını yazmalıyız.