Holyone Yönetici
Mesaj Sayısı : 3850 Paylaşım Gücü : 9917 Rep Point : 106 Kayıt tarihi : 25/02/09 Yaş : 31
| Konu: C#'da İfadeler, Tipler ve Değişkenler C.tesi Eyl. 26, 2009 8:09 am | |
| Bu derste C# dilindeki ifadeler,tipler ve değişkenler anlatılacaktır. Dersimizin hedefleri : •Değişken kavramının anlaşılması.
•C# dilinde bulunan basit tiplerin öğrenilmesi.
•C# dilindeki ifadelerin temel olarak anlaşılması.
•String veri tipinin öğrenilmesi. Değişkenleri en sabit şekilde verilerin depolandğı yerler olarak tanımlayabiliriz. Değişkenlerin içine verilerimizi koyabilirirz veya değişkenlerimizin içindeki verileri C# programındaki işlemlerimiz için kullanabilliriz. Değişkelerin tipini belirleyen faktör, onların içerdikleri verilerin çeşitleridir. C# dilinde kullanacağımız her değişkenin bir tipi olmak zorundadır ( Vbscript ve Javascript gibi dillerde değişken tanımlarken onun tipini de ayrıca belirtmeye gerek yoktur.) Bir değişken üzerinde yapılan tüm işlemler de onun hangi tipte bir değişken olduğu göz önüne alınarak yapılır. Böylece programda bütünlük ve güvenlik korunmuş olur.
Boolean ( doğru/yanlış ), ve üç sayısal veri tipi; integer( tamsayı ), floating point (ondalıklı sayı ) ve decimal( muhasebe ve finansal işlemler için) C# dilinin en basit veri tipleri olarak sayılabilir. Kod 1 : Boolean değerlerin görüntülenmesi : Boolean.cs using System; class Booleans { public static **** Main() { bool content = true; bool noContent = false; Console.WriteLine("It is {0} that C# Station provides C# programming language content.", content); Console.WriteLine("The statement above is not {0}.", noContent); } } Yukarıdaki Kod 1’de de görüleceği gibi boolean değişkenler ya true(doğru) veya false(yanlış) değerlerini alabilirler. Programın çıktısı şöyle olacaktır. >It is True that C# Station provides C# programming language content. >The statement above is not False. Aşağıdaki tablo tamsayı tiplerini, boyutlarını ve alabilecekleri değer aralıklarını göstermektedir. Type ( Tip )Size (in bits)(boyut )Range (aralık)sbyte8-128 to 127byte 870 to 255 short16-32768 to 32767 ushort160 to 65535int32-2147483648 to 2147483647uint320 to 4294967295long64-9223372036854775808 to 9223372036854775807ulong64 0 to 18446744073709551615char160 to 65535 Tamsayı tipleri küsuratsız işlemler için çok elverişlidirler. Fakat char( karakter) tipi Unicode standartlarına uygun olarak bir karakteri temsil eder. Yukarıdaki tablodan da göreceğiniz gibi elimizde çok sayıda tamsayı tipimiz vardır. Bunlardan istedikleriminizi ihitiyaçlarımıza göre rahatça kullanabiliriz. Bir sonraki tablo ise ondalık (floating point ) ve decimal veri tiplerini,boyutlarını, hassasiyetlerini ve geçerli oldukları aralıkları listeler. Type ( Tip )Size (in bits)(boyut )Precision Rangefloat327 digits 1.5 x 10-45 to 3.4 x 1038 Double6415-16 digits 5.0 x 10-324 to 1.7 x 10308Decimal12828-29 decimal places 1.0 x 10-28 to 7.9 x 1028 Ondalıklı sayıları küsuratlı işlemlerde kullanmak iyi olur. Bunun yanında muhasebe ve finansal işlemler için decimal veri tipi daha uygun olacak şekilde tasarlanmıştır. Bilgisayar programları işlemleri yaparken ifadeleri kullanırlar ve sonuç ortaya çıkartırlar. Programlarda yer alan ifadeler değişkenler ve işleçlerden ( operatör) oluşurular. Bir sonraki tabloda işleçleri, işleçlerin işlem sıralarını ve işleme yönlerini görebilirsiniz. Category ( kategori)Operator(s) (işleç/işleçler)Associativity(işeme yönü)Primary(x) x.y f(x) a ■x++ x-- new typeof sizeof checked unchecked left Unary + - ! ~ ++x --x (T)x [/size][/font]leftMultiplicative * / %leftAdditive+ -leftShift << >>leftRelational< > <= >= isleftEquality == !=rightLogical AND&leftLogical XOR^ leftLogical OR|left Conditional AND&& leftConditional OR || leftConditional ?: rightAssignment= *= /= %= += -= <<= >>= &= ^= |=right Sol işleme yönü demek işlemlerin soldan sağa doğru yapıldığıdır. Sağ işleme yönü demek işlemlerin sağdan sola doğru yapıldığıdır. Mesala atama işleçlerinin hepsinde önce sağ tarafın sonucu bulunur ve bu sonuç sol tarafa aktarılır. Kod 2 : Unary Operators: Unary.cs using System; class Unary { public static **** Main() { int unary = 0; int preIncrement; int preDecrement; int postIncrement; int postDecrement; int positive; int negative; sbyte bitNot; bool logNot;
preIncrement = ++unary; Console.WriteLine("Pre-Increment: {0}", preIncrement); preDecrement = --unary; Console.WriteLine("Pre-Decrement: {0}", preDecrement); postDecrement = unary--; Console.WriteLine("Post-Decrement: {0}", postDecrement); postIncrement = unary++; Console.WriteLine("Post-Increment: {0}", postIncrement); Console.WriteLine("Final Value of Unary: {0}", unary); positive = -postIncrement; Console.WriteLine("Positive: {0}", positive); negative = +postIncrement; Console.WriteLine("Negative: {0}", negative); logNot = false; logNot = !logNot; Console.WriteLine("Logical Not: {0}", logNot); } }
İfadeler işlemler yapılırken arka-artırma ve arka-azaltma işleçleri önce değişkenin değerini döndürür sonra değişken üzerinde artırma veya azaltma işlemini yapar. Diğer taraftan, ön-artırma ve ön-azaltma işleçleri önce değişken üzerinde artırma veya azaltma işlemini yapar sonra değişkenin son halini döndürür. Kod 2‘de unary (tek) değişken önce sıfır olarak atanıyor. Ön-artırma (pre-increment) işleci uygulandığında, unary değişkenin değeri 1’e çıkıyor ve “preIncrement” değişkenine atanıyor. Hemen arkasında Ön-azaltma(pred-decrement) işleci sayesinde unary değişkenimiz tekrar sıfır değerini alıyor preDecrement değişkenine bu değer atanıyor. Arka-azaltma (post-decrement) işleci unary değişkenimize uygularsak bu değişkenimizin değeri değişiyor ama önce değişkenin ilk değeri postDecrement değişkenine atanıyor. Sonra ise arka-artırma (post-increment) işlecini uygularsak unary değişkenimizin değeri azalıyor fakat postIncrement değişkenin değeri unary değişkenimizin ilk değeri olarak kalıyor. Mantıksal değil işareti, doğru ifadeyi yanlış, yanlış ifadeyi ise doğru olarak değiştirir. Kod 2’inin çıktısı şöyle olacaktır : >Pre-Increment: 1 >Pre-Decrement 0 >Post-Decrement: 0 >Post-Increment -1 >Final Value of Unary: 0 >Positive: 1 >Negative: -1 >Logical Not: True Kod 3. Binary Operators: Binary.cs using System; class Binary {
public static **** Main() { int x, y, result; float floatResult; x = 7; y = 5;
result = x+y; Console.WriteLine("x+y: {0}", result); result = x-y; Console.WriteLine("x-y: {0}", result); result = x*y; Console.WriteLine("x*y: {0}", result); result = x/y; Console.WriteLine("x/y: {0}", result); floatResult = (float)x/(float)y; Console.WriteLine("x/y: {0}", floatResult); result = x%y; Console.WriteLine("x%y: {0}", result); result += x; Console.WriteLine("result+=x: {0}", result); } } Kod 3: te birçok aritmetik işlemler yapılıyor. Bu işlemlerin sonucunu da sizler tahmin edebilirsiniz... “floatResult” değişkenin tipi ondalıklı sayı tipi olduğu ve “x” ve “y” değişkenlerimiz tamsayı tiplerinde oldukları onları açık biçimde ondalıklı sayı tipine çevirdik ( explicitly cast ) ve bu şekilde işlem yaptık. Yukarıdaki kod parçasında bir de kalan (remainder % ) işlecinin kullanılışına dair örnek verdik. Bu işleç, iki sayının bölümününden kalan sayıyı sonuç olarak döndürür. Son olarak yazdığımız ifadede yeralan atama işleci de (+=) C/C++ ve C# programcılarının sıklıkla kullandıkları bir atama ve işlem yapma türüdür. Bu ifade aslında şu ifadenin kısa yoludur : “result = result + x”. Şimdiye kadar burada sıkça gördüğünüz diğer veri tipi ise string ( karakter dizisi veya karakter katarı)’dir. String veri tipi Unicode karakter tiplerinin bir listesini içerirler ve tek çift tırnak işaretleri arasında yazılırlar | |
|