17-12-2007, 03:54
İlk C# Programınız
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine("Yalan Dünya");
}
}
}
İlk bakışta gördüğünüzde C ve C++ dilinden daha fazla kod yazdığınızı göreceksiniz, bunun nedeni ise C# dilinin daha karmaşık bir dil olmasından dolayı geliyor. Ama bu gözünüzü korkutmasın, karmaşık olması demek yazmanın zorlaşması anlamına değil, dilin kendi içinde karmaşıklığını temsil ediyor.
Sınıflar (Classes)
Class’lardaki olayın özeti programını öznelere ve fiillere bölmek, bu öznelerin hepsi .Net ortamında “objects” olarak betimlenmiştir. Class’lar ise bu “object” denilen özneleri içinde barındırma görevi tutar. Yukarıdaki örnekte gördüğünüz gibi “Program” Class’ı programın tam kendisidir. Class’lar aslında C#’da yazdığınız programın kendisinden ibarettir.
Giriş Noktası
Her programın bir giriş noktası vardır. Bilgisayar bu giriş noktasından programı çalıştırmaya başlar. C, C++ gibi eski programlama dillerinde bu giriş noktası “main” denilen genel bir fonksiyona bağlı idi, fakat bu C# dilinde biraz farklı, C# genel bir fonksiyon yaratmanıza izin vermiyor ancak, Class içine fonksiyon yazmanızı zorunlu kılıyor ve buna oranla C#’da aynı metodu girmiş olmuyorsunuz. Her programlama olduğu gibi C#’da giriş noktası olan programın fonksiyonu “static” ve “Main” adındadır ve Class’ın içindedir. Her C# programının içinde bir “Class” ve o Class’a ait “static” bir “Main” fonksiyonu olmalı, eğer yok ise program asla çalışmaz. Ayrıca programınız içinde birden çok “Main” fonksiyonu var ise, bilgisayar bu fonksiyonlardan hangisini çalıştıracağını bilemez, bu yüzden programınızda tek bir tane “Main” fonksiyonu olmalı.
Derleme ve Çalıştırma
Yazdığınız programı derlemek için bir çok yol vardır. Bunlardan yapabileceğiniz en basit yollardan birisi de konsol ekranını açıp programınızın yolunu bulup oraya şu kodu girerek derlemeniz;
“csc Program.cs”
Diğer bir yolu ise, yazdığınız programın yolunun bulup, onu yükleyip, ConsoleApplication1.cmbx veya ConsoleApplication1.sln kullandığınız ide’ye (Visual Studio.net 2005 veya farklı editörler) 2 defa tıklayıp o editörde açıp, oradan derleyip programı çalıştırabilirsiniz. Programı çalıştırdığınızda ise karşınıza;
“Yalan Dünya”
Diye bir çıktı alacaksınız ve işte bu, artık ilk programınız yazmış bulunmaktasınız...
Temeller
Her programlama dilinin belli başlı özellikleri bulunur. Ayrıca bu programlama dilleri verileri nasıl tutacağını bilir. Bu veriler üzerinde oynamalar yaparak ve onların üzerlerinde dönerek onlar üzerinde işlem yaparlar.
Basit Veri Tipleri
Tip Genişliği(Byte) Değer
bool 1 True veya False
byte 1 0’dan 255’e
sbyte 1 -128’den 127’ye
char 2 Alfabetik karakterler(Unicode değerleri)
short 2 -32,768’den 32,767’ye
ushort 2 0’dan 65,535’e
int 4 -2,147,483,648’den 2,147,483,647’ye
uint 4 0’den 4,294,967,295’e
float 4 -3,402823x10^38’den 3,402823x10^38’e
long 8 -9,223,372,036,854,775,808 ’den 9,223,372,036,854,775,807’e
ulong 8 0’dan 18,446,744,073,709,551615’e
double 8 -1,79769313486232x10^308 ’den 1,79769313486232x10^308’e
decimal 16 -79,228,162,514,264,337,593,543,950,335’den 79,228,162,514,264,337,593,543,950,335’e
Yukarıda basit veri tipleri tablosu görünmektedir. Bu veri tipleri her programlama dilinde olduğu gibi buna ek olarak C# oldukça geniş bir veri tablosuna sahiptir.
Operatörler
Operatörler bilgisayar programlama dilindeki simgelerdir. Bu simgeler bilgisayarın veri üzerindeki yapılacak işlemlerini tanımlar. Operatörler genellikle matematik denklemleri için kullanılır, o yüzden bunlar size oldukça tanıdık olacaktır.
Matematiksel Operatörler
C#’ın kendine has 5 adet temel operatörü var;
Operatör Simgesi Örnek Sonuç
Toplama + 5+6 11
Çıkarma - 6-5 1
Çarpma * 6*7 42
Bölme / 8/4 2
Mod % 9%3 0
Artış ++ 10++ 11
Azalış -- 10-- 9
İlk beşteki operatörü anlatmaya bile gerek yok. Eğer daha önce programlama yapmadıysanız, beşinci operatör size biraz ilginç ilginç gelebilir. Mod bazen “bakiye operatör” (“the remainder operator”) veya “saat operatörü” (“clock operator”) olarak bilinir. Temel olarak, iki sayıyı birbirine böldüğünüzde kalan size bir bakiye döndürecektir. Yukarıdaki tabloda gördüğünüz üzere 9’u 3’e böldüğünüzde size 0 verecektir. 10 % 1 sonuç olarak 1 olacaktır çünkü 10/1’den kalan 1’dir.
Şunu hatırlatmak isterim ki, tüm matematik operatörlerinin direk olarak bir değişkeni değiştirmezinin bir yolu daha var. Örnek olarak x’e 10 eklemek istediğimizde;
X = X + 10;
Fakat bu bazen uzun ve sıkıcı olabiliyor. Onun yerine şunu yazabiliriz;
X += 10;
Diğer tüm matematik operatörleri de aşağıdaki gibi aynı şekildir;
X *= 10; //10 ile çarp
X /= 10; //10 ile böl
X -= 10; //10 ile çıkar
X %= 10; //10 ile mod al
X >>= 2; //2 değer aşağı kaydır
X <<= 2; //2 değer yukarı kaydır
Bit Türevli Operatörler
Daha fazlası olarak matematik operatörleri dışında ayrıca bir türevli operatörler mevcut. Bu sayede sayılar üzerinde binary (2 tabanlı) işlemler yapabilirsiniz. Bit türevli operatörler aşağıdaki gibidir;
Operatör Simgesi Örnek Sonuç
Binary Ve & 6 & 10 2
Binary Veya | 6 | 10 14
Binary Xor ^ 6^10 12
Binary Değil ~ ~7* 248
*- işareti buradaki değerin byte olarak kullanıldığını gösterir.
Bit türevli matematik operatörlerinin de yazılışının farklı bir yolu var;
X &= 10;
X |= 10;
X ^= 10;
Ancak tablodaki yazılıma bakılırsa sonuçlar pek anlaşılmamaktadır. Bunların biraz derinine ineceğiz;
6 & 10 işlemi için genel olarak ne bilgisayar ne tür bir işlem yapmaktadır onu inceleyeceğiz;
Binary (2 tabanlı) işlem dediğimiz için burada söz konusu olacak şey değerlerin ikilik tabana dönüştürerek baz alamamız;
6 rakamı iki tabanında -> 110 olacaktır.
10 sayısı iki tabanında -> 1010 olacaktır.
Bu iki değeri tek tek ele alacak olursak;
110 & 1010 -> soldan sağa başlayarak;
110
1010
0010
& işlemine göre ele aldığımız için sonuç iki tabanında 0010 yani 10 olarak verecektir. 10 değerini de onluk düzleme çevirecek olursak;
2 rakamını elde etmiş oluruz. Diğer operatörlerinde çalışma tarzı budur, Binary Xor işlemi için de bir örnek yapacak olursak;
6 ^ 10
6 rakamı iki tabanında -> 110 olacaktır.
10 sayısı iki tabanında -> 1010 olacaktır.
Bu iki değeri tek tek ele alacak olursak;
110 ^ 1010 -> soldan sağa başlayarak;
110
1010
1100
^ işlemine göre ele aldığımız için sonuç iki tabanında 1100 olarak verecektir. 1100 değerini de onluk düzleme çevirecek olursak;
12 rakamını elde etmiş oluruz.
Xor “özel veya” olarak geçmektedir. Xor iki değer arasında şöyle bir ilişki vardır;
Birinci Değer İkinci Değer Sonuç
1 1 0
1 0 1
0 1 1
0 0 0
Yukarıdaki örnekte olduğu gibi de işlemi inceleyecek olursak sonuca ulaşmış oluruz.
Binary Not işlemi karşımıza fazla çıkmasa da işimize bir gün yarayabilir, kısaca bakacak olursak;
7 byte değeri üzerinde gösterildiğinden direk olarak gösteremeyiz.
Bir sonraki yazımda operatörlere devam edeceğiz...
Yazan: Buğra Çuhadaroğlu
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine("Yalan Dünya");
}
}
}
İlk bakışta gördüğünüzde C ve C++ dilinden daha fazla kod yazdığınızı göreceksiniz, bunun nedeni ise C# dilinin daha karmaşık bir dil olmasından dolayı geliyor. Ama bu gözünüzü korkutmasın, karmaşık olması demek yazmanın zorlaşması anlamına değil, dilin kendi içinde karmaşıklığını temsil ediyor.
Sınıflar (Classes)
Class’lardaki olayın özeti programını öznelere ve fiillere bölmek, bu öznelerin hepsi .Net ortamında “objects” olarak betimlenmiştir. Class’lar ise bu “object” denilen özneleri içinde barındırma görevi tutar. Yukarıdaki örnekte gördüğünüz gibi “Program” Class’ı programın tam kendisidir. Class’lar aslında C#’da yazdığınız programın kendisinden ibarettir.
Giriş Noktası
Her programın bir giriş noktası vardır. Bilgisayar bu giriş noktasından programı çalıştırmaya başlar. C, C++ gibi eski programlama dillerinde bu giriş noktası “main” denilen genel bir fonksiyona bağlı idi, fakat bu C# dilinde biraz farklı, C# genel bir fonksiyon yaratmanıza izin vermiyor ancak, Class içine fonksiyon yazmanızı zorunlu kılıyor ve buna oranla C#’da aynı metodu girmiş olmuyorsunuz. Her programlama olduğu gibi C#’da giriş noktası olan programın fonksiyonu “static” ve “Main” adındadır ve Class’ın içindedir. Her C# programının içinde bir “Class” ve o Class’a ait “static” bir “Main” fonksiyonu olmalı, eğer yok ise program asla çalışmaz. Ayrıca programınız içinde birden çok “Main” fonksiyonu var ise, bilgisayar bu fonksiyonlardan hangisini çalıştıracağını bilemez, bu yüzden programınızda tek bir tane “Main” fonksiyonu olmalı.
Derleme ve Çalıştırma
Yazdığınız programı derlemek için bir çok yol vardır. Bunlardan yapabileceğiniz en basit yollardan birisi de konsol ekranını açıp programınızın yolunu bulup oraya şu kodu girerek derlemeniz;
“csc Program.cs”
Diğer bir yolu ise, yazdığınız programın yolunun bulup, onu yükleyip, ConsoleApplication1.cmbx veya ConsoleApplication1.sln kullandığınız ide’ye (Visual Studio.net 2005 veya farklı editörler) 2 defa tıklayıp o editörde açıp, oradan derleyip programı çalıştırabilirsiniz. Programı çalıştırdığınızda ise karşınıza;
“Yalan Dünya”
Diye bir çıktı alacaksınız ve işte bu, artık ilk programınız yazmış bulunmaktasınız...
Temeller
Her programlama dilinin belli başlı özellikleri bulunur. Ayrıca bu programlama dilleri verileri nasıl tutacağını bilir. Bu veriler üzerinde oynamalar yaparak ve onların üzerlerinde dönerek onlar üzerinde işlem yaparlar.
Basit Veri Tipleri
Tip Genişliği(Byte) Değer
bool 1 True veya False
byte 1 0’dan 255’e
sbyte 1 -128’den 127’ye
char 2 Alfabetik karakterler(Unicode değerleri)
short 2 -32,768’den 32,767’ye
ushort 2 0’dan 65,535’e
int 4 -2,147,483,648’den 2,147,483,647’ye
uint 4 0’den 4,294,967,295’e
float 4 -3,402823x10^38’den 3,402823x10^38’e
long 8 -9,223,372,036,854,775,808 ’den 9,223,372,036,854,775,807’e
ulong 8 0’dan 18,446,744,073,709,551615’e
double 8 -1,79769313486232x10^308 ’den 1,79769313486232x10^308’e
decimal 16 -79,228,162,514,264,337,593,543,950,335’den 79,228,162,514,264,337,593,543,950,335’e
Yukarıda basit veri tipleri tablosu görünmektedir. Bu veri tipleri her programlama dilinde olduğu gibi buna ek olarak C# oldukça geniş bir veri tablosuna sahiptir.
Operatörler
Operatörler bilgisayar programlama dilindeki simgelerdir. Bu simgeler bilgisayarın veri üzerindeki yapılacak işlemlerini tanımlar. Operatörler genellikle matematik denklemleri için kullanılır, o yüzden bunlar size oldukça tanıdık olacaktır.
Matematiksel Operatörler
C#’ın kendine has 5 adet temel operatörü var;
Operatör Simgesi Örnek Sonuç
Toplama + 5+6 11
Çıkarma - 6-5 1
Çarpma * 6*7 42
Bölme / 8/4 2
Mod % 9%3 0
Artış ++ 10++ 11
Azalış -- 10-- 9
İlk beşteki operatörü anlatmaya bile gerek yok. Eğer daha önce programlama yapmadıysanız, beşinci operatör size biraz ilginç ilginç gelebilir. Mod bazen “bakiye operatör” (“the remainder operator”) veya “saat operatörü” (“clock operator”) olarak bilinir. Temel olarak, iki sayıyı birbirine böldüğünüzde kalan size bir bakiye döndürecektir. Yukarıdaki tabloda gördüğünüz üzere 9’u 3’e böldüğünüzde size 0 verecektir. 10 % 1 sonuç olarak 1 olacaktır çünkü 10/1’den kalan 1’dir.
Şunu hatırlatmak isterim ki, tüm matematik operatörlerinin direk olarak bir değişkeni değiştirmezinin bir yolu daha var. Örnek olarak x’e 10 eklemek istediğimizde;
X = X + 10;
Fakat bu bazen uzun ve sıkıcı olabiliyor. Onun yerine şunu yazabiliriz;
X += 10;
Diğer tüm matematik operatörleri de aşağıdaki gibi aynı şekildir;
X *= 10; //10 ile çarp
X /= 10; //10 ile böl
X -= 10; //10 ile çıkar
X %= 10; //10 ile mod al
X >>= 2; //2 değer aşağı kaydır
X <<= 2; //2 değer yukarı kaydır
Bit Türevli Operatörler
Daha fazlası olarak matematik operatörleri dışında ayrıca bir türevli operatörler mevcut. Bu sayede sayılar üzerinde binary (2 tabanlı) işlemler yapabilirsiniz. Bit türevli operatörler aşağıdaki gibidir;
Operatör Simgesi Örnek Sonuç
Binary Ve & 6 & 10 2
Binary Veya | 6 | 10 14
Binary Xor ^ 6^10 12
Binary Değil ~ ~7* 248
*- işareti buradaki değerin byte olarak kullanıldığını gösterir.
Bit türevli matematik operatörlerinin de yazılışının farklı bir yolu var;
X &= 10;
X |= 10;
X ^= 10;
Ancak tablodaki yazılıma bakılırsa sonuçlar pek anlaşılmamaktadır. Bunların biraz derinine ineceğiz;
6 & 10 işlemi için genel olarak ne bilgisayar ne tür bir işlem yapmaktadır onu inceleyeceğiz;
Binary (2 tabanlı) işlem dediğimiz için burada söz konusu olacak şey değerlerin ikilik tabana dönüştürerek baz alamamız;
6 rakamı iki tabanında -> 110 olacaktır.
10 sayısı iki tabanında -> 1010 olacaktır.
Bu iki değeri tek tek ele alacak olursak;
110 & 1010 -> soldan sağa başlayarak;
110
1010
0010
& işlemine göre ele aldığımız için sonuç iki tabanında 0010 yani 10 olarak verecektir. 10 değerini de onluk düzleme çevirecek olursak;
2 rakamını elde etmiş oluruz. Diğer operatörlerinde çalışma tarzı budur, Binary Xor işlemi için de bir örnek yapacak olursak;
6 ^ 10
6 rakamı iki tabanında -> 110 olacaktır.
10 sayısı iki tabanında -> 1010 olacaktır.
Bu iki değeri tek tek ele alacak olursak;
110 ^ 1010 -> soldan sağa başlayarak;
110
1010
1100
^ işlemine göre ele aldığımız için sonuç iki tabanında 1100 olarak verecektir. 1100 değerini de onluk düzleme çevirecek olursak;
12 rakamını elde etmiş oluruz.
Xor “özel veya” olarak geçmektedir. Xor iki değer arasında şöyle bir ilişki vardır;
Birinci Değer İkinci Değer Sonuç
1 1 0
1 0 1
0 1 1
0 0 0
Yukarıdaki örnekte olduğu gibi de işlemi inceleyecek olursak sonuca ulaşmış oluruz.
Binary Not işlemi karşımıza fazla çıkmasa da işimize bir gün yarayabilir, kısaca bakacak olursak;
7 byte değeri üzerinde gösterildiğinden direk olarak gösteremeyiz.
Bir sonraki yazımda operatörlere devam edeceğiz...
Yazan: Buğra Çuhadaroğlu