c Calisma Tumu

Embed Size (px)

Citation preview

  • 8/17/2019 c Calisma Tumu

    1/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI

    Sayfa 1

    2. C# PROGRAMINA GĠRĠġ

    2.1. Ġlk Program İlk programımıza başlamadan önce visual studio ile console penceresi nasıl açıldığını görelim. Bunun için

    aşağıdaki adımları takip edelim.

    Bir konsol uygulaması oluĢturmak ve çalıĢtırmak için

    1) Visual Studio progra mını açıyoruz.

    2) Dosya (File) menüsünü aç, Yeni (New) ve daha sonra Proje (Project) tıklayın.

    3) ġablonlar Kategorileri (Templates Categories) bölmesinde, Visual C # seçin

    4) Console Application seçin.

    5) Proje için bir ad yazınAdı (Name) alanı. 6) Tamam 'ı (OK) tıklayın .

    7) Yeni proje Solution Explorer'da görünür. Sağ tarafta

    8) Program.cs açık değilse Solution Explorer’da gidin Program.cs’yi çift tıklayın kodun yazılacağı bölüm gelecektir.

    9) Aşağıdaki kod ile program.cs içeriğini değiştirin.

    using System;using System.Collections.Generic;using System.Linq;using System.Text;

    //Merhaba Dünya Programi namespace ilkuygulama

    {class merhaba {

    static void Main( string [] args){

    Console .WriteLine("merhaba Dünya" );Console .WriteLine("Çıkmak için herhangi bir tuşa basın" );

    Console .ReadKey();}

    }}

    Programı çalıĢtırmak için f5 tuĢuna basın.

  • 8/17/2019 c Calisma Tumu

    2/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI

    Sayfa 2

    ġimdi programı inceleyelim .

    Yorum satırı // Eğer yapacağımız açıklama tek satırdan oluşuyorsa bunun için iki tane bölü işareti // kullanılır.// Merhaba dünya C # programı.

    Birden fazla açıklama satırı kullanılacaksa /* */ karakterleri arasına da yazılabilir.

    / * "Merhaba Dünya!" C # programı. Bu program ekranda "Merhaba Dünya!" mesajı görüntüler görüntüler. * /

    Console .WriteLine( "…" ); : Kod satırı ekrana mesaj yazdırır. Mesajı ekrana yazıp bir satır aşağı iner. Bir alt satılrainmesini Line ifadesi gerçekleştirir. EğerConsole .Write("..." ); kullanılmış olsaydı alt satıra inmezdi.

    Console .WriteLine( "…" ); ifadesi ile Console .Write( "...\n" ); ifadesi aynı işlemi gerçekleştiri. Çünkü Line ve \ n aynıişlemleri gerçekleştirir.

    Mesaj yerine değişken yazıldığı zaman tırnak içine yazılmaz.

    string mesaj = "merhaba dünya"; Console .WriteLine(mesaj);

    Console .Write( "merhaba dünya" ); : Aynı görevi görmekle beraber imleci bir alt satıra indirmez.

    Console .ReadKey(); : Herhangi bir tuşa basılmasını bekler. Bu kod kullanılmazsa konsol penceresi açılıp hemenkapanacaktır. Bunun yerine ctrl+f5 tuş kombinasyonu da kullanılabilir.

    void Main : C# konsol uygulamasında bir void main metodu bulunmalıdır, programımız bu kontrol ile başlar vebiter.

  • 8/17/2019 c Calisma Tumu

    3/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI

    Sayfa 3

    2.2 De ğişkenler Ve Sabitler

    2.2.1 De ğişkenler

    Değişkenler bir programlama dilinde verilerin depolanma alanlar ını temsil eder. Tan ımlanan her de ğişkenebellek bölgesinden bir alan ayrı lır. Bu bellek bölgesine okuma ve yazma iş lemleri ise de ğişken ismiüzerinden sağ lan ır. Kısacası; Değişken, her seferinde farklı değerler içerebilen yapıdır.

    Yapı:

    < veri tipi >< de ğ i şken ad ı>; < veri tipi >< de ğ i şken ad ı1 , değişken ad ı2 , … , de ğ i şken ad ın >;

    Örnek:

    int i; int i, k, n;

    “ , “Bir veri tipiyle birden fazla değişken tanımlanabilirken ‘ virgül işareti’ ile birbirinden ayrılır.

    “;” Her kod satırının sonunda , kod satırının sona erdiğini belirten ‘ noktalı virgül işareti’ mutlaka kullanılır.

    = Operatörü “ Değişkene Değer Atama ” :

    Tan ımlarken, Program içinde herhangi bir satı rda, Bir veri tipi alt ında birden fazla isimle farkl ı de ğişkenler tan ımlanabilir ve bu esnada,

    değişkene değer ataması yap ılabilir.

    Örnek:

    bool dogrumu = false ; double yuzde = 98.32, ortalama = 35.32; char karakter = 'A' ;

    Bazı programlama dillerinde yerel bir değişken tanımlıyorsak budeğişkeni kullanmadan önce bir değer ataması yapmak zorundayız.

    “+,-,*,/ ” operatörleri kullanılarak hesaplama işlemleri yapılabilir. Sağda hesaplanan değerler soldakideğişkene atanmış oluyor.

    Örnek:

    int a, b, c, d;a = 1 + 2;b = 2 - 1;c = 5 * 2;d = 10 / 2;

  • 8/17/2019 c Calisma Tumu

    4/23

  • 8/17/2019 c Calisma Tumu

    5/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI

    Sayfa 5

    Standart yazım şekilleri: Camel notasyonunda isim küçük harfle başlar, eğer değişken isminde birden fazla kelime geçiyor ise

    isimdeki diğer kelimeler büyük harfle başlar.

    Camel Notasyonu:maas;

    maasMiktari;massMiktariAciklama;

    Pasc al Notasyonunda kelime büyük harfle başlar. Camel Notasyonunda da olduğu gibi diğerkelimelerde büyük harfle başlar.

    Pascal Notasyonu:Maas();MaasHesapla();

    Bu notasyonların kullanımı mecburi değildir. Fakat sürekli olarak bu tür bir notasyona uyarakkodlarınızı yazarsanız, kodlarınız daha anlaşılır bir hâle girer.

    Eğer ondalıklı sayı tanımlanmak istenirse veri tipi double olarak belirtilmelidir.

    double ondalikli = 1.2;

    char, veri tipi tek karakterleri veya özel karakterleri barındırır. Char değişkeninin değerleri her zaman tek tırnak „…‟içerisine yazılmalıdır. Char değişkenlerine sayılar da atanabilir. Çünkü sayılarda birer karakterdir.

    char karakter = 'k' ;char sayikarakteri = '7' ;

    string , veri tipleri birden çok karakteri barındırır. String ifadeler çift tırnak “…” içerisinde kullanılır. + operatörükullanılarak iki veya daha fazla string beraber kullanılabilir.

    string s = "bu" ;string ss = s + " string bir ifadedir." ;

    bool , veri tipi sadece iki değer alır:true ve false

    bool bl = true;bl = false;

    Tip Dönüşümleri

    Bir veri tipinde tanımlamış olduğunuz bir değişkeni başka bir veri tipine dönüştürebilirsiniz. Bu aşağıdaki örnektegösterilmiştir. Bu durumda int tam sayıları kapsadığı için i‟nin değeri 7 olur.

    Double d = 7.5;int i = ( int )d;

    Eğer sayı ve string ifadeleri birbirine dönüştürmek istenirse, bunun için özel dönüştürme yöntemleri kullanılır.Bunun içinconvert metodu kullanılır.

    int i = 5;string s = Convert .ToString(i); //i int’ten string’e dönüştürüldü. double d = Convert .ToDouble(i); //i string’ten double çevrildi. byte b = Convert .ToByte(i); // i byte dönüştürüldü. sbyte sb = Convert .ToSByte(i); // i sbyte'a dönüştürüldü. short srt = Convert .ToInt16(i); // i short'a dönüştürüldü. ushort usrt = Convert .ToUInt16(i); // i ushort' a dönüştürüldü. int nt = Convert .ToInt32(i); // i int'e dönüştürüldü. long lng = Convert .ToInt64(i); // i long'a dönüştürüldü. ulong ulng = Convert .ToUInt64(i); // i ulong'a dönüştürüldü. float flt = Convert .ToSingle(i); // i float'a dönüştürüldü.

    decimal dclm = Convert .ToDecimal(i); // i decimal'e dönüştürüldü. char chr = Convert .ToChar(i); // i char'a dönüştürüldü. bool bl = Convert .ToBoolean(i); // i bool'a dönüştürüldü.

  • 8/17/2019 c Calisma Tumu

    6/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI

    Sayfa 6

    2.2 .2 Sabitler

    Sabitlerin değeri bir kere belirlendikten sonra başka bir yerde değiş tirilemez. Bir sabit tanımlamak içinconst anahtar kelimesini kullanırız.

    Sabitler tanımlanırken ilk değer ataması yapılmak zorundadır. Program boyunca sabit değeri değiştirilemez.

    Yapı: const < veri tipi >=de ğ er;

    const double pi=3.4;

  • 8/17/2019 c Calisma Tumu

    7/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI

    Sayfa 7

    2.3 Veri Tipleri .Net de iki çeşit veri tipi vardır:

    Değer tipleri (value type) Referans tipleri(reference type)

    Değer tipleri belleğin „stack‟ bölgesinde saklanır ve veriyi direkt olarak bellek bölgesinden alırken referans tipleribellekte „heap‟ alanında saklanır. Yani referans tipleri içinde veri değil bellekteki„heap‟ alanının adres bilgisinitutarlar.

    Değer Tipleri Type Adı CTS Karşılığı Boyut(size) Değer aralığı Tam Sayı Veri Tipleri byte Byte 8 bit işaretsiz tam sayı 0 ile 255sbyte SByte 8 bit işaretli tam sayı -128 ile 127short Int16 16 bit işaretli tam sayı -32.768 ile 32.767ushort UInt16 16 bit işaretsiz tam sayı 0 ile 65.535int Int32 32 bit işaretli tam sayı -2.147.483.648 ile 2.147.483.647uint UInt32 32 bit işaretsiz tam sayı 0 ile 4.294.967.295

    long Int64 64 bit işaretli tam sayı -9.223.372.036.854.775.808 ile+9.223.372.036.854.775.807

    ulong UInt64 64 bit işaretsiz tam sayı 0 ile 18.446.744.073.709.551.615Noktalı Sayı Veri Tipleri float Single 32 bit - 3.4 × 1038 ile +3.4 × 1038double Double 64 bit ±5.0 × 10−324 ile ±1.7 × 10308

    decimal Decimal 128 bit ±1,5*10-28 ile ±7,9*1028 Diğer Veri Tipleri Char Char 16 bit karakterleri temsil eder Tek karakterString String 16bit*karakter adedi Karakter dizisibool Boolean 32 bit True veya False

    Referans Tipleri

    int, double, float gibi veri tipleri değer tiplerine örnek gösterilebilir. Herhangi bir sınıf türü ise referans tipineörnek gösterilebilir.

    Değer tipleri birbirine eĢitlenirken değiĢkenin barındırdığı değer bir diğer değiĢkene kopyalanır. Böylece ikifarklı bağımsız değiĢken oluĢur.

    Referans tipleri ise eşitleme sırasında değişkenlerin taşıdıkları veri değil„heap‟ bölgesinde işaret ettikleri adreskopyalanır. Böylece eğer iki referans değiĢkeni birbirine eĢitledi isek ve daha sonra bunlardan birindebulunan veriyi değiĢtirdi ise otomatik olarak diğer referans değiĢkeninin değeri de değiĢir. Çünkü adrestebulunan veri değişince bu adresi işaret eden iki değişkende yeni veri bilgisine ulaşır.

    Değişkenlerin tuttukları değerlerin türünü ve bellekte ki büyüklüğünü tanımlar. Şimdi yukarıda gösterilmiş olanveri tiplerine örnekler verelim.

  • 8/17/2019 c Calisma Tumu

    8/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI

    Sayfa 8

    byte x = 10, y = 5;

    x ve y değişkenleri byte olarak tanımlanmış olup değerleri atanmıştır. Programımızda bu değerlerle aritmetikişlem yaptığımız zaman çıkan sonuçint olacaktır. Çünkü sayısal ifadelerde varsayılan değerint‟tir.

    byte z = x + y; //hata: int’ten byte dönüşüm hatası

    bu sorunu aşağıdaki şekilde çözebiliriz. Açık tip dönüşümü

    byte z = ( byte ) (x + y);

    Temel şey şu, boyutu kendisinden küçük bir veri tipine atama yapıldığı zaman tip dönüşümü gerekir. Örneğin int veri tipinde bir değişkeni byte veri tipinde bir değişkene atama yapabilmek için dönüşüm yapılması gerekir.Bunun tam ter si için sorun olmaz. Bu diğer sayısal veri tipleri için de geçerlidir.

    byte x = 10, y = 5;int z = x + y; // int>byte olduğu için sorun olmazsbyte s = 127;short st = 32767;ushort us = 65535;int i = 123;

    long veri tipinin sonunda istenilirse l ve ya L harfi kullanılabilir.

    long long1 = 4294967296;long long2 = 4294967296L;

    Eğer float değeri virgüllü bir sayı ise değerin sonuna f veya F eklenmelidir.

    float f = 3.5F;

    double değişken değerlerinin sonuna d vey D konulabilir.

    double d = 3.6D;

    decimal değişken değerlerinin sonuna m vey M konulabilir.

    decimal dcml = 300.5m;

  • 8/17/2019 c Calisma Tumu

    9/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI

    Sayfa 9

    2.4 Operatörler

    Operatörler , tek başlarına kullanıldıklarında bir anlam ifade etmeyen, ancak programın işleyişine katkıda bulunankarakterlere operatör denir.

    Matematiksel Operatörler +,-,/,*,%ĠliĢkisel Operatörler ==, !=, >, =,

  • 8/17/2019 c Calisma Tumu

    10/23

  • 8/17/2019 c Calisma Tumu

    11/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI

    Sayfa 11

    İlişkisel operatörler iki değerin karşılaştırılması işlemi için kullanılır. Programımızda koşul ifadelerinde kullanılarakprogramın akşını değiştirmemizi sağlar.

    Karşılaştırma sonucunda işlem doğru çıkarsa True (doğru), yanlış çıkarsa False (yanlış) olmak üzere boolen birdeğer döndürür.

    Karşılaştırılan ifadelerin aynı türde olması gerekir. Yani bir sayı ile karakter ifadesi karşılaştırılamaz.

    = = O peratörü : Aynı türdeki iki değerin birbirine eşitliğini kontrol eden operatördür. Bu iki değer birbirine eşitise True değilse False değeri döndürülür.

    static void Main( string [] args){

    int x = 10;int y = 4;string str1 = "bil" ;

    string str2 = "yazilim" ;Console .WriteLine(x == y); // false Console .WriteLine(str1 == str2); // false Console .WriteLine(3 == "3" ); // hatalı kullanım. int tipi ile string tipikarşılaştırılamaz.Console .WriteLine((2 + 2) == 4); // sonuç true olacaktı r. Console .WriteLine((2 + 1) == 4); // sonuç false olacaktır.

    }

    != Operatörü: Aynı türdeki iki değerin birbirine eşit olmadığının (eşit değil) kontrolü için kullanılan operatördür.

    static void Main( string [] args){

    int x = 7;int y =5;string s1 = "bilyazilim" ;string s2 = "bilyazilim" ;Console .WriteLine(x != y); // true Console .WriteLine(s1 != s2); // false Console .WriteLine(3 != 3); // false Console .WriteLine(1 != 3); // true

    }

    < Operatörü: Bir değerin aynı türdeki başka bir değerden küçüklüğünün kontrolünün yapıldığı operatördür. Buoperatör string ifadelerde kullanılmaz. Char ifadelerinde kullanılabilir.

    Operatör Açıklama == EĢittir != EĢit değildir < Küçüktür > Büyüktür = Büyük eĢittir

  • 8/17/2019 c Calisma Tumu

    12/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI

    Sayfa 12

    static void Main( string [] args){

    int x = 7;int y =5;string s1 = "bilyazilim" ;string s2 = ".net" ;Console .WriteLine(x < y); // false Console .WriteLine(s2 y); // True Console .WriteLine(s2>s1); //hata:bu operatör string ifadelerde kullanılamaz. Console .WriteLine(3 > 3); // false Console .WriteLine( 'a' >'z' ); // false

    }

    = 'z' ); // false

    }

    2.4.3 Atama v e İşlemli Atama Operatörleri

    Operatör Açıklama

  • 8/17/2019 c Calisma Tumu

    13/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI

    Sayfa 13

    = Atama (sağdaki ifadeyi soldaki ifadeye atar.) += Sağdaki ifadeyi soldakine ekle -= Sağdaki ifadeyi soldakinden çıkar. *= Sağdaki ifadeyi soldakine çarp

    /= Sağdaki ifadeyi soldakine böl %= Soldaki ifadenin sağdaki ifadeye bölümünden kalan (sol mod sağ) ++ Ġfadenin değerini bir arttırır. -- Ġfadenin değerini bir azaltır.

    = O peratörü: Bu operatörle sağdaki ifade soldaki ifadeye atanmış olur. Bu operatörü çok sık kullanılır.Operatörrün solunda yalnızca bir tane değişken olmalıdır.

    x+y= 23; // hata:operatörün solunda sadece bir değişken olmalıdır. x=5; // burada x değerine 5 atanmış. Dolayısıyla x in değeri 5 olur.

    Bu operatörle matematikte ki = (eşittir) operatörünü birbirine karıştırmamak gerekir.

    x=x+5; // böyle bir kullanım matematikte yanlış, ama programlama da kullanılabilir. x=5+5; // x in değeri 5, x+5 x’e atanmış oldu. x in en son değeri 10 olur.

    static void Main( string [] args){

    int x = 19, y = 5;x = x + y; // x+y değeri x atanmış oldu.

    }

    += operatörü: sağdaki ifade soldaki ifadeye eklenir. Sonuç soldaki ifadenin değeri olur.

    int x = 19, y = 5;x += y; //y değeri x eklenir x son değeri 24 olur. x=x+y aynı işlemi yapar.

    //x+=y; ile x=x+y; aynı işlemi yapar. y += x + 5; //(x+5) ifadesi y'ye eklenir. y değeri 34 olur.

    Bir bir artırma işlemi için x+=1 (veya x=x+1) yerine x++ işlemi kullanılabilir.

    ++ değişkenden sonra kullanılırsa önce atama işlemi yapılır sonra artırma yapılır.

    int x=0, y=0,toplam;x=y++;toplam = x + y; //önce x y’ye eşitlenir, daha sonra y artırılır. İşlem sonucu: x=0, y=1, toplam=1 olur.

    ++ değişkenden önce kullanılırsa önce artırım yapılır daha sonra atama işlemi yapılır.

    int x=0, y=0,toplam;

    x=++y;toplam = x + y; //önce y artırılır daha sonra x y’ye eşitlenir. İşlem sonucu: x=1, y=1, toplam=2 olur.

    Yukarıdaki ++ operatörü için geçerli olan işlem, aynen -– içinde geçerlidir.

    = operatörü: sağdaki ifadeden soldaki ifadeyi çıkarır. Sonuç soldaki ifadenin değeri olur.

    byte x = 7, y = 5;x -= y; // x=x- y; sonuç x in değeri 2 olur. y -= 2; // y nin değeri 2 azaltılmış oldu. y 3 oldu.

  • 8/17/2019 c Calisma Tumu

    14/23

  • 8/17/2019 c Calisma Tumu

    15/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI

    Sayfa 15

    Operatör Açıklama && Mantıksal ve & Bitsel ve|| Mantıkasl veya

    | Bitsel veya! Değil

    && operatörü: Mantıksal ve operatörü bütün koşulların doğru (true) olması durumunda sonuç doğru (true),koşullardan herhangi biri yanlış (false) olduğu zaman sonuç yanlış (false) olur.

    True && false = false,True && true = true,False && false = false

    & ile && operatörü aynı işlemi yaparlar. Birden fazla koşulda && operatörü falsegördüğü anda diğer koşullara bakmadan sonuç false olur. & operatörü ise bütünkoşullara bakar ve sonucu öyle belirler. Onun için &&, & den daha hızlıçalışabilir.

    static void Main( string [] args){

    int x = 5, y = 7, z = 11;bool a = (x == 5 && y == 10 && z == 11); // true ve false ve true, a'nın değeri false Console .WriteLine(a); //ekranda f alse gösterir.

    }

    || operatörü: Mantıksal ve operatörü bütün koşulların false (yanlış) olması durumunda sonuç false (yanlış),koşullardan herhangi biri true (doğru) olduğu zaman sonuç true (doğru) olur.

    True && false = true,True && true = true,False && false = false

    | ile || operatörü aynı işlemi yaparlar. Birden fazla koşulda || operatörü truegördüğü anda diğer koşullara bakmadan sonuç true olur. | operatörü ise bütünkoşullara bakar ve sonucu öyle belirler. Onun için ||, | den daha hızlıçalışabilir .

    static void Main( string [] args){

    int x = 5, y = 7, z = 11;bool a = (x == 5 || y == 10 || z == 11); // true ve false ve true, a'nın değeri true Console .WriteLine(a); //ekranda true gösterir.

    }

    ! operatörü: “Değil” anlamına gelir. Boolen ifadeleri tersine çevirir.

    static void Main( string [] args){

    int x = 5, y = 7, z = 11;bool a=!(x

  • 8/17/2019 c Calisma Tumu

    16/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI

    Sayfa 16

    Koşul ? a : b // koşul doğruysa a, değilse b olur.

    static void Main( string [] args){

    Console .WriteLine( "Devam etmek istiyor musunuz?(e,y)" );string cvp = Console .ReadLine();

    Console .WriteLine(cvp== "e" ? "Tebrikler..." :"Sağlıkla kalın..."

    );}

    .4.5 İşlem Önceliği

    İşlem öncelik sırası aşağıdaki tabloda en yüksekten en düşüğe doğru sıralanmıştır.

    Yapılan işlemde yukarıdaki sıra tamamlandıktan sonra eğer aynı tür işlemler kaldıysa işlem soldan sağa doğruyapılır.

    Örnek: 3+5*2 işleminin sonucu nedir?

    Yukarıdaki işlemde önce 3 ile 5‟i toplar ve sonucu 2 ile çarparsanız sonuç yanlış çıkar. İşlem önceliğine göre önce 2 ile 5‟i çarpıp çıkan sonuçla 3‟ü topladığımız zaman sonuç doğru çıkar.

    3+5*2 = 8*2 = 16 // yanlış cevap 3+5*2 = 3 + 10 = 13 // doğru cevap

    .5 Giriş- Çıkış İşlemleri:

    Console .WriteLine() : bu komutu daha önceki derslerde sık sık kullandık. Ekrana bilgi gösterme komutudur.Bilgiyiekranda gösterir ve imleci bir alt satıra indirir.

  • 8/17/2019 c Calisma Tumu

    17/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI

    Sayfa 17

    Console .WriteLine( "bilyazilim.net" ); //Ekrana bilyazilim.net yazılacaktır.

    Console .ReadLine() : bu komut klavyeden değerler okunmasına ve bir değişkene değer atamak için kullanılır.

    Console .Write( "Bir mesaj giriniz:" );

    string s = Console .ReadLine();Console .WriteLine(s);

    C# programında klavyede bir veri girildiği zaman program bunu string olarak alır. Bunun içinstring bir ifadegirildiği zaman dönüştürmeye gerek yoktur. Ama string dışında bir veri girildiği zaman mutlaka o veri tipinedönüştürmek gerekiyor.

    string s = Console .ReadLine();

    bu örneğimizde dönüşüm yapmadan s değişkenine direkt olarak değer atıyoruz.

    int x = Convert .ToInt32( Console .ReadLine()); // x int'e dönüştürüldü.

    Bu örneğimizde ise Console .ReadLine() ile klavyeden değer giriyoruz.Convert .ToInt32 ile de klavyeden girilendeğerin int veri tipine dönüştürüyoruz. Dönüştürmek anlamına gelen Convert burada anahtar kelimedir. To.Int32 ise dönüşüm yapılacağı veri tipini gösteriyor.

    ÇıkıĢ parametreleri:

    \ n: Bir alt satıra geçmek için kullanılır. \ r: Paragraf başı yapmak için kullanılır.

    static void Main( string [] args){

    Console .WriteLine( "\n\n Merhaba D ünya" );Console .ReadKey();}

    Şimdi bunları basit bir örnek üzerinde görelim.

    static void Main( string [] args){

    // Klavyeden girilen iki tane değerin toplamını yapan ekranda gösteren program int x, y;Console .Write( "1. sayıyı giriniz:" );x = Convert .ToInt32( Console .ReadLine());Console .Write( "2. sayıyı giriniz:" );y = Convert .ToInt32( Console .ReadLine());Console .WriteLine( "x+y=" + (x + y));Console .ReadKey();

    }

    Çıktısı: 1. sayıyı giriniz:5 2. sayıyı giriniz:7 x+y=12

    Örneği inceleyelim.

    int x, y;

    int veri tipinde x ve y diye iki değişken tanımlıyoruz.

    Console .Write( "1. sayıyı giriniz:" )

  • 8/17/2019 c Calisma Tumu

    18/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI

    Sayfa 18

    Bu kodumuzla ekranda mesajı gösteriyoruz.

    x = Convert .ToInt32( Console .ReadLine());

    Bu kodla Console .ReadLine() ile klavyeden değer girilmesini sağlıyor, Convert .ToInt32 ile int veri tipinedönüştürüyor ve = ile girilen değeri x değişkenine atama yapıyor.

    Console .Write( "2. sayıyı giriniz:" );

    Bu kodumuzla ekranda mesajı gösteriyoruz.

    y = Convert .ToInt32( Console .ReadLine());

    Bu kodla Console .ReadLine() ile klavyeden değer girilmesini sağlıyor,Convert .ToInt32 ile int veri tipine dönüştürüyorve = ile girilen değeri y değişkenine atama yapıyor.

    Console .WriteLine( "x+y=" + (x + y));

    + operatörünün birleştirme ve toplama işlemlerini yaptığını operatörler konusunda anlatmıştık. İşte bu kodda(x+y) ile toplama işlemi, diğer+ operatörü toplam değeri ile açıklamayı birleştiriyor. Açıklama ifadeleri “…” (çifttırnak) içine yazılır. Değişkenler ise “…” içine yazılmaz.

    Console .ReadKey();

    İşlemi ekranda gösterdikten sonra bir tuşa basılmasını bekler. Ctrl+f5 ile aynı işlevi görür.

    {0} ifadesi: Bilgileri istenilen bir şekilde ekranda göstermek için{0} ifadesini de kullanılabilir. Virgülden sonratanımlanan ilk değişken değeri {0}yerine yazılır. Bu örnek üzerinde daha iyi anlaşılacaktır. Yukarıda ki örneği alıpbiraz değiştirelim.

    static void Main( string [] args){

    // Klavyeden girilen iki tane değerin toplamını yapan ekranda gösteren program int x, y;Console .Write( "1. sayıyı giriniz:" );x = Convert .ToInt32( Console .ReadLine());Console .Write( "2. sayıyı giriniz:" );y = Convert .ToInt32( Console .ReadLine());Console .WriteLine( "{0}+{1}={2}" ,x,y,(x + y));

    Console .ReadKey();}

    Çıktısı:1. sayıyı giriniz:5 2. sayıyı giriniz:7 5+7=12

    Yukarıdaki örnekle aynı işlemi yapıyor. Sadece sonucu gösterme şekli farklı. Bu kullanım biraz daha kullanışlıdiyebiliriz.

    Örneği inceleyelim.

    Örnekteki şu kodu inceleyelim. Diğerleri aynı çünkü.

  • 8/17/2019 c Calisma Tumu

    19/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI

    Sayfa 19

    Console .WriteLine( "{0}+{1}={2}" ,x,y,(x + y));

    Birinci virgülden sonra x değerini {0} yerine yazdı. İkinci virgülden sonraki y değerini {1} yerine yazdı. Üçüncüvirgülden sonraki (x+y) değerini {2} yerine yazdı. Bu şekilde aynı anda birden fazla değişken ekrana yazdırılmakisteniyorsa {0},{1},{2}… şeklinde devam ede r. Değişkenler virgülle ayrılarak tanımlanır. Konunun mantığınıkavradıktan sonra işlemler çok kolay oluyor. Bakın aynı işlemi yapan farklı iki kod göstereyim.

    Console .WriteLine( "{0}+{1}={2}" , x, y,(x + y));

    ve

    Console .WriteLine(x+ "+" +y+ "=" +(x+y));

    Aradaki farkı siz bulun. Aynı işlemi yapıyorlar. Ama gidiş yolu farklı.

    Formatl ı Çıkış İşlemleri

    Tam sayı tipinde tanımlanmış değişkenler üzerinde uygulanabilecek format biçimleri aşağıdaki tablodabelirtilmiştir.

    Tam say ı tipindeki de ğ iş kenlere uygulanacak format listesi

    Formatlı yazımda kullanılan parametrelerin açıklaması:

    C: Sayıyı para birimi şeklinde gösterir.

    D: Tek kullanıldığında bir anlam ifade etmez. Yanına sayı yazılarak kullanılır. Formatı alınacak sayının basamakdeğeri yanında yazılan sayıdan küçükse arta kalan değer kadar yanına sıfır eklenir.

    E: Sayıyı 10 üzeri şeklinde gösterir. F: Sayıların virgülden sonraki basamak sayısı ayarlamada kullanılır. N: Sayıyı binlik basamaklara ayırarak yazar. X: Sayıyı hexdecimal(16' lık sayı sistemi) olarak yazar.

    # i ş areti: Formatl ı yaz ımda her bir say ı için # i ş aretini kullanabiliriz.

    static void Main( string [] args){

    Console .Write( "{0:(###) ### ## ##}" , 2123552154);Console .ReadKey();

    }

    Çıktısı:

  • 8/17/2019 c Calisma Tumu

    20/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI

    Sayfa 20

    Tarih formatlama

    Özel Tarih formatlama

    Giriş-Çıkış İşlemleri Hata Mesajlar ı

    Hazırlayacağımız programın en önemli özelliklerinden biri de stabil çalışması olmalıdır. Stabil çalışmasıprogramımızın hatalara karşı ne kadar hazırlıklı ve kullanıcıya verdiği geri dönütle eş değerdir.

  • 8/17/2019 c Calisma Tumu

    21/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI

    Sayfa 21

    Programımızın çalışması sırasında oluşabilecek hatalar genellikle kullanıcı girişlerinden kaynaklanır. Bu yüzdenkullanıcı girişlerini kontrol altına alarak çalışma zamanında oluşabilecek hataları en aza indirmek ise bizprogramcıların görevidir.

    Önce hatalar oluştuğunda programın nasıl sonlandığını görelim daha sonra bunun için bir çözüm arayalım.

    Örnek:

    static void Main( string [] args){

    int x;Console .Write( "Bir Sayıyı Giriniz: " );x = Convert .ToInt16( Console .ReadLine());Console .ReadKey();

    }

    Programımızı çalıştıralım ve sayı yerine string bir ifade girelim.

    Ekran çıktısı

    Programda istenilen sayı yerine „string‟ bir ifade girdiğimiz zaman ekran çıktısı aşağıdaki gibi olacaktır. „String‟ifade „int‟ tipine çevrilmede zorlanılacağından program duracaktır. Giriş dizesinin doğru olmadığına dair bir hataverecektir ( Input string was notin a corrent format.) .

    Giriş dizesi do ğru biçimde değil hata mesaj ı

    Yukarıdaki kodlarda da görüldüğü gibi program esnasında kullanıcılar tarafından yapılan hatalı girişler programınhatayla karşılaşmasına ve durmasına sebep olmaktadır. Biz bu hataları program içinde nasıl yakalarız vekullanıcıya hata hakkında nasıl mesaj veririz buna bakalım.

    .Net programcılıkta biz bu tür hatalara istisnalar( Exception ) diyoruz. İstisnalar, programımızın çalışma zamanındayani program çalışırken ortaya çıkan olağan dışı durumlardır.

    .NET ortamında her şey gibi istisnalar da sınıflar kullanılarak oluşturulmakta ve tüm istisnalar temelSystem.Exception nesnesinden türetilmektedir.

  • 8/17/2019 c Calisma Tumu

    22/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI

    Sayfa 22

    İstisnaları program esnasında yakalamak ve kullanıcıya hata mesajını vermek için try{} catch{} finally{} bloklarınıkullanıyoruz.

    try{} bloku: İstisnanın çıkması muhtemel kodların yazıldığı bloktur.

    catch{} bloku: Oluşan istisnanın yakalandığı ve kullanıcıya sunulduğu bloktur.

    finally{} bloku: Try bloku içinde hata olsa da olmasa da çalışmasını istediğimiz kod ların yazıldığı bloktur. Finallybloğu genellikle bazı kaynakları serbest bırakmak için kullanılır. Kullanılması isteğe bağlı birbloktur. En sık kullanıldığı yerler açık olan veri tabanı bağlantılarının program kırılsa da kırılmasada kapatılması durumlarıdır.

    Örnek : static void Main( string [] args){

    int x, y;Console .Write( "1. Sayıyı Giriniz: " );x = Convert .ToInt16( Console .ReadLine());Console .Write( "2. Sayıyı Giriniz: " );

    y = Convert .ToInt16( Console .ReadLine());try{

    Console .WriteLine( "{0} / {1} = {2}" , x, y, x / y);}catch ( Exception e){

    Console .WriteLine( "Hata Oluştu : { 0}" , e);}finally{

    Console .WriteLine( "İyi Günler" );}Console .ReadKey();

    } Programımızı çalıştırıp aşağıdaki gibi değerleri girdiğimiz zaman herhangi bir hatayla karşılaşılmadığından

    istediğimiz sonucu üretecektir.

    Ekran Çıktısı

    Fakat prog ramımıza aşağıdaki değerleri girdiğimiz zaman hatayla karşılaşılacak ve programımız olduğu yerdedurup catch{} blokuna atlayacak ve buradan çalışmaya devam edecektir.

    Ekran Çıktısı

    Açıklama Sat ırlar ı

    Açıklama satırları programcıya kod içinde tanımlama metinleri yazma imkânı sağlar. Bu sayede kod parçacıklarının

    ne iş yaptıkları anlatılmış olur. Kodlarımız arasına açıklama satırları eklemek oldukça önemlidir.

  • 8/17/2019 c Calisma Tumu

    23/23

    2- C# PROGRAMINA GİRİŞ ÇALIŞMA YAPRAĞI Az satırlı program kodlarında bir şey ifade etmeyebilir fakat büyük programlarda kod bloklarının ne işe yaradıkları

    yazılarak programcının ileride karşılaşacağı problemleri kolay çözmesinde yardımcı olacaktır.

    Ayrıca açıklama satırları program derlenirken dosya içerisine alınmadığından oluşan dosyanın boyutunu ya da çalışmasınıetkilememektedir.

    static void Main( string [] args){

    //Bu Sat ır ekrana Merhaba Dünya Yazar. Console .Write( "Merhaba Dünya" );

    }

    // karakterlerinden sonra gelen ve satırın sonuna kadar olan sözcükler yorum satırlarıdır ve programlama diliderleyicisi tarafından görünmez.

    Aynı zamanda birden fazla satıra yorum eklemek istiyorsak /* */ karakterleri arasına yorum yazarız.

    static void Main( string [] args){

    /* Bu Sat ır ekrana Merhaba Dünya Yazar. Bu K ıs ım derleyici taraf ından yok say ıl ır.*/Console .Write( "Merhaba Dünya" );

    }