
Bu anlatımda C# Consol uygulamalarında kullandığımız ilişkisel, mantıksal arttırma ve azaltma operatörlerinden ve yazı çok uzamasa eğer diziler konuları derlenecektir.
İlişkisel Operatörler
Normal eşitliklerden farklı olan bu eşitlikler. Ek olarak bir işaret eklenme ile oluşturulurlar. Bunu asıl amacı eşitliğe “bu böyle mi ?” diye sorma şeklidir. Eğer ki eşitlik veya eşitlik doğru yanıt verirse ifade boolean cinsinde “true” olarak yanıt verir. Denildiği şekilde değilse “false “biçiminde yanıt verir.
Döngülerde ve şartlı ifadelerde bu ilişkisel operatörleri kullanabilirsiniz, mesela, if şartlı ifadesinde, while – do ifadesinde kullanabilirsiniz. Çünkü bunları sonucu “true” veya “false” gibi boolean değişken tipinde cevap vermektedir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// İlişkisel Operatörler int a, b, c, d, e; a = b = c = d = e = 0; if (a==b) // a b 'ye eşit mi ? { // Kodlarımız } else if (a!=b) // a be ye eşit değil { // Kodlarımız } while (a<=b) { // Kodlarımız } |
Örnekte görüldüğü gibi iki farklı değişkeni bir biri ile karşılaştırdığımızda ilişkisel operatörler kullanırız.
Bu ilişkisel operatörler aslında bir nevi iki sayı karşılaştırıldığında boolean değişkeni olarak cevap vermesidir.
1 2 3 4 5 6 7 8 |
// bool değişkeni ve ilişkisel operatörler. string a, b; Console.WriteLine("Bir string değeri giriniz"); a = Console.ReadLine(); Console.WriteLine("İkinci bie string değeri giriniz"); b= Console.ReadLine(); bool f; f = (a== b); // burada f değeri doğru veya yanlış olarak değer alır. == işareti sadece mukakeme yapar cevap verir |
İlişkisel operatörleri kullanarak bir bool değişkenine atayabiliriz. Ve bunun kendi şartlı veya döngülerimizde kullanabiliriz.
Mantıksal Operatörler
Mantıksal operatörler aslında bizim matematikte kullandığımız mantıkla hemen hemen aynı işlemi yapmaktadırlar. Tek fark olarak semboller biraz farklıdır. Yani demek istediğimiz “ve” ,”veya”, değil” gibi işlemlerinin bütününü programlamada kullanmanız mümkündür.
Mantıksal operatörler aşağıda verildiği gibi türleri bulunmaktadır.
&& : Bu işaret mantıksal operatör olarak “VE” demektir. İngilizce anlamıyla “AND” olarak bilinir.
|| : Bu işaret mantıksal operatör olarak “VEYA” demektir. İngilizce anlamıyla “OR” olarak bilinir.
! : Bu işaret mantıksal operatör olarak “DEĞİL” demektir. İngilizce anlamıyla “NOT” olarak bilinir.
^ : Bu işaret mantıksal operatör olarak “XOR” demektir. İngilizce anlamıyla “XOR” olarak bilinir.
Bu operatörleri kullanarak programınızda beraber oluşturduğunuz şart ve durumları düzenleyebilir ve kontrol edebilirsiniz.
Detaylı bir örnek yapacak olursak bir kullanıcı adı parola sistemi gibi bir örnek bize daha da açıklayıcı olabilir.
Bu örnekte programı yazarken kaydettiğimiz kullanıcı adı ve parolalar olsun.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// Mantıksal operatörler ile kullanıcı adı ve parola sistemi string[] Kullanıcılar = { "Admin", "MüptezelBalık", "Ateistİmam", "YaralıBaykuş" }; string parola = "123456"; Console.WriteLine("Kullanıcı Adınızı Giriniz: "); string un = Console.ReadLine(); Console.WriteLine("Lütfen Parolanızı Giriniz: "); string pass = Console.ReadLine(); foreach (var item in Kullanıcılar) { if ((item==un)&&(pass==parola)) { Console.WriteLine("Hoşgeldiniz Sayın {0} Saat {1:t} Gün {1:d}", item,DateTime.Now); break; } else if (!(item == un) && (pass == parola)) { Console.WriteLine("Kullanıcı adı kayıtlı değil"); break; } else if ((item == un) && !(pass == parola)) { Console.WriteLine("Yanlış parola girdiniz"); break; } } |
Program akışında dikkat ederseniz daha önceki derslerde anlattığım yaklaşık çoğu operatörü kullandım.
Buradaki kullanılan mantıksal operatörlerin etkisi büyüktür. Çünkü mantıksal operatörler bir işi çoğunlukla zorlaştırmaya değil de kolaylaştırmaya yöneliktir.
Bir de şunu unuttuğum çok oluyor. Değil mantıksal operatörünü her zaman boolean değişkenli ifadenin önüne koymayı unutuyorum. Tabi sizde nasıl oluyor bilmiyorum. Şöyle ki boolean ifadesinin önüne değil ifadesi “!” konduğunda o ifade “true” ise “false” olur “false” ise “true” olacaktır. Bunu kullanımı çok rahatlatıcıdır. Kullanmanız durumunda fayda görürsünüz.
Arttırma Ve Azaltma Operatörleri
Arttırma ve azaltma operatörleri, kod akışında olan programın her işleyişi sırasında programın bizim istediğimiz miktarda artma veya azalmasını istediğimiz operatörleridir. Bir for döngüsü ile işi özetlemek gerekirse aşağıdaki gibi olur.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// Arttırma ve Azaltma Operatörleri int a = 15; int b = 15; Console.WriteLine("Birer arttırma ve azaltma"); for (int i = 1; i <= 5; i=i+1) { a++; // a=a+1 de kullanılabilir. b--; // b=b-1 de kullanılabilir. Console.WriteLine("a değeri: {0}",a); Console.WriteLine("b değeri: {0}", b); } Console.WriteLine("2 şer arttırma ve azaltma"); for (int i = 1; i <= 5; i++) { a = a + 2;// a=a+2 de kullanılabilir. b = b - 2;// aynı şekilde b=b-2 de kullanabiliriz . Console.WriteLine("a değeri: {0}", a); Console.WriteLine("b değeri: {0}", b); |
Diziler
Küçük çaplı uygulamalarda ve tek üç- beş değişkenle yapabileceğiniz kodlamada çok fazla uğraşmazsınız şayet 100 değişken gibi bir program yazacaksanız veya daha fazlasını yapma düşüncesinde iseniz dizileri kullanmaz iseniz zamanınızı boşa harcamış olursunuz. Demem o ki sizin becerileriniz aynı zamanda hızınızla da alakalı bir programcı bir yerden başlar ve başlaması onun gayretiyle eşdeğerdir. Bilgi bizi eğittiği gibi kolaylık da sağlayacaktır.
C#’ta Diziler nasıl yazılır
Tek boyutlu diziler aşağıdaki gibi ifade edilir. Tabi dizinin adı da bir dizi değişkeni olarak kaydedilir. Nasıl tekil değişkenlerde biz integer (int) , string, double vs gibi ifadelerde belirtiyorsak burada da aynı şekilde ve ek olarak köşeli parantez ile belirtmemiz gerekir. Aşağıdaki kodlamaları inceleyecek olursanız size bir fikir sunabilir.
Tek Boyutlu Diziler
Matris mantığı ile aynı mantıkta çalışan diziler tek boyutlu olduğunu değişken tipinin yanında kapalı bir köşeli parantez olması ve içi bir dizi olması bize tek boyutlu dizi olduğunu gösterir.
1 2 3 4 |
// Tek Boyutlu Diziler[Arraylar :)] string[] eşyalar = new string[5]; // Burada 5 elemanlı bir string değişkeni null bir şekilde atadık. string[] isimler = { "Derya", "Rüzgar", "Abdürrezzak", "Üseyin", "Cabbar" }; // Buradaki ifadede ise serbest istediğimiz string değerini atayabiliriz. string[] yerler = new string[6] { "Ölü Deniz", "Kapadokya", "Sahil", "Gülpınar", "Rize", "Çeşme" }; // Burada hem dizinin eleman sayısını hem diziyi belirledik. |
Unutulmamalıdır ki biz dizinin eleman sayısını belli ettiğimizde string[5] gibi mesela şeklinde belirtiriz. Fakat daha sonra bu diziden eleman çağırdığımızda isimler[0] ilk elemanımızdır. Yani elemanlarımız 0-1-2-3-4 diye indisleriz. Mesela ben isimler[3] indisli bir ifade çağırdığımda bana benim atadığım 4. elemanı verecektir. Bunun asıl önemi döngülerde göreceksiniz.
Çok Boyutlu Diziler
Bu tipteki diziler birçok satır ve sütundan oluşmaktadır. Tek boyutlu dizilerde olduğu gibi burada da aynı indisleme söz konusudur.
Burada dikkat edilecek husus indisler ve eleman sayısıdır. İndis her zaman eleman sayısından 1 eksiktir. Çok boyutlu dizilerden örnek verelim o zaman.
1 2 3 4 5 |
// Çok Boyutlu Diziler string[,] eşyalar = new string[5,2]; // Burada iki boyutu bir dizi bellirttik yani normal X-Y düzleminde olduğu gibi . double[,] iki_boyutlu = new double[4, 2] { { 14, 2 }, { 9, 4 }, { 6, 6 }, { 21, 8 } };// Burada da hem eleman sayısı hem de iki boyutlu olduğunu ifade edn "," işareti bulunmakatadır. int[,,] üç_boyutlu = new int[2, 2, 3] { { { 3, 2, 3 }, { 77, 25, 6 } }, // Üç boyutlu ifadeleri de bu şekilde ifade edebiliyoruz . { { 7,87, 7 }, { 10, 25, 12 } } }; |
İki boyutlu diziler işlek olarak kullanabileceğiniz dizilerdir. Ancak 3 boyutlu ve sonrasında olan diziler biraz karmaşık olabilmektedir. Bu sebeple eğer ki bir şeyi modellemeyecekseniz 2 boyutlu diziler sizin işinizi görecektir.
Görsel dizilerde anlatmış olduğumuz indisleme veya diğer deyişle indexleme ifadelerini özetler niteliktedir.
Dizi Sıralama – Sort Metodu
String değişken barındıran diziler kendi içlerinde ilk harfleri dolayısıyla sıralayabiliyoruz. Yani A-Z ‘ye gibi ya da sayıların sıralanması gibi sıralamalar yapar.
Kullanımı aşağıdaki gibidir.
1 2 3 |
// Sort Metodu int[] dizi={1,2,7,-1,-40} Array.Sort(dizi); // Bu diziyi sıralayıp içini sırlanmış hale getirir . |
Bir örnek yaparak işi daha da pekiştirelim…
Şimdi bizim elimizde bir kaç sayı ve isim olsun bu sayıları ve isimleri sıralamak istiyorsak aşağıdaki gibi olacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
// İsim sıralama string[] isimliste = { "Ahmet", "Mehmet", "Sultan", "Fatma" }; Console.WriteLine("Sıralanmamış : "); foreach (var isim in isimliste) { Console.WriteLine(isim); } Array.Sort(isimliste); Console.WriteLine("Sıralanmış : "); foreach (var isim in isimliste) { Console.WriteLine(isim); } // Sayıların sıralanması int[] sayilar = { 1, 9, 7, 15, 900, 1500, -1 }; Console.WriteLine("Sıralanmamış : "); foreach (var sayi in sayilar) { Console.WriteLine(sayi); } Array.Sort(sayilar); Console.WriteLine("Sıralanmış : "); foreach (var sayi in sayilar) { Console.WriteLine(sayi); } |
Bu anlatımın uzun olası kısa olan bilgileri bir araya toplamak istememden dolayı .
Umarım iyi olmuştur . Bir dahaki sefere görüşmek dileğiyle…