ÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER DEĞİŞKENLER VE VERİ TİPLERİ

Benzer belgeler
HSancak Nesne Tabanlı Programlama I Ders Notları

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

C#(Sharp) Programlama Dili

YZM 2105 Nesneye Yönelik Programlama

2.2- DEĞİŞKENLER VE SABİTLER ÇALIŞMA YAPRAĞI

Veri Tipleri Aşağıdaki programdaki 5 hatayı bulunuz.

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

Programlama Dilleri III 1

Nesne Tabanlı Programlama

/*int sayi1, sayi2,toplam=0;

PROGRAMLAMAYA GİRİŞ DERS 2

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Internet Programming II

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1

Nesne Tabanlı Programlama

HSancak Nesne Tabanlı Programlama I Ders Notları

ÜNİTE İÇİNDEKİLER. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA HEDEFLER OPERATÖRLER

GİRİ ÇIKIŞ İŞLEMLERİ VE BİLGİ TÜRLERİ

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

PASCAL PROGRAMLAMA DİLİ YAPISI

Diziler İndisli Değişkenler

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

C Programlama Dilininin Basit Yapıları

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

HSancak Nesne Tabanlı Programlama I Ders Notları

Programlama Dilleri 3

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

C PROGRAMLAMA D İ L İ

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Değişkenler ve Veri tipleri. Ders Notları

Karabük Üniversitesi, Mühendislik Fakültesi... WEB TEKNOLOJİLERİ

YZM 2105 Nesneye Yönelik Programlama

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

4. Bölüm Programlamaya Giriş

ÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER KARAR KONTROL DEYİMLERİ

C PROGRAMLAMA DİLİNE GİRİŞ

ÜNİTE İÇİNDEKİLER HEDEFLER MATEMATİKSEL METOTLAR. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA. (Math Sınıfı ve Metotları)

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

ÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER METOTLAR

Genel Programlama II

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Nesne Yönelimli Programlama

C Programlama Dilinde Değişkenler

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Programlama Dilleri 1. Ders 4: Diziler

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

Byte (Tamsayı) 1 0 ile 255 arasında 10 sayısı

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

Algoritmalar ve Programlama. Algoritma

BİLGİSAYAR PROGRAMLAMA DERSİ

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

Dr. Fatih AY Tel: fatihay@fatihay.net

Access e Nasıl Ulaşılır. Araç çubuklarını yeniden düzenlemek için Görünüm komutunun Araç çubukları seçeneği kullanılır.

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Giriş. ENF102 Jeoloji

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

ALGORİTMA VE PROGRAMLAMA I

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

Pointer Kavramı. Veri Yapıları

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

İNTERNET TABANLI PROGRAMLAMA

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Bölüm 2 - C ile Programlamaya Giriş

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)

C# Programının çalıştırılması, Program yazma ve Çalıştırma

DİZİLER 5/4/2010. ENF-102 Jeoloji Giriş. Tek Boyutlu Diziler. Tek Boyutlu Diziler. Örnek. Örnek

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü

2 VISUAL STUDIO 2012 GELİŞTİRME ORTAMI

1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

C Konsol Giriş Çıkış Fonksiyonları

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

Lambda İfadeleri (Lambda Expressions)

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

ALGORİTMA VE PROGRAMLAMA I

Transkript:

HEDEFLER İÇİNDEKİLER DEĞİŞKENLER VE VERİ TİPLERİ Değişkenler ve Veri Tipleri Değişkenler Sabitler Değişkenlerde Faaliyet Alanı Veri Tipleri Tür Dönüşümleri NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA Bu üniteyi çalıştıktan sonra; Değişken ve Sabit tanımlama ve değer atama yöntemlerini öğrenebilecek, Temel veri tiplerini anlayabilecek, Veri tipleri arasında tür dönüşümleri yapabileceksiniz. ÜNİTE 2

GİRİŞ Program içinde değeri değişmeyen ifadelere sabit denir. Program yazarken sabit ifadeler kullanılarak genelde aritmetik işlemler yapılır. Her aritmetik işlem sonucunda, yeni veriler ortaya çıkar. Bu verilerin her seferinde, tekrardan hesaplanması yerine hafızada tutulması değişkenler vasıtasıyla sağlanır. Değişkenler veri ve bilgilerin saklanması için kullanılan hafıza bölümleridir. Program süresinde değişkenlerin değerleri program kodlarına bağlı olarak değişebilir. Bir değişken için bellekte ayrılacak bölgenin hangi içerik ve formattaki verileri saklayacağını tespit etmek veri tipleri ile sağlanır. Değişkenler kendi aralarında değer ve referans tip olmak üzere iki gruba ayrılır. Değer tipi değişkenler aynı isimle tek bir veri ya da bilgiyi taşıyabilirken, referans tip değişkenler ise indis değerlerine göre bir ya da daha fazla bilgiyi aynı anda tutabilir. Bu ünitede Sabit ve değer tip değişkenleri tanımlama yöntemleri, değişken tipleri ve tür dönüşümlerinin nasıl yapılması gerektiği hakkında bilgiler verilecektir. Referans tip değişkenler ile ilgili bilgiler diziler konulu ayrı bir ünitede anlatılacaktır. DEĞİŞKENLER Değişkenler, Değer ve Referans tip olmak üzere iki kısma ayrılır. Değişkenler, verilerin program tarafından kullanılmasını sağlamak için kullanılan bellek bölgeleridir. Değişkenlerin tanımlanması için veri tipi ve değişken adının doğru biçimde seçilmesi gerekir. Değişken tanımlanmadan ve değeri atanmadan program içerisinde asla kullanılamaz. Değişken Tanımlama Visulal C# programlama dilinde değişken tanımlama işlemi, aşağıda gösterildiği şekilde yapılmaktadır. <Veri Tipi> Değişken_Adı; Yukarıdaki tanımlamada; Değişken_Adı, Değişkeni program kodları içerisinde kullanmak amacıyla verilmiş isim alanıdır. Veri Tipi, Uygulama içerisinde hangi tür verilerle çalışılacaksa (int, uint, float, string vb.) ona uygun veri türü bu alana yazılır. Atatürk Üniversitesi Açıköğretim Fakültesi 2

Değişkene Değer Atama Virtual C#, dilinde bir değişkene değer atama işlemi aşağıdaki gibi yapılmaktadır. Visual C#, dilinde bir değişkene herhangi bir değer atamadan onu kullanmak yasaktır. Yukarıdaki tanımlamada; Değişken_Adı = Atanacak Değer; Atanacak Değer: Uygulama içinde değişkene atanacak değerler bu alana yazılır. Yukarıda görüldüğü üzere Virtual C# ta bir değişkene değer atama işlemi (=) işaretiyle yapılır. Burada gösterilen (=) işaretinin matematikteki gibi eşittir manası yoktur. Bu işaretin anlamı işaretin sağındaki değeri solundaki değişkene aktar şeklindedir. Değişken Tanımlama ve Değer Atama Şayet bir değişken hem tanımlanıp hemde ilk değeri atanacak ise aşağıda anlatılan işlemler sırasıyla uygulanmalıdır. Değişkenlere değer ataması iki yöntemle yapılabilir. 1. Yöntem: Bu yöntem kullanıldığında, önce ilk program satırında değişken tanımlanır sonrasında ise alt satırda değişkene değer atanır. <Veri Tipi> Değişken_Adı ; Değişken_Adı = Atanacak Değer; 2.Yöntem: Bu yöntemde ise değişken tanımı ve değer ataması aynı satırda yapılır. <Veri Tipi> Değişken_Adı = Atanacak Değer; Yukarıda gösterilen her iki yöntemin anlaşılması için aşağıdaki örnekleri editörde yazarak çalıştırınız. Örnek Program_1: Bir değişken tanımlayınız. Bu değişkeninin ismi Sayi1, türü ise integer olsun ve bu değişkenin ilk değeri 99 olsun. Bu uygulama için; (Başlat>Visual Studio 2013) komutuyla Studio.NET editörünü açın. İlk ekrana gelen Start iletişim pencersinden New Project komutunu vererek Visual C# dilini seçin ve ayrıca Console Apllication şablonunu tıklayarak Atatürk Üniversitesi Açıköğretim Fakültesi 3

yeni bir program. cs dosyasını oluşturun. Kod yazım penceresine Şekil 1.1 de gösterilen ifadeleri yazım işaretlerine dikkat ederek yazın. Bu uygulamada yapılması istenen işlemler iki ayrı şekilde yapılabilir. 1.Yol: Aşağıdaki kod yardımıyla bu işlem gerçekleştirilebilir. Şekil 1.1. Değişken tanımlama ve değer atama işlemi Değişkene ilk değer atama işlemi, tanımlama sırasında ya da aynı kod bloğu arasında kalmak şartıyla sonra da yapılabilir. Yukarıdaki şekil 1.1 de kırmızı çerçeve içinde gösterilen kodda birinci satırda ismi Sayi1 olan değişken tipi integer olarak oluşturulmuş ve İkinci satırda ise ismi Sayi1 olan bu değişkene 99 değeri atanmıştır. 2.Yol: Yukarıda kırmızı çerçeve içinde gösterilen ve iki satırda gerçekleştirilen kodlama, aşağıdaki Şekil 1.2 de mavi çerçeve içinde gösterilen işlemle tek satırda gerçekleştirilmiştir. Şekil 1.2. Değişken tanımlama ve değer atama işlemi İster aynı satırda isterse farklı satırlarda değer ataması yapılsın, her iki kod satırı da incelendiğinde Sayi1 değişkenlerinin altı yeşil çizgi ile çizildiği görülmektedir. Bu, değişken tanımlarının doğru yapıdığı fakat program kodları içinde bu değişkenin henüz kullanılmadığını göstermektir. Bu yüzden kaynak kodlar, DEBUG>Start Without Debugging ya da (Ctrl+F5) komutuyla çalıştırıldığında ekranda herhangi bir bilgi gösterilmez. Atatürk Üniversitesi Açıköğretim Fakültesi 4

Değişken isimlendirme kuralları Değişken isimlendirme ile ilgili temel kuralları aşağıdaki şekilde özetlemek mümkündür. Visual C#, programlama dili büyük küçük harfe duyarlıdır. Yani AOF, Aof, aof, aof vb. yazılış durumlarını birbirinden farklı değişkenler olarak algılayacaktır. Sadece İngilizce karakterler kullanınız. ı,i,ş,ş,ç,ç,ü,ü,ö,ö,ğ,ğ karakterleri gibi Türkçe karekterler kullanılmaz. En çok karıştırılan küçük ı ve büyük İ karakterine dikkat ediniz. Özel karakterler (*,?, /,boşluk vb.) değişken tanımlamakta kullanılmaz. Her değişkenin adı her zaman bir harfle başlamalıdır. Değişken isimleri rakamla başlayamaz fakat değişken içerisinde rakam kullanılabilir. Bu kurala göre 1nesne yanlış bir deşken ismi olacaktır. nesne1, n1esne, nes1ne gibi yazılışlar doğrudur. Değişken adları herhangi bir uzunlukta olabilse de kolay okunmaları açısından çok uzun olmamalıdır. Değişken tanımlamada yapılan en büyük hatalardan biri değişken ismi olarak hatırlanması zor kısaltma kullanmaktır. Uzun kod satırlarından oluşan uygulamalarda daha sonra bu kısaltmaların ne olduğunu hatırlamak çok zor olabilir. Bu yüzden değişkenlere verilecek isimlerin mantıklı, daha sonra okunduğunda anlaşılacak isimler olması çok faydalı olacaktır. Örneğin: MaMik yerine MaasMiktari şeklinde değişken ismi kullanmak, değişken ismini hatırlamak için daha iyi olacaktır. Değişken adları olarak Studio.NET içinde tanımlı anahtar sözcükleri, nesneleri ya da özellikleri kullanılmamalıdır. İf, for, new sözcükleri değişken tanımlamakta kullanılmaz. İsimlendirme standartları Nesne Tabanlı programlama dillerinin büyük bir bölümünde kod ifadeleri Camel standardı kullanılarak hazırlanır. Kod yazarken ya da Studio.Net programında değişken ismi verirken kullanılacak birçok isim vardır. Bu isimlerin belli bir standarta göre yazılması daha sonra ismin kullanılacağı yerlerde acaba Nasıl yazılmıştı? derdinden kurtaracaktır. Belli standartlar olduğu gibi kullanıcı kendisi de bir standart oluşturabilir. Ekip çalışmasıyla yapılan büyük projelerde aşağıdaki standartlara uygun ifade deyimlerin kullanılması projenin bir araya getirilmesinde değişken ve kod yazım hatalarını en aza indirecektir Camel standardı: Yazılan ismin ilk harfi küçük, birden fazla kelimeden oluşan bir isimse diğer kelimelerin ilk harfleri büyük yazılır. Visual C# dili, bu standardı kullanmaktadır. Bu standarda göre yazmak zorunlu değildir. Fakat kod yapısına alışmak için bu şekilde bir yazım şeklini benimsemek faydalıdır. toplammaasmiktari yazımı bu standart için bir örnektir. Atatürk Üniversitesi Açıköğretim Fakültesi 5

Pascal standardı: Yazılan değişken isminin kelime ya da kelimelerin ilk harflerinin büyük olması ile yazılır. ToplamMaasMiktari yazımı bu standart için bir örnektir. Underscore standardı: Yazılan kelimelerin arasına _ işareti koyarak yazım yapılır. Toplam_Maas_Miktari yazımı bu standart için bir örnektir. Visual C# programlama dilinde Değişken isimleri tanımlarken Camel standardı, Sınıf ve Metotları yapıları tanımlanırken Pascal standardı tercih edilir. Açıklama satırlarında ise her üç standart birlikte kullanılabilir. Visual C# dilinde Studio.NET editörüne kod yazma şekilleri Studio.Net ortamında kod yazarken aşağıda gösterilen bazı yazım araçlarını ya da işaretleri kullanmak gerekmektedir. Kod ipuçları: Yazılan kodlar için ipucu kutusunu çalıştırır. Kod ile ilgili parametreler bu kutu içerisinde gösterilir. Kod yazarken anahtar sözcük yazıldıktan sonra bir boşluk ya da (.) işareti kullanıldığında Şekil 1.3 de gösterilen kod ipuçları kutusu aktif hâle gelecektir. Program yazarken eğer kod ipuçları kullanılırsa anahtar sözcüklerin ezbere bilinmesine gerek kalmadan kodlar hatasız yazılabilir. Visual C#, dilindeki yazılan anahtar sözcükler Studio.Net kod yazım editörü tarafından atanması durumunda rengi mavi ile işaretlenir. Nokta(.): Nesnelerin yol tanımlarını yapabilmek ya da sınıfların özellik ve metotlarına ulaşmak için kullanılan bir işarettir. Bir kod satırı ancak (;) ifadesiyle sonlandırılabilir. Noktalı Virgül (;): Visual C# de diğer bazı dillerde olduğu gibi kaynak koddaki bütün satırlar ; ile sonlandırılır. ( if, for satırları gibi bazı durumlar hariç.) Açıklamalar: Kodlamanın yoğun ve uzun olduğu projelerde, kod parçalarının ne iş yaptığını hatırlamak ya da takım çalışması yaparken takım üyelerini kod blokları ve değişkenler hakkında bilgilendirmek için kullanılır. Kodların işleyişini etkilemez. Açıklama ifadesi eklemek için: Visual C# dilinde tek satırlık açıklamalar ( // ) işaretiyle yazılır. Bu işaretten sonra yazılanlar tüm satırı açıklama satırı hâline getirir. Satır bittiğinde açıklamada bitmiş olur. /*.. */ ifadesi yazıldığında, araya yazılan her şey açıklama olarak alınır. Açıklama satırları, program yazarken bazı kodları iptal etmek veya etkisini diğer kullanıcılara bildirmek amacıyla sıkça kullanılır. Atatürk Üniversitesi Açıköğretim Fakültesi 6

Şekil 1.3. Editör içerisindeki kod ipuçları aracının kullanılması Yazılmış Visual C# projelerinin dosyaları uzantısı *.cs olacak şekilde kaydedilmelidir. Sınıflar ve Metodlar, açılan ve kapanan küme parantezler { } içerisine yazılırlar. Örnek Program_2: Bu uygulamada yeni Degisken tanımı yapılarak içerisine Nesne tabanlı Programlama I değeri atanarak, değişkenin değerinin ekranda gösterimi sağlanacaktır. Bu işlem için aşağıda gösterilen işlem basamaklarının uygulanması yeterlidir. (Başlat>Visual Studio 2013) komutuyla Studio.NET editörünü açın. İlk ekrana gelen Start iletişim penceresinden New Project komutunu vererek Visual C# dilini seçin ve ayrıca Console Apllication şablonunu tıklayarak yeni bir program. cs dosyasını oluşturun. Kod yazım penceresine Şekil 1.4 te gösterilen ifadeleri yazım işaretlerine dikkat ederek yazın. DEBUG>Start Without Debugging ya da (Ctrl+F5) komutuyla yazılan programı çalıştırın. Atatürk Üniversitesi Açıköğretim Fakültesi 7

Şekil 1.4. Editör içerisinde kod yazım işaretlerinin uygulanmasının gösterimi Bütün Visual C# kodları using System; koduyla başlar. Visual C# programlama dilinde konsol uygulaması geliştirirken yeni bir proje dosyası açtığımızda ilk başta Şekil 1.5 de gösterilen kaynak kodlar ekrana gelir. Bu kodların bir kısmı şimdilik gerekli değildir. Bu yüzden işimize yaramayan kısımlar açıklama satırı hâline getirilmiştir. Bu programın (Ctrl+F5) kısa yol tuşları kullanılarak çalıştırılması sonrası Şekil 1.6 da gösterilen program çıktısı ekrana gelir. Şekil 1.5. Editör içerisinde kullanılmayan kodların ayıklanmış gösterimi Şekil 1.6. Örnek Program_2 ye ait ekran çıktısı Şekil 1.5. de gösterilen kaynak kodlar, Visual C# diliyle uygulama yazmak için mutlaka gereklidir. Bu kodların çalıştırılması sonrası Şekil 1,6 daki ekran çıktısı görülür. Pogramlar Studio.NET sınıf kütüphanesinde yer alan komutların çalışması Atatürk Üniversitesi Açıköğretim Fakültesi 8

için her zaman using System anahtar kelimesiyle ile başlar. Sonrasında Visual C# dilinde, programlarında en az bir sınıf bulunması gerektiğinden class program kod satırıyla program isimli, sınıf tanımlanır. İçerisinde Sınıf bildirimi bulunmayan programlar derlenmez. Static void Main() kod satırı programın çalışmaya başlandığı noktadır. İçerisinde Main() metodu bulunmayan uygulamalar çalışmaz. Bir sınıf içinde iş yapan Main gibi tanımlara metod ya da fonksiyon denilmektedir. Yukarıda Şekil 1.4 içindeki açıklama satırındaki kodlar, konular işlendikçe anlam kazanacaktır. Şu an için bu kodlara gerek yoktur. Aksi söylenmedikçe şekil 1.5 de gösterilen sade kod biçimiyle bütün örnek uygulamalar yazılacaktır. Dosya ve klasör işlemleri, Sınıf ve Metotlar ile Veri tabanı bağlantıları gibi işlemler için konular ilerledikçe sade gösterime gerekli ilaveler yapılacaktır. Değişkenlerin Faaliyet Alanları Program içinde birçok yerde kullanılan değişkenler global olarak tanımlanmalıdır. Virtual C# dilinde programlar açılan ve kapanan küme parantezleri {} içerisinde yazılır. Bu açılan ve kapanan parantezler arasındaki bölgeye blok adı verilir. Tanımlanan bir değişkene ancak tanımlanan blok içerisinde ulaşılabilir ve bu bölgeye faaliyet alanı adı verilir. Bir faaliyet alanındaki değişkenin tekrar tanımlanması derleyici hatasına neden olur. Faaliyet alanları aşağıdaki verilen özel durumlara sahiptir. Bir sınıf içinde üye elaman olarak tanımlanmış değişkenler O sınıfa ait blok içindeki başka sınıf ve metodlar içinde kullanılabilir. Bu şekilde tanımlanmış bir değişkene Global değişken adı verilir. Bir metot için tanımlanmış değişkenler sadece o metot için belirlenen blok içerisinde geçerlidir. Bir başka metot içinde kullanılamaz. For, While, do-while gibi döngü blokları içinde tanımlanan değişkenler döngü blokları dışına çıkıldığında geçersiz olurlar. Bu şekilde tanımlanan değişkenlere Lokal değişkenler adı verilir. Örnek Program_3: Bu uygulamada Sınıf, metot ve for döngüsü içerisinde değişken tanımı yapılarak ekranda yazdırılması sağlanacaktır. Şekil 1.7 de kodlar içerisindeki yeşil renkteki açıklama satırları değişkenlerin başlangıç ve bitiş noktalarını gösterirken a,b,c,d değişkenleri de faaliyet alanına göre değişken çeşitlerini string tipte hafızada tutmak amacıyla kullanılmıştır. Yazılan kod çalıştırıldığında yazarken sol taraftaki sarı bilgi bandı yeşil hâle gelecektir. Hatalı kullanımlarda bu bilgi bandı hangi satır hatalıysa o satırın rengini sarı olarak değiştirecektir. Bütün değişkenler doğru faaliyet alanında kullanıldığı için program hatasız çalışmış ve şekil 1.8 de gösterilen ekran çıktısını görüntülemiştir. Bu yazılan kod içindeki a değişkeni global olarak tanımlanmıştır ve tanımlanan sınıf içinde her yerde kullanılabilir. Lokal olarak tanımlanan diğer değişkenler ise tanımlandığı faaliyet alanı dışında geçersizdir. For döngüsünün kullanımı Döngü yapıları isimli ünitede ayrıntılı olarak anlatılacaktır. Atatürk Üniversitesi Açıköğretim Fakültesi 9

Şekil 1.7. Örnek Program_3 ye ait kod dosyasının gösterimi Şekil 1.8. Örnek Program_3 e ait ekran çıktısı Şekil 1.9 da gösterilen kodlar incelendiğinde for döngüsü içerisinde tanımlı olan c değişkeninin hem döngü içinde hem de döngü dışında kullanılmak istendiği görülecektir. Bu yeni durumda renk bilgi bandı sarı renkle hatayı işaret etmiş ve hatalı olan satırdaki, geçersiz değişkenin altını kırmızı ile çizerek göstermiştir. Bu durumdaki bir program derleme hatası vereceği için çalışmayacaktır. Atatürk Üniversitesi Açıköğretim Fakültesi 10

Sabit İfadeler: Şekil 1.9. Örnek Program_3 e ait yeni kod ilave edilmiş gösterimi Program içerisinde değeri hiç değişmeyecek veriler Sabit tanımlanmalıdır. Değişkenler program boyunca aynı değeri alabildiği gibi, ihtiyaca göre istenirse farklı değerler de alabilir. Fakat bazı özel durumlarda değişken değerlerinin program boyunca aynı kalması istenir. Örneğin (pi=3.14) sayısı gibi. Program boyunca değerinin değişmemesi gereken veriler sabit olarak tanımlanırlar. Visulal C# programlama dilinde Sabit tanımlama işlemi, aşağıda gösterildiği şekilde yapılmaktadır. Yukarıdaki tanımlamada; const <Veri Tipi> Değişken_Adı; Const, değişkenleri sabitler olarak tanımlamak amacıyla kullanılan anahtar sözcüktür. Sabitler kullanılırken aşağıdaki temel kurallara dikkat etmek gerekir. Bunlar: Sabitler tanımlandıklarında değerleri atanmalıdır. İlk değer verilmeyen değişkenler sabit olamazlar. Sabit ifadeler kendi yapılarından dolayı static bir nesne oldukları için ayrıca static anahtar sözcüğü kullanılamaz. Atatürk Üniversitesi Açıköğretim Fakültesi 11

Program içerisinde Sabit olarak tanımlanan bir değişkenin değeri program içerisinde asla değiştirilemez. Örnek Program_4: Bu uygulamada a,b değişkenleri Sabit olarak tanımlanacak ve toplamları da c sabitine aktarılacaktır. Bu duruma ait C# kodu şekil Şekil 1.10 da gösterilmektedir. Yazılan kodun çalıştırılması sonucu Şekil 1.11 de ekran görüntüsü elde edilecektir. Şekil 1.10. Örnek Program_4 e ait kod ekranının gösterimi Veri tipleri listesindeki onbeş tipin sekizi tamsayı (sbyte, short, int, long, byte, ushort, uint, ulong), üçü ondalık sayı (float, double, decimal), ikisi karakter tabanlı (char, string ), biri mantıksal (bool), biri de bütün seçenekleri kapsayan (object) verileri tutabilecek tiplerdir. Şekil 1.11. Örnek Program_4 e ait ekran çıktısı Şekil 1.12. Örnek Program_4 e ait değiştirilmiş kodun ekranda gösterimi Atatürk Üniversitesi Açıköğretim Fakültesi 12

Şekil 1.10 da gösterilen kod içerisinde sabit olarak tanımlanan c değişkeninin değeri Şekil 1.12 de gösterildiği gibi yeni bir atama ile değeri bir artırılarak değiştirilmek istendiğinde program hata verecek ve c sabitinin altını kırmızı renk çizgi ile çizerek programcıyı uyaracaktır. Veri Tipleri Değişken tanımında kullanılan Visual C# taki veri tipleri temel olarak 2 ye ayrılırlar. Bunlar önceden tanımlanmış veri türleri ve kullanıcı tarafından tanımlanmış veri türleridir. Önceden tanımlanmış olan veri türleri de kendi arasında değer tipi ve referans tipi olarak 2 ye ayrılmaktadır. Değer tipleri değişkenin değerini direkt bellek bölgesinden alırlar (int, string vb.) Referans tipler ise başka bir hafıza bölgesindeki bilginin adres bilgisini tutarlar. Bu ünitede sadece değer tipleri anlatılacak olup diğerleri hakkında bilgiler sonraki ünitelerde anlatılacaktır. Bütün programlama dillerinde olduğu gibi Visual C# programlama dilinde de değişkenler belirli kurallar çerçevesinde tanımlanır ve kullanılırlar. Bu değişkenlerin ve taşıdıkları değer olan verilerin tiplerinin belirlenmesi çok büyük önem arzetmektedir. Zira Veri tipinin doğru belirlenmesi geliştirilen programın hatasız, hızlı ve daha yüksek performanslı çalışmasını sağlarken, Veri tipinin hatalı belirlenmesi programın hızını yavaşlatırken bellekte daha fazla yer kaplamasına neden olabilir. Örneğin Object tipine sahip değişkenler, diğer tiplere gerek olmadan bütün değişkenlerin işlevlerini yerine getirebilmektedir ancak bu kullanım şekil yönüyle; bir kişiyi otomobil ile taşımak yerine kamyonla taşımakla, aynı anlama gelmektedir. Bu nedenle, verinin yapısı dikkate alınarak en uygun değişken tiplerinin oluşturulması, geliştirilecek programın performansı açısından oldukça önemlidir. Visual C#, Değer tipleri olarak da adlandırılan birçok yerleşik veri tipi mevcuttur. Aşağıdaki Tablo 1.1 de, C# dilinde en çok kullanılan temel veri tipleri ve her birinde depolayabileceğiniz değer oranları listelenmiştir. Atatürk Üniversitesi Açıköğretim Fakültesi 13

Tablo 1.1. Visual C# dilinde en çok kullanılan değer tipleri C# dilindeki Adı Tür dönüşümündeki kullanım Adı Açıklama Değer Aralığı object Object Tüm veri tipleri için temel Sınıf - bool Boolean Mantıksal Doğru/Yanlış true : false byte Byte 8 bit işaretsiz tamsayı 0 : 255 sbyte Byte 8 bit işaretli tamsayı -128 : 127 char Char Karakterleri temsil eder 16 Unicode karakterleri decimal Decimal 128 bit ondalıklı sayı ± 1,5*10-28 : ± 7,9*10 28 double Double 64 bit çift kayan sayı ± 5*10-324 : ± 1,7*10 308 float Single 32 bit tek kayan sayı ± 1,5*10-45 : ± 3,4*10 38 int Int32 32 bit işaretli tamsayı -2.147.483.648 : 2.147.483.647 uint UInt32 32 bit işaretsiz tamsayı 0 : 4.294.967.295 long Int64 64 bit işaretli tamsayı -9.223.372.036.854.775.808 : 9.223.372.036.854.775.807 ulong UInt64 64 bit işaretsiz tamsayı 0 : 18.446.744.073.709.551.615 short Int16 16 bit işaretli tamsayı -32.768 : 32.767 ushort UInt16 16 bit işaretsiz tamsayı 0 : 65.535 string String Karekter Dizisi Unicode Karekter Dizisi Tablo 1.1 de gösterilen değer tiplerinin açıklaması kısaca aşağıda verilmektedir. Object Değişken Türü: Her nesne object türünden türetildiği için bütün değerler object türünden bir değişkene atanabilir. Bu değişken türüne tamsayı, ondalıklı sayı, metin vb. değişken türleri aktarılabilir. Örnek Program_5: Bu örnekte a değişkeni object türünde tanımlanarak farklı türdeki değerlerin bu değişkene nasıl atandığı gösterilecektir. Atatürk Üniversitesi Açıköğretim Fakültesi 14

Bir verinin özelliği bilinmiyorsa Object türü tanımlanmalıdır. Şekil 1.13. Örnek Program_5 object veri tipine değer atamasının yapılması Şekil 1.13 deki kod incelendiğinde a object tipinde tanımlanmış ve sırasıyla 10 değerindeki tamsayı, A Metin, B Karekteri, false mantıksal değeri, 3.33 ondalıklı sayısı atanmıştır. Şekil 1.13 de gösterilen kod çalıştırıldığında şekil 1.14 deki ekran çıktısı görülebilmektedir. Boolean Değişken Türü: Şekil 1.14. Örnek Program_4 e ait ekran çıktısı Mantıksal karşılaştırmaların sonuçları Boolean veri türünde saklanır. Yalnızca true (doğru) ve false (yanlış) değerini alan değişken türüdür. True 1, false 0 rakamına karşılık gelir. Bellekte 2 byte lık yer kaplar. Örnek Program_6: Bu örnekte bir boolean tipinde a değişkeni tanımlanarak true/false değerlerin nasıl atandığı gösterilecektir. Atatürk Üniversitesi Açıköğretim Fakültesi 15

Şekil 1.15. Örnek Program_6 Boolean veri tipine değer atamasının yapılması Şekildeki kod incelendiğinde a boolean tipinde tanımlanmış ve sırasıyla true ve false mantıksal değeri atanmıştır. Şekil 1.15 de gösterilen kodun çalıştırıldığında bu sonuçlar Şekil 1.16 deki ekran çıktısı görülebilmektedir. Byte ve Sbyte Değişken Türleri: Şekil 1.16. Örnek Program_6 e ait ekran çıktısı Visual C# dilinde kullanılabilen en küçük tamsayılar byte veri tipinde tutulur. Byte, 0-255 arasında değer alabilen bir değişken türüdür. Sbyte ise, -128 +127 arasında değer alabilir. Sbyte değişken türünün byte değişken türünden farkı, negatif sayıları saklıyor olmasıdır. Sbyte taki S harfi signed (işaretli) anlamındadır. Bellekte 1 byte lık yer kaplar. Örnek Program_7: Bu örnekte bir Byte tipinde a ve Sbyte tipinde b değişkeni tanımlanarak bunlara en üst ve en alt sınır değerlerin nasıl atandığı gösterilecektir. Atatürk Üniversitesi Açıköğretim Fakültesi 16

Şekil 1.17. Örnek Program_7 byte ve sbyte veri tipine değer atamasının yapılması Şekil 1.17 deki kod incelendiğinde a byte ve b ise sbye tipinde tanımlanmış ve sırasıyla en alt ve en üst sınır değer atanmıştır. Şekil 1.17 de gösterilen kod çalıştırıldığında program sonuçları Şekil 1.18 deki ekran çıktısı şeklinde görülecektir. Char Değişken Türü: Şekil 1.18. Örnek Program_7 e ait ekran çıktısı Visual C# dilinde klavye üzerindeki bir tek tuşa basma işlemleri Char veri tipinde tutulur. Sadece tek karakterlik bilgi için kullanılır ve bellekte 2 byte lık yer kaplar. Tek karakterlik bilgi değişkene aktarılırken ( ) tek tırnak içinde yazılmalıdır. Char değişkenler harf veya rakam bilgisi saklayabilir. Char değişken türü Unicode karakter setini de içerdiği için 65536 farklı karakteri içinde tutar. Char değişken türüne bazı özel görevleri olan tuşları atamak mümkündür (esc, enter, tab vb.). Özel Karakterleri temsil etmek için \ (ters slash) işareti de kullanılabilir. (\r enter, \e esc, \t tab, \\ \vb.). Değişken_adı = (char) tuş ASCII kodu; Değişken_adı = (char) 13; Ascii kod tablosunda 13 ün karşılığı Enter tuşudur. Atatürk Üniversitesi Açıköğretim Fakültesi 17

Örnek Program_8: Bu örnekte bir char tipinde a değişkeni tanımlanarak bu değişkene sırasıyla A karekteri, enter tuş değeri ve \ özel karekterlerin nasıl atandığı gösterilecektir. Şekil 1.19. Örnek Program_8 char veri tipine değer atamasının yapılması Şekildeki kod incelendiğinde a char tipinde tanımlanmış ve sırasıyla A karekteri, enter tuş değeri iki kere ve \ değeri atanmıştır. Şekil 1.17 de gösterilen kod çalıştırıldığında bu sonuçlar Şekil 1.20 deki ekran çıktısında görülebilmektedir. Şekil 1.20. Örnek Program_8 e ait ekran çıktısı Decimal değişkenler hem ondalıklı hem de tamsayılar için kullanılabilir. Decimal Değişken Türü: Genellikle bankacılık işlemlerindeki gibi, ondalık değere sahip olup virgülden sonraki basamak sayısının fazla olduğu veriler için kullanılır. Eğer decimal değişken türüne ondalıklı sayı atanmak istenirse değerin sonuna M veya m harfinin yazılması gerekir. Bellekte 16 byte lık yer kaplar. Atatürk Üniversitesi Açıköğretim Fakültesi 18

Örnek Program_9: Bu örnekte bir decimal tipinde askariucret değişkeni tanımlanarak bu değişkene 1332.45 ondalıklı değerin nasıl atandığı gösterilecektir. Şekil 1.21. Örnek Program_9 decimal veri tipine değer atamasının yapılması Şekildeki kod incelendiğinde decimal tipinde askariucret değişkeni tanımlanarak bu değişkene 1332.45 ondalıklı değerin nasıl atandığı görülmektedir. Şekil 1.21 da gösterilen kodun çalıştırılması sonucu Şekil 1.22 deki ekran çıktısı görülebilmektedir. Double ve Float Değişken Türü: Şekil 1.22. Örnek Program_9 e ait ekran çıktısı Float tipi ondalık değer alabilen değişkenler en fazla 7 anlamlı basamaktan oluşturabilir. Ondalık değer içeren çok büyük sayısal verilerin saklanmasında Double, günlük kullanıma uygun ondalıklı sayıların saklanmasında ise float tipi değişkenler kullanılabilir. Program kodları içinde bu değişkenlerin En büyük ve En küçük depolayabileceği değerlerini görmek için MaxValue ve MinValue özellikleri kullanılabilir. Fakat bu özelliklerin kullanabilmesi için veri tipinin C# daki isimleri yerine Tablo 1.2. de gösterilen Tür Dönüşümün Adları nın kullanılması gerekir. Atatürk Üniversitesi Açıköğretim Fakültesi 19

Örnek Program_10: Bu örnekte bir double tipinde a değişkeni tanımlanarak bu değişkene double veri tipinin En düşük ve En yüksek değerlerinin nasıl atandığı gösterilecektir. Ondalık tipler arasında double, varsayılandır. Yani bir değişkene ondalık değere sahip veri atanırsa eşitliğin sağ tarafındaki verinin tipi her zaman double olarak algılanır. Bu yüzden float ve decimal veri tiplerindeki değişkenlerin değerlerinde eğer ondalık kısım varsa verinin sonuna bitişik olarak veri tipini belirten bir son-ek koyulmalıdır. Şekil 1.23. Örnek Program_10 double veri tipine değer atamasının yapılması Şekildeki kod incelendiğinde double tipinde bir a değişkeni tanımlandığı bu değişkene önce En düşük (± 5*10-324 ) ve sonra En yüksek ( ± 1,7*10 308 ) ondalıklı değerin nasıl atandığı görülmektedir. Şekil 1.23 de gösterilen kodun çalıştırılması sonucu şekil 1.24 deki ekran çıktısı elde edilir. Şekil 1.24. Örnek Program_10 e ait ekran çıktısı Örnek Program_11: Bu örnekte bir float tipinde a değişkeni tanımlanarak bu değişkene float veri tipinin En düşük ve En yüksek değerlerinin nasıl atandığı gösterilecektir. Şekil 1.25. Örnek Program_11 float veri tipine değer atamasının yapılması Atatürk Üniversitesi Açıköğretim Fakültesi 20

Integer tipindeki değişkenin tür dönüşümlerinde kullanılan adı Int32 dir. Şekildeki kod incelendiğinde bir float tipinde bir a değişkeni tanımlandığı bu değişkene önce En düşük (± 1,5*10-45 ) ve sonra En yüksek (± 3,4*10 38 ) ondalıklı değerin nasıl atandığı görülmektedir. Şekil 1.25 de gösterilen kodun çalıştırılması sonucu şekil 1.26 deki ekran çıktısı elde edilir. Int ve Uint Değişken Türleri: Şekil 1.26. Örnek Program_11 e ait ekran çıktısı Visual C# dilinde kullanılabilen en büyük tamsayılar Long veri tipinde tutulur. Uint değişken türünün pozitif sayıları, int değişken türünün ise hem pozitif hem de negatif sayıları kapsamaktadır. Genellikle programcılar tarafından int veri tipi daha yaygın kullanıma sahiptir. Bu değişken türleri 4 byte lık veri saklar ve tamsayılar için kullanılır. Örnek Program_12: Bu örnekte bir Int tipinde a ve uint tipinde de bir b değişkeni tanımlanarak bu değişkenlere En düşük ve En yüksek alabileceği değerlerin nasıl atanabileceği gösterilecektir. Şekil 1.27. Örnek Program_12 int ve Uint veri tiplerine değer atamasının yapılıması Şekildeki kod incelendiğinde bir Int tipinde a ve uint tipinde de bir b değişkeni tanımlanarak bu değişkenlere En düşük ve En yüksek alabileceği değerlerin nasıl atandığı görülmektedir. Şekil 2.27 de gösterilen kodun çalıştırılması sonucu şekil 2.28 daki ekran çıktısı elde edilir. Atatürk Üniversitesi Açıköğretim Fakültesi 21

Long ve Ulong Değişken Türleri: Şekil 1.28. Örnek Program_12 e ait ekran çıktısı Ulong değişken türünün pozitif sayıları, long değişken türünün ise hem pozitif hem de negatif sayıları kapsamaktadır. Genellikle programcılar tarafından long veri tipi daha yaygın kullanıma sahiptir. Bu değişken türleri 8 byte lık veri saklar ve tamsayılar için kullanılır. Decimal veri türünün yetersiz olduğu yerlerde tercih edilir. Örnek Program_13: Bu örnekte bir long tipinde a ve ulong tipinde de bir b değişkeni tanımlanarak bu değişkenlere En düşük ve En yüksek alabileceği değerlerin nasıl atanabileceği gösterilecektir. Şekil 1.29. Örnek Program_13 long ve Ulong veri tiplerine değer atamasının yapılması Şekildeki kod incelendiğinde bir long tipinde a ve ulong tipinde de bir b değişkeni tanımlanarak bu değişkenlere En düşük ve En yüksek alabileceği değerlerin nasıl atandığı görülmektedir. Şekil 1.29 de gösterilen kodun çalıştırılması sonucu şekil 1.30 deki ekran çıktısı elde edilir. Atatürk Üniversitesi Açıköğretim Fakültesi 22

Short ve Ushort Değişken Türleri: Şekil 1.30. Örnek Program_13 e ait ekran çıktısı Ushort değişken türü pozitif sayıları, short değişken türü ise hem pozitif hem de negatif sayıları kapsamaktadır. Bu değer tipleri tamsayılar için kullanılır. İnt ve Uint den küçük, byte ve Ubyte veri türlerinde daha büyük değer aralığına sahiptir. Bu değişken türleri 2 byte lık veri saklar. Örnek Program_14: Bu örnekte bir short tipinde a ve ushort tipinde de bir b değişkeni tanımlanarak bu değişkenlere En düşük ve En yüksek alabileceği değerlerin nasıl atanabileceği gösterilecektir. Şekil 1.31. Örnek Program_14 short ve Ushort veri tiplerlerine değer atamasının yapılıması Şekil 1.31 daki kod incelendiğinde bir short tipinde a ve ushort tipinde de bir b değişkeni tanımlanarak bu değişkenlere En düşük ve En yüksek alabileceği değerlerin nasıl atandığı görülmektedir. Şekil 1.31 da gösterilen kodun çalıştırılması sonucu şekil 1.32 daki ekran çıktısı elde edilir. Atatürk Üniversitesi Açıköğretim Fakültesi 23

String Değişken Türü: Şekil 1.32. Örnek Program_14 e ait ekran çıktısı Visual C# dilinde klavyeden yazılan isim, soyisim ve okul numarası gibi bilgiler string veri tipinde tutulur. Birden fazla karakter saklamak için kullanılan değişken türüdür. Eğer bir karekter veri saklamak gerekirse Char veri tipi tercih edilmelidir. Hem rakamlar hem de harfler için uygundur. Fakat string tipindeki rakamlar üzerinde matematiksel işlemler yapılamaz. String bilgiler çift tırnak ( ) içinde yazılır. Örnek Program_15: Bu örnekte bir string tipinde a değişkeni tanımlanarak bu değişkene Değişkenler ve Veri tipleri şeklindeki bir string değerin nasıl atandığı gösterilecektir. Şekil 1.33. Örnek Program_15 string veri tipindeki bir değişkene değer atamasının yapılıması Şekil 1.33 deki kod incelendiğinde bir string tipinde a değişkeni tanımlanarak bu değişkene Değişkenler ve Veri tipleri şeklindeki bir string değerin nasıl atandığı gösterilecektir. Şekil 1.33 de gösterilen kodun çalıştırılması sonucu şekil 1.34 deki ekran çıktısı görülebilmektedir. Şekil 1.34. Örnek Program_15 e ait ekran çıktısı Atatürk Üniversitesi Açıköğretim Fakültesi 24

Tür Dönüşümleri Farklı türden değişkenlerin aynı ifade içinde işlem görmeleri için tür dönüşümü kullanılır. Örneğin, sayısal bir veriyi string değişken türüne, string bir veriyi sayısal değişken türüne dönüştürmeniz gerekebilir. Nesne tabanlı programlamada bazı tür dönüşümleri derleyici tarafından otomatik olarak yapılırken bazılarının da kullanıcı tarafından yapılması istenir. Derleyici tarafından bir değişkeni tanımladığımız türün dışında geçici olarak başka bir türe çevirmeye Bilinçsiz tür dönüşümü denir. Örnek Program_17: Bu örnekte bir int tipinde a değişkeni tanımlanarak 33 değeri atanacak ve float tipinde bir b değişkeni tanımlanacaktır. Tamamen farklı tipteki a değişkeni b değişkenine atanarak bilinçsiz tür dönüşümü sağlanacaktır. Bu işlemin Şekil 1.35 ve 1.36 de gösterilmektedir. Şekil 1.35. Örnek Program_17 de yapılan bilinçsiz tür dönüşümünün kod gösterimi Şekil 1.36. Örnek Program_17 e ait ekran çıktısı Bilinçli tür dönüşümleri ise genellikle derleyicinin izin vermediği dönüşümlerde yapılır. Bilinçli tür dönüşümü yapılırken tür dönüştürme operatörleri kullanılır. Visulal C# programlama dilinde bilinçsiz tür dönüşüm işlemi, aşağıda gösterildiği şekilde yapılmaktadır. (Dönüşecek Veri Tipi) Değişken_Adı; Atatürk Üniversitesi Açıköğretim Fakültesi 25

Dönüştürülecek değişken tipinin boyutu hedef değişken tipinin boyutundan büyükse, bu şekildeki bir değişken tipi dönüşümü otomatik yapılamaz. Çünkü işlemin sonucunda byte veya bytelar kaybolacaktır. Derleyici bu yüzden yapılan işlemi kabul etmez ve özel metodların kullanılmasını ister. Örnek Program_18: Bu örnekte bir int tipinde a değişkeni tanımlanarak 33 değeri atanacak ve byte tipinde bir b değişkeni tanımlanacaktır. Tamamen farklı tipteki ve büyük türün küçük türe dönüşümü bilinçsiz dönüşümle yapılamadığından a değişkenin değeri () aracı kullanılarak b değişkenine bilinçli tr dönüşümü yapılarak atanması sağlanacaktır. Bu işlemin Şekil 1.37 ve 1.38 de gösterilmektedir. Şekil 1.37. Örnek Program_18 de yapılan bilinçli tür dönüşümünün kod gösterimi Şekil 1.38. Örnek Program_18 e ait ekran çıktısı Derleyici tarafından otomatik olarak tür dönüşümü yapılabilen değişken türleri Tablo 1.2 de gösterilmektedir. Tablo 1.2. Derleyici tarafından otomatik olarak tür dönüşümü yapılacak değişken türleri Veri Tipi byte short int long float Dönüştürülebileceği Tipler short, ushort, int, uint, long, ulong, float, double, decimal int, long, float, double, decimal long, float, double, decimal float, double, decimal double Atatürk Üniversitesi Açıköğretim Fakültesi 26

char sbyte ushort uint ulong int, uint, long, ulong, float, double, decimal short, int, long, float, double, decimal int, uint, long, ulong, float, double, decimal long, ulong, float, double, decimal float, double, decimal ToString ( ) Metodu: Boolean tipi değişkenler yalnız Dogru/Yanlış gibi değer taşıdığı için tür dönüşümüne tabi tutulmaz. Kod yazım aşamasında işlem yapılan sayısal değerleri string tipe dönüştürmeden mesaj kutusu, metin kutusu veya etiketlere aktarmak mümkün değildir. ToString( ) metodu bu dönüşümü gerçekleştirerek sayısal değerleri string değer alan nesnelere aktarma işleminde kullanılır. ToString() metodunu kullanmak için, sayısal değişken yazıldıktan sonra nokta karakteri yazılarak açılan menüden ToString() seçilmelidir. Bu metotla single, int, bool, float ve object türleri string türe dönüştürülebilir. Örnek Program_19: Bu örnekte; önce int tipinde a ve b değişkenleri tanımlanarak bu değişkenlere 33 ve 66 sayısal değerleri atanacaktır. Sonrasında ToString yöntemi kullanılarak bu değişkenlerden a1 ve b1 string türündeki iki yeni değişken üretilerek, string ve int türünde iki ayrı toplama işlemi yaptırılarak sonuçları ekrana yazdırılacaktır. Şekil 1.39 de kaynak kodu gösterilen programda a ve b int değişkenlerine a=33 ve b=66 sayısal değerler ve bu değişkenlerden yeni string türünde a1=33 b1=66 değerleri ToString metoduyla üretilmiştir. Şekil 1.40 de ilk olarak gösterilen 99 değeri int a ve b değişkenlerin matematiksel toplamını, 3366 sonucu ise string a1 ve b1 in metinsel toplama işlemi sonucu göstermektedir. Şekil 1.39. Örnek Program_19 de ToString yönetimiyle yapılan tür dönüşümünün kod gösterimi Atatürk Üniversitesi Açıköğretim Fakültesi 27

Convert Metodu ( ): Şekil 1.40. Örnek Program_19 e ait ekran çıktısı Convert metoduyla dönüştürme işleminde derleyici tarafından izin verilen tüm türlere dönüştürme işlemi yapılabilir. Dönüştürme işlemini yapmadan önce dönüştürülecek bilginin hangi türlere dönüştürülebileceğine dikkat edilmelidir. Convert metodunu kullanırken; Convert yazıp nokta karakteri yazıldığında açılan menüden istenilen dönüşüm türü seçilerek dönüştürülecek bilgi parantez içinde yazılmalıdır. Örnek Program_20: Bu örnekte; önce string tipinde a ve b değişkenleri tanımlanarak bu değişkenlere 33 ve 66 string değerleri atanacaktır. Sonrasında Convert dönüşüm yöntemi kullanılarak bu değişkenlerden a1 ve b1 int türündeki iki yeni değişken üretilerek, string ve int türünde iki ayrı toplama işlemi yaptırılarak sonuçları ekrana yazdırılacaktır. Şekil 1.41. Örnek Program_20 de Convert yönetimiyle yapılan tür dönüşümünün kod gösterimi Şekil 1.42. Örnek Program_15 e ait ekran çıktısı Atatürk Üniversitesi Açıköğretim Fakültesi 28

Şekil 1.41 de kaynak kodu gösterilen programda a ve b string değişkenlerine a=33 ve b=66 string değerler ve bu değişkenlerden yeni int türünde a1=33 b1=66 değerleri Convert metoduyla üretilmiştir. Şekil 1.42 de ilk olarak gösterilen 3366 sonucu string a ve b nin metinsel toplama işlemi sonucu göstermekte olup, 99 değeri ise int a1 ve b1 değişkenlerin matematiksel toplamını göstermektedir. Parse Metodu( ): Tür dönüşümleri için kullanılan yöntemlerden biri de parse metodudur. Bu metot da Convert metodunun yaptığı ve izin verilen tüm dönüşümleri yapmaktadır. Örnek Program_21: Bu örnekte bir string tipinde a ve b değişkenleri tanımlanarak 33 ve 66 string değerleri atanacaktır. Bu uygulamada program_20 den farklı olarak, değişkenler Parse yöntemi kullanılarak a1 ve b1 int türde tanımlanan değişkenlere atanacaktır. Şekil 1.43 de kaynak kodu gösterilen programda a ve b string değişkenlerine a=33 ve b=66 string değerler ve bu değişkenlerden yeni int türünde a1=33 b1=66 değerleri Parse metoduyla üretilmiştir. Şekil 1.44 de ilk olarak gösterilen 3366 sonucu string a ve b nin metinsel toplama işlemi sonucu göstermekte olup, 99 değeri ise int a1 ve b1 değişkenlerin matematiksel toplamını göstermektedir. Şekil 1.43. Örnek Program_21 de Parse yönetimiyle yapılan tür dönüşümünün kod gösterimi Şekil 1.44. Örnek Program_21 e ait ekran çıktısı Atatürk Üniversitesi Açıköğretim Fakültesi 29

Özet Değişkenler ve Veri Tipleri Visual C# kodları içinde; Sınıfları ayırırken Nokta (.), Satırları ayırırken Noktalı Virgül (;) kullanılır. Değişkenler, verilerin program tarafından kullanılmasına sağlamak için kullanılan bellek bölgeleridir. Bir değişken tanımlandığında, tanımlanan değişkene bir değer atayana kadar rastgele bir değer içerir. Bu yüzden Virtual C#, değer atanmamış değişkenin program içerisinde kullanımına izin vermez. Sınıfları ve metotları iyi organize edebilmek için.net, isim alanı (namespace) kavramı kullanılmaktadır. Bütün C# programları en az bir sınıf içermelidir. Sınıf bildirimi içinde olmayan programlar derlenmez. Main() metodu programın başlangıç noktasıdır. Virtual C# dilinde, programlar açılan ve kapanan {} küme parantezleri içerisinde yazılır. Bu açılan ve kapanan parantezler arasındaki bölgeye blok adı verilir. Tanımlanan bir değişkene ancak tanımlanan blok içerisinde ulaşılabilir ve bu bölgeye faaliyet alanı adı verilir. Bir sınıf içinde üye elaman olarak tanımlanmış değişkenler O sınıfa ait blok içindeki başka sınıf ve metodlar içinde kullanılabilir. Bu şekilde tanımlanmış bir değişkene global değişken adı verilir. Döngü blokları içinde tanımlanan değişkenler döngü blokları dışına çıkıldığında geçersiz olurlar. Bu şekilde tanımlanan değişkenlere Lokal değişkenler adı verilir. Program içinde değeri değişmeyen ifadelere sabit denir. Değişken tanımında kullanılan Visual C# taki veri tipleri temel olarak 2 ye ayrılırlar. Bunlar önceden tanımlanmış veri türleri ve kullanıcı tarafından tanımlanmış veri türleridir. Önceden tanımlanmış veri türleri; Object Değişken Türü: Her nesne object türünden türetildiği için bütün değerler object türünden bir değişkene atanabilir. Boolean Değişken Türü: Yalnızca true (doğru) ve false (yanlış) değerini alan değişken türüdür. Char Değişken Türü: Sadece tek karakterlik bilgi için kullanılır. Tek karakterlik bilgi değişkene aktarılırken ( ) tek tırnak içinde yazılmalıdır. (float, double, decimal): Genellikle ondalıklı işlemlerindeki gibi, ondalık değere sahip olup virgülden sonraki basamak sayısına uygun olarak flat,double veya decimal tiplerinden biri kullanılır. (sbyte,ushort,uint ulong): Değişken türleri pozitif sayıları, (byte,short,int long) değişken türünün ise hem pozitif hem de negatif sayıları kapsamasıdır. Genellikle en küçük tamsayılar için byte, en büyük tamsayılar için long veri tipi tercih edilir. String Değişken Türü: Birden fazla karakter saklamak için kullanılan değişken türüdür. Eğer bir karekter veri saklamak gerekirse Char veri tipi tercih edilmelidir. Hem rakamlar hem de harfler için uygundur. Fakat string tipindeki rakamlar üzerinde matematiksel işlemler yapılamaz. String bilgiler çift tırnak ( ) içinde yazılır. Farklı türden değişkenlerin aynı ifade içinde işlem görmeleri için tür dönüşüm araçları kullanılır. Atatürk Üniversitesi Açıköğretim Fakültesi 30

DEĞERLENDİRME SORULARI Değerlendirme sorularını sistemde ilgili ünite başlığı altında yer alan bölüm sonu testi bölümünde etkileşimli olarak cevaplayabilirsiniz. 1. Aşağıda verilen değişken tiplerinden hangisi bütün veri değerleriyle çalışabilir? a) Short b) Object c) Decimal d) Single e) Integer 2.Aşağıdaki değişken ve atama işlemlerinden hangisi doğru ifade edilmiştir? a) string ders = "Nesne tabanlı"; b) char konu = "değişkenler"; c) uint not=46.78; d) decimal not=true; e) byte sıcaklık=7200 3. Aşağıdaki değişken isimlerinden hangisi doğru olarak verilmiştir? a) string b) Başarı Notu c) C# d) notdegeri e) 1.Ders 4. int tipindeki bir değişkenin tür dönüşüm işleminde kullanılan adı hangisinde doğru gösterilmiştir? a) Object b) Int16 c) Int32 d) Int64 e) Single 5. float tipindeki bir değişkenin tür dönüşüm işleminde kullanılan adı hangisinde doğru gösterilmiştir? a) Char b) UInt16 c) Int32 d) Int64 e) Single Atatürk Üniversitesi Açıköğretim Fakültesi 31

6. Sbyte değişken türünün değer aralığında yer almayan sayı aşağıdakilerden hangisidir? a) -128 b) 127 c) 0 d) 255 e) 100 7. Aşağıdakilerden hangisi Sabit tanımlamakta kullanılan anahtar sözcüktür? a) const b) new c) convert d) parse e) object 8. Visual C# dilinde yazılan bir kod satırını sonlandırmak amacıyla aşağıdaki işaretlerden hangisi kullanılır? a) ; b). c) ( ) d) : e) { } 9. Visual C# dilinde yazılan bir kod satırını açıklama satırı hâline getirmek için aşağıdakilerden hangisi kullanılır? a) [ ] b) { } c). d), e) // 10. Değişken tanımlama kuralları aşağıdakilerden hangisinde yanlış verilmiştir? a) Kelimeler arasında boşluk bırakılmamalıdır. b) Özel karakterler kullanılmaz. c) Değişken isimleri rakamla başlayamaz. d) Değişken isimlerinde büyük küçük harf duyarlılığı yoktur. e) Verilecek isimler mantıklı, okunduğunda anlaşılacak şekilde seçilmelidir. Cevap Anahtarı: 1.B,2.B,3.D,4.C,5.E,6.D,7.A,8.A,9.E,10.D Atatürk Üniversitesi Açıköğretim Fakültesi 32

YARARLANILAN VE BAŞVURULABİLECEK DİĞER KAYNAKLAR AKBUĞA. Mustafa, (2011), Atatürk Üniversitesi, Uzaktan Eğitim Merkezi, Nesne Tabanlı Programlama I Ders Notları Ayık Y. Ziya, (2011), Atatürk Üniversitesi, Uzaktan Eğitim Merkezi, Görsel Programlama I Ders Notları ALGAN, Sefer, (2010), Her Yönüyle C#, İstanbul: Pusula Yayıncılık, İstanbul. AKTAŞ, Volkan, (2013), Her Yönüyle C# 5.0, KODLAB, İstanbul. CLARK, Dan, (2013), Your visual blueprint for building.net application, 2nd Edition, Hungry Minds, New York. SCHILDT, Herbert, (2002), The Complete Reference C#, çev. Duygu Arbatlı Yağcı, Alfa Basım Yayım Dağıtım, İstanbul. SHARP, John, (2002), Microsoft Visual C#.NET, çev. Mert Derman, Arkadaş Yayınevi, Ankara. YANIK, Memik, (2004), Microsoft Visual c#.net, 1.Baskı, Seçkin Yayıncılık, Ankara. MEGEP, Mesleki Eğitim ve Öğretim Sisteminin Güçlendirilmesi Projesi Nesne tabanlı programlama-3 Modülü, Ankara 2012. Açık Akademi projesi, https://www.acikakademi.com/portal/default.aspx [Erişim tarihi: 28 Agusto 2014]. Atatürk Üniversitesi Açıköğretim Fakültesi 33