710 likes | 1.05k Views
B TP205 – Görsel Programlama. C# Temelleri. Bugün…. Değişkenler ve İfadeler Yorumlar Değişkenler İfadeler Operat örler Namespace s (Ad alanları) Akış kontrolü if, switch while, do-while, for, foreach İkili operatörler. Temel C# Sözdizimi.
E N D
BTP205 – Görsel Programlama C# Temelleri
Bugün… • Değişkenler ve İfadeler • Yorumlar • Değişkenler • İfadeler • Operatörler • Namespaces (Ad alanları) • Akış kontrolü • if, switch • while, do-while, for, foreach • İkili operatörler
Temel C# Sözdizimi • Boşluklar (boşluk, yeni satır, tab) C# derleyicisi tarafından göz ardı edilir • İfadeler noktalı virgül (;) ile sonlandırılır • C# kodları büyük-küçük harf duyarlıdır • C# blok-yapılıbir dildir ve bloklar ayraçlar ile sınırlanır (‘{’ ve ‘}’) • Kodlarınızı yazarken okunabilir olması için • içerden başlamaya dikkat ediniz • yorumlar yazınız
Yorumlar • Tip I /*Tek yorum satırı*/ /*Çoklu-YorumSatırı*/ • Tip II //Başka bir tekli yorum satırı a = 0; //sayacı sıfırla • Tip III /// Dokümantasyon için kullanılan özel yorum satırları
Değişkenler • Değişkenleri, verinin içinde saklandığı kutular olarak düşünebiliriz • Değişkenlerin tipleri, isimleri vedeğerleri vardır intnum = 5; • Burada, intdeğişkenin tipi, numismi ve5‘de değeridir • Bütün değişkenler kullanılmadan önce tanımlanmalıdır
Basit Tipler • Basit tipler sayıları Boolean (doğru ya da yanlış) değerleri kapsar • Sayıları ifade etmek için birçok tip vardır, çünkü her tipi ifade edebilmek için farklı sayıda byte gerekir
Tamsayı Tipleri (integer) u: unsigned-işaretsiz s: signed-işaretli
Hassasiyet Decimal veri tipi genellikle daha yüksek hassasiyet isteyen para birimleri için kullanılır!
Diğer Basit Tipler Char veri tipinin 2 byte ve Unicodeolarak saklandığına dikkat ediniz!
Değişken Tanımlama, Değer Atama ve Yazdırma Örneği static void Main(string[] args) { intmyInteger; string myString; myInteger = 17; myString = "\"myInteger\" is"; Console.WriteLine("{0} {1}.", myString, myInteger); } Burada iki değişken tanımlanıyor Değişkenlere Değerler atanıyor Değişkenler ekrana yazdırılıyor. "myInteger" is 17.
Değişken Değerlerini Yazdırma • Değişken değerlerini ekrana yazdırmak için Console.Write()veya Console.WriteLine() metodlarını kullanınız • Console.WriteLine() metodu satırın sonuna yeni bir satır ekler • Metodların birçok veri tipini yazdırmak üzere farklı suretleri vardır, en uygun olanı kullanınız
Ekrana bir int yazdırma • int x = 17, y = 25; • Console.WriteLine(x); • Console.WriteLine(x.ToString()); • Console.Write(“x = ”); • Console.WriteLine(x); • Console.WriteLine(“x = ” + x); • Console.WriteLine(“x = ” + x.ToString()); • Console.WriteLine(“x = {0}, y = {1}.”, x, y); 17 17 x = 17 x = 17 x = 17 x = 17, y = 25.
Değişken İsimlendirme • İlk karakter bir harf ya da altçizgi (_) olmalıdır • Devam eden karakterler harf, altçizgi ya da sayı olabilir • Rezerve edilmiş kelimeler değişken ismi olarak kullanılamaz • Eğer rezerve bir kelimeyi değişken ismi olarak kullanmak isterseniz, başına bir atkarakteri (@) getirebilirsiniz
Örnek: Geçerli Değişken İsimleri • myBigVar • VAR1 • _test • i • myVariable • MyVariable • MYVARIABLE
Örnek: Geçersiz Değişken İsimleri • a+b • 99bottles • namespace • double • my-result
C# Bağlamsal Anahtar Kelimeler Bağlamsal anahtar kelimeler bazı dil yapılandırmalarında kullanılırlar.Bu yapılandırmalarda tanımlayıcı olarak kullanılamazlar. Aksi taktirde, tanımlayıcı olabilirler.
Macar Notasyonu • Değişkenin tipini gösteren bir önek başa eklenir • nAge • iAge • fDelimeter • btnClick • txtName
Deve Stili • İlk kelime küçük harfle başlar, diğerleri byük harfle devam eder • age • firstName • lastName • birthDay
Pascal Stili • Bütün kelimeler büyük harfle başlar • Age • FirstName • LastName • WinterOfDiscontent
Karakter dizileri (string) üzerine… • \u sonrasında Unicode karakterler kullanabilirsiniz • “Karli\’s string” • “Karli\u0027s string” • Eğer bir karakter dizisinin önüne @ işareti koyarsanız bütün önceleme dizgeleri yok sayılır • “C:\\inetpub\\wwwroot\\” • @“C:\inetpub\wwwroot\” • “A short list:\nitem 1\nitem 2” • @“A short list: item 1 item 2”
Değişken Tanımlama ve Değer Atama • int age; • age = 25; • int age = 25; • intxSize, ySize; • intxSize = 4, ySize = 5; • intxSize, ySize = 5;
Operatörler • Toplama, çıkarma vb. işlemler operatörler aracılığıyla yapılır • Üç operatör kategorisi vardır: • Unary (tekli) – tek terim üzerinde işlem yapar • Binary (ikili) – iki terim üzerinde işlem yapar • Tertiary (üçlü) – üç terim üzerinde işlem yapar
MatematikselOperatörler % : mod (bölümünden kalan) operatörü Örnek: 8 % 3 2.
Artırma veAzaltma Operatörleri Önce arttır, sonra atama yap Önce atama yap, sonra arttır
Alıştırma int var1, var2 = 5, var3 = 6; var1 = var2++ * --var3; Console.WriteLine("var1={0}, var2={1}, var3={2}", var1, var2, var3); var1=25, var2=6, var3=5
Değişken Değerlerini Yazdırma int var1 = 3, var2 = 5; Console.WriteLine("var1 = {0}, var2 = {1}", var1, var2); var1 = 3, var2 = 5
Değişken Değerlerini Yazdırma int var1 = 3, var2 = 5; Console.WriteLine("{0}{1}{0}{1}{1}", var1, var2); 35355
Metinleri (string) Okuma string userName; Console.Write("İsminiz: "); userName = Console.ReadLine(); Console.WriteLine("Hoşgeldin {0}!", userName); İsminiz: Bilge Hoş geldin Bilge!
Tamsayıları (int) Okuma • int age; • Console.WriteLine("Yasiniz: "); • age = int.Parse(Console.ReadLine()); • Console.WriteLine("Yasiniz{0}.", age); Eşdeğer kod: Convert.ToInt32(Console.ReadLine());
Double değerleri okuma • double w; • Console.WriteLine("Agirliginiz (kg.): "); • w = double.Parse(Console.ReadLine()); • Console.WriteLine("{0} kilogramsiniz", w); Equivalent code: Convert.ToDouble(Console.ReadLine());
Ad Alanları (Namespaces) • Hazır kütüphaneleri sağlamanın .NET yolu • C veC++’daki başlık (header) dosyaları • Java’daki paketler • .NET sınıfları ad alanlarında gruplanmıştır • Sin, Cos, Atan, Acos, Pi, Sqrt, vb. Mathad alanı • Int32, Double, vb. Systemad alanı • Windows Forms sınıfları System.Windows.Forms • Kayıt defteri (registry) operasyonlarıMicrosoftad alanı • Programlarınızı ya da DLL’lerinizi ayrı bir ad alanı içinde yazabilirsiniz, örneğin şirketinizin isminde
Akış Kontrolü • Dallanma(if, switch, üçlüoperatörler) • Döngüler(for, while, do-while, foreach)
Boolean Değişkenler • Boolean bir değişken doğru ya da yanlış değerleriniz alabilir • boolisWhite = true; • isWhite = false; • Karşılaştırma sonuçları boolean değişkenlerde tutulabilir • boolisLong = (height > 195); • boolisWhite = (color == Color.White);
‘Eğer’ İfadeleri int height; Console.Write("Boyunuzu giriniz (cm.) "); height = int.Parse(Console.ReadLine()); if (height > 190) Console.WriteLine("Siz uzun bir kişisiniz!"); else Console.WriteLine("Boyunuz normaldir!");
‘Eğer’ İfadeleri if (koşul) <koşul doğru ise çalıştırılacak ifadeler>; if (koşul) { <ifade 1>; <ifade 2>; }
if..else if(koşul) < koşul doğru ise çalıştırılacak ifadeler>; else < koşul yanlış ise çalıştırılacak ifadeler >; • Birden fazla ifade yer alırsa süslü parantez kullanınız.
‘if’ üzerine.. • Parantezler (‘(’ and ‘)’) mutlaka gereklidir • Süslü parantezler (‘{’ and ‘}’) birden fazla ifade var ise kullanılmalıdır: if (test) { ifade1; ifade2; } • elsekısmıatılabilir • ififadeleri iç içe yazılabilir
Örnek: 3 sayıdan en küçüğünü bulma int a, b, c, min; Console.WriteLine("3 sayi giriniz:"); Console.Write("a = "); a = int.Parse(Console.ReadLine()); Console.Write("b = "); b = int.Parse(Console.ReadLine()); Console.Write("c = "); c = int.Parse(Console.ReadLine()); if(a < b) { if (a < c) min= a; else min = c; } else { if (b < c) min = b; else min = c; } Console.WriteLine(«En kucuksayi{0}.", min);
Koşulları kontrol etme if (var1 == 1){ // bir şeyler yap. } else{ if(var1 == 2){ // başka bir şeyler yap. } else{ if (var1 == 3 || var1 == 4) { // başka bir şeyler yap. } else{ // başka bir şeyler yap. } } } if (var1 == 1){ // bir şeyler yap. } elseif (var1 == 2){ // başka bir şeyler yap. } elseif (var1 == 3 || var1 == 4) { // başka bir şeyler yap. } else{ // başka bir şeyler yap. }
Sık karşılaşılan hatalar • if (var1 = 1) {…} • if (var1 == 1 || 2) {…}
‘switch’ İfadeleri switch(<testDegiskeni>) { case<karsilastirmaDegeri1>: <eğer <testDegiskeni> == <karsilastirmaDegeri1> ise calistirilacak ifadeler> break; case<karsilastirmaDegeri2>: <eğer<testDegiskeni> == <karsilastirmaDegeri2> ise calistirilacak ifadeler> break; . . . case<karsilastirmaDegeriN>: <eğer<testDegiskeni> == <karsilastirmaDegeriN> ise calistirilacak ifadeler> break; default: <eğer<testDegiskeni> != karsilastirmaDegerleriise calistirilacak ifadeler> break; }
Örnek 1 switch (var1) { case 1: // Bir şey yap. break; case 2: // Başka bir şey yap. break; case 3: case 4: // Başka bir şey yap. break; default: // Başka bir şey yap. break; }