2. • C’de değişken, verinin tutulacağı yerdir. Değişkenler
bellekte belli bir yer kaplar ve onlar aracılığıyla belleğin
bu bölümlerine değerler verilebilir ve daha sonra
gerektiğinde okunabilir.
• Bilgisayarın belleği büyük eşit parçalar halinde
düşünülebilir. Bu büyük parçalar birim parçalardan
oluşmuştur ve ardışık bir şekilde homojen bir görünümde
dizilmişlerdir. Bu parçalara bellek adresleri denir.
Değişkenler ise bir veya birkaç birim parça yer işgal eden
çeşitli değerler alabilen özel bellek parçalarıdır.
3. • Değişkenler isimlendirilirken kelimeler arasında boşluk
karakteri kullanılmaz. Gerekli durumlarda _ ile kelimeler
birleştirilebilir.
• C#’da değişken isimleri büyük-küçük harf duyarlıdır. Yani sayi
ile SAYI aynı değişkeni göstermez.
• Değişken isimlerinde zorunluluk olmamasına karşın Türkçe
karakter kullanılmamalıdır.
• Değişken isimleri ?,!,:,% gibi özel karakterler içeremez.
• Değişken ismi olarak C# dilindeki özel kelimeler seçilemez.
• Değişken isimlerinde zorunlu olmamasına karşın küçük harf
kullanımı tercih edilir. Eğer değişken ismi iki ya da daha fazla
kelimeden oluşuyorsa ilk kelime hariç diğer kelimelerin ilk harfi
büyük yazılır. (sayi, maasMiktari, kitapSayisi v.b.)
4. C’ın değişken tipleri konusunda aslında hiçbir sınırlaması
yoktur çünkü bu dil programcının da değişken tipi
tanımlamasına izin verir. Ancak C’ın ve benzeri birçok dilin
içinde gelen dört tane temel değişken tipi vardır ve bunlar
yeterlidir:
int (integer) - tamsayı
float (floating point) - ondalıklı sayı
double – çift duyarlıklı ondalıklı sayı
char (character) – karakter türünde veri
5. Değişken Tipi Değişken Boyutu Değer Aralığı
unsigned short int 2 byte 0 – 65,535
short int 2 byte -32,768 – 32,767
unsigned long int 4 byte 0 – 4,294,967,295
long int 4 byte -2,147,483,648 – 2,147,483,647
int (16 bit) 2 byte -32,768 – 32,767
int (32 bit) 4 byte -2,147,483,648 – 2,147,483,647
unsigned int (16 bit) 2 byte 0 – 65,535
unsigned int (32 bit) 4 byte 0 – 4,294,967,295
char 1 byte 0 – 255 (256 karakter)
float 4 byte 1.2e-38 – 3.4e38
double 8 byte 2.2e-308 – 1.8e308
Adı CTS Karşılığı Açıklama
object System.Object Bütün veri türlerinin türediği kök
eleman
string System.String Unicode karakterlerinden oluşan
string
Referans tip listesi
Değer tip listesi
Değer Tipleri
6. 2.17.1Int Tip
Integer = Tamsayı
Tamsayıları içerir. Bellekte 2 Byte tutar.
5 , -19 , 25000 gibi
Minimum : -231 = -32768
Maksimum : 231-1 = 32767
7. • Gerçel sayıları içerirler.
• 2.18.1.float : Bellekte 4 Byte yer tutar. 3.4E-38 ile
3.4E+38 aralığında değer alır. Hassasiyet 7-8
basamaktır.
• 2.18.2.double : Bellekte 8 Byte ter tutar. 1.7E-308 ile
1.7E308 aralığında değer alır. Hassasiyet 15-16
basamaktır.
• 218.1 , -5.2 , 4.0
• Bilimsel gösterim biçimi 2.5*103 = 2.5E3
2.5*10-3 = 2.5E-3
8. Char : Karakter : Alfanumerik karakterleri içerir.
'5' , '*' , 'K'
2.20.Sabitler (CONST)
#include <stdio.h>
main()
{
const float PI=3.14; Tanımlama kısmı
float r, Alan;
scanf("%f",r);
alan := PI*r*r;
printf(('Alan = %f', alan);
}
9. Değeri programın çalışması boyunca değiştirilemez.
Kullanım biçimi
const tip Belirleyici=değeri;
const float PI=3.14;
Tip belirtilmez ise tamsayı kabul edilir.
10. Değişkenler bellekte kapladıkları alanla orantılı olarak
değer alabilirler. Yani değişken bellekte ne kadar çok yer
kaplıyorsa o kadar geniş bir değer aralığına sahiptir. Ancak
bu değer aralığını genişletmenin bir yöntemi daha var. O da
‘unsigned’ yani ‘işaretsiz’ tanımlaması. Eğer
tanımlayacağımız değişkenin negatif değer alma ihtimali
yoksa; örneğin yaş, boy, nüfus, yakıt durumu, yüzde gibi
veriler kullanılacaksa, bu durumda ‘unsigned’ tanımlanması
tercih edilebilir. Bir değişkeni ‘unsigned’ tanımladığımız
zaman değişkenin tüm bitlerini değer aralığı için
kullanabiliriz. Aksi taktirde değişkenin en soldaki biti ‘negatif
- pozitif’ durumunu kontrol etmek için kullanılır.
11. Programcı ne tür bir program yazıyor olursa olsun, programın
tasarlanması aşamasında en çok dikkat etmesi gereken faktörlerden
biri değişken tanımlamalarıdır. Değişkenin tipinin ve isminin yanlış
seçilmesi o an için bir problem teşkil etmeyebilir ancak aradan belli bir
zaman geçtikten sonra çok büyük sorunlara neden olabilir. Öyle ki
kesirli işlemler yapılacağı halde birtakım değişkenler tamsayı
belirlenmişse ve test aşamasında şansa kesirli sonuçlar vermeyen
değerler girildiğinde o an için program düzgün çalışıyormuş gibi
gözükebilir. Ayrıca değişkenlere anlamsız isimler verildiğinde yine o an
için bir sorun çıkmasa da programcının üç beş ay sonra yeniden aynı
programla uğraşmaya başladığında hangi değişkenin ne amaçla
kullanıldığını bulabilmek için programı başından sonuna adım adım
takip etmesi gerekebilir. Büyük bir projede karmaşa yüzünden adım
adım takip de mümkün olmayabilir. Bu tür durumlarla karşılaşmamak
için değişkenlere her zaman anlamlı isimler vermek daha doğrudur. O
anda ‘x yolu’ diye aklınızdan geçen bir şey varsa o değişkene ‘x’ adını
vermek yerine ‘yol’ demek sonrası için daha iyi olacaktır.
12. C dilinde değişkenlere isimler verirken
harflerin büyük veya küçük olmasıyla ilgili bir
sınırlandırma getirilmemiştir. Bunun yanısıra
C’ın değişkenlerle ilgili bir özelliği aynı
isimde iki değişken olamamasıdır. Ancak
aynı değişken isminde harflerin bir veya
birkaçı büyük/küçük farklılığı gösteriyorsa bu
durumda aynı isimde iki değişken olabilir.
13. Değişken isimlerinin mümkün olduğunca anlamlı olması
gerektiğinden bahsetmiştik. Bir arabanın hızının tutulacağı
değişkenin ismi en basit mantıkla ‘araba hızı’ olabilir. Ama
ne yazık ki bu tanımlama hatalıdır.
Birden fazla kelimeden oluşan değişkenlerin
isimlendirmesiyle ilgili birkaç genel yöntem mevcuttur.
Bunlardan en kullanışlı iki tanesi şunlardır:
1)araba_hizi,sol_ust_kose_koordinati
2) arabaHizi, solUstKoseKoordinati
14. Aynı tipteki değişkenleri alt alta satır satır tanımlamak yerine tek satırda
tanımlama olanağı yine C++’ın bize sağladığı kolaylıklardan biri.
int x;
int y;
int z;
float px;
float py;
double sinT;
double cosT;
char quoteChar;
char tabChar;
int zoom;
int pers;
15. unsigned long int’, ‘unsigned short int’ gibi çok uzun
değişken tipi tanımlamaları kullanmak mümkün. Bunları
#define komutu ile daha kısa cümlecikler halinde ifade
etmemiz mümkün. Unutulmaması gereken birşey var ki o
da #define’ın bir C programlama dili komutu değil bir
derleyici komutu olmasıdır. Ayrıca # define sadece
değişken tipleri değil her türlü tanımlama için kullanılabilir.
Bir C++ komutu olan ‘typedef’ ise bize #define
kullanmadan tip tanımlamamızı sağlıyor. Komutun açılımı
“Type Define” yani “Tip Tanımı”. Kullanım biçimi ise
#define’a oldukça benziyor.
16. Ne zaman ‘short’ kullanmamız, ne zaman ‘long’
kullanmamız gerektiği aslında oldukça basit. Ne zaman
kullandığımız değişkenin değeri tipi için çok büyüktür, bu
durumda daha büyük bir değişken tipi kullanmamız gerekir.
‘short int’ yetmiyorsa ‘long int’, ‘float’ yetmiyorsa ‘double’
kullanmamız gerekir. Eğer değişkenin değeri tipi için çok
çok değil de biraz büyük ise ve bu değişkenin negatif değer
almasına olanak yoksa, bu durumda değişkeni unsigned
(işaretsiz) tanımlamak bizim için yeterli olacaktır.
17. Bellek en temel birim olarak Bit’lerden yani ‘0’ ve ‘1’lerden
oluşuyordu ve 8 bitin birleşiminden 1 Byte elde ediyorduk.
‘char’ karakter tanımlamasının da 1 Byte’lık alana karşılık
geldiğini görmüştük. 1 Byte demek 0’dan 255’e kadar 256
farklı sayı değeri demektir. Bu durumda bilgisayara ‘harf’ ve
‘sembol’ kavramlarını kazandırmak adına her sayıya
karşılık gelen bir karakter tanımlamak gerekir. Bu
karakterlere ASCII karakterleri denir. ASCII’nin açılımı
“American Standard Code for Information Interchange” yani
“Bilgi Alışverişi için Amerikan Standart Kodu”dur.
18. Bazı karakterler C derleyicisinin kullanımı sırasında özel
işlevlere sahip oldukları için diğer karakterler gibi
tanımlanamazlar. Bunun için ‘’ karakterinden sonra
tanımlanırlar. Örneğin ‘Enter’ tuşu genellikle bir alt satıra
geçişi sağlar ancak printf() komutuyla ekrana yazılan bir
metin içerisinde alt satıra geçmek istediğimizde ‘Enter’
tuşunu kullanamayız. Çünkü bu durumda derleyici
ekranında alt satıra geçsek bile, boşluk ve satırlar derleyici
tarafından önemsenmediği için, metin satırları yan yana
çıkacaktır. Bunun için ‘’n’’ kullanırız.
19. 2
3
4
5
6
7
8
9
1
0
1
1
int sayi=5;
int x,y=8,z; //Aynı türdeki değişkenler aynı anda tanımlanabilir.
bool aktif = true;
float f = 5.4f; // Değerin sonuna eklediğimiz f harfi değişkenin
float türünde olduğunu gösterir.
double d = 3.2;
byte b = 230;
long l = 123456789;
short s = -312;
decimal dec = -5.26m; //Değerin sonundaki m harfi değişkenin
decimal türünde olduğunu gösterir.
char ch = 'c'; //Char tipinde ki değişkenler tek tırnak içerisine
yazılır.
String deger=”merhaba”
20. • b) Değişken Kapsamı
• Değişkenlerin programda kullanılabilmesi için programın başında bildirimlerinin yapılması gerekir. Bir
değişkenin kapsamı program içerisindeki erişilebilirliğidir. Değişken program içerisinde yerel yada genel
olarak tanımlanabilir.
• Yerel Değişkenler: fonksiyon tanımlandığı zaman, fonksiyon tarafından ayrılan bellek alanıdır. Bu
değişkenler sadece tanımlandığı fonksiyon içerisinde anlamlıdır ve diğer fonksiyonlar tarafından
kullanılamaz. Derleyici yerel değişkeni yalnızca tanımlandığı fonksiyonun bir parçası olarak gördüğü için,
farklı fonksiyonlarda aynı isme sahip yerel değişkenler tanımlanabilir.
• Genel Değişkenler: Derleyici tarafından ayrılan bellek alanları olup, bütün fonksiyonlar tarafından
kullanılabilir.
• Örnek
• #include <stdio.h>
• int sayi;//Genel değişken
• int main()
{
• int sayi_mod_2;//Yerel değişken
int sayi_mod_4;// Yerel değişken
• sayi=1000;
sayi_mod_2 = sayi >> 1;
sayi_mod_4= sayi >>2;
printf("mod_2 = %dnr mod_4 = %d",sayi_mod_2,sayi_mod_4);
• return 0;
}
21. ÖRNEKLER
1-) 7 tam sayısını tutan bir değişken tanımlayın.
2
3
4
5
6
7
8
9
1
0
1
1
int sayi= 7;
veya
int sayi;
sayi = 7;
Console.Readkey();
22. 2-) Abdulkadir yazısını tutan bir değişken tanımlayın.
2
3
4
5
6
7
8
9
1
0
1
1
string x;
x = "Abdulkadir";
Console.Readkey();
23. 3-) 2 tane meyve tanımlayarak değer veriniz.Toplam Meyve sayısını bulunuz.
2
3
4
5
6
7
8
9
1
0
1
1
int armut,elma; // int kullanarak 2 meyve tanımladık.
int toplam_meyve;
armut = 11;
elma = 5;
toplam_meyve = armut + elma;
Console.Writeline("Toplam Meyve Sayısı =" + toplam_meyve);
Console.Readkey();
25. 5-) Ekrana 2 Sayının Toplamını Yapan ve Yazdıran Programı Tasarlayınız.
2
3
4
5
6
7
8
9
1
0
1
1
int sayi1, sayi2;
Console.Write("1. sayıyı giriniz: ");
sayi1 = Convert.ToInt32(Console.ReadLine());
Console.Write("2. sayıyı giriniz: ");
sayi2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("{0} + {1} = {2}", sayi1, sayi2, sayi1 +sayi2");
Console.ReadKey();
26. 6-) Girilen sayıyı 5 ile çarpıp 2 ye bölen ve çıkan sayıyı ekrana yazdıran
programı tasarlayınız
2
3
4
5
6
7
8
9
1
0
1
1
String a;
Console.Write("Bir Sayı Giriniz");
a = Console.Readline();
int x,y;
x = Convert.Toint32(a);
k = (x * 5) / 2;
Console.Writeline(k);
Console.Readline();
27. 7-) Kullanıcıdan isim girmesini isteyen programı tasarlayınız
2
3
4
5
6
7
8
9
1
0
1
1
string isim;
Console.Write("İsminizi Giriniz:");
isim = Console.Readline();
Console.Writeline("Hoşgeldiniz:" + isim);
Console.Readkey();
28. 8-) x değişkeninin değerini ekrana yazan programı tasarlayınız.
2
3
4
5
6
7
8
9
1
0
1
1
int x = 8;
Console.WriteLine("x değişkeninin değeri = {0} dir " , x);
Console.ReadKey();
29. 2
3
4
5
6
7
8
9
1
0
1
1
int x = 8, y=5;
Console.WriteLine("x + y = " + x + y); // birleştirme işlemi
Console.WriteLine("x + y = " + (x + y)); // x ile y toplaranak sonuc icin birleştirme işlemi yapılır
Console.ReadKey();
9-) 2 değişkenin birleştirme işlemini yapan programı tasarlayınız
30. 10-) Kullanıcıdan Sırasıyla Ad,Soyad,Yaş,Meslek girmesini isteyen programı
tasarlayınız
2
3
4
5
6
7
8
9
1
0
1
1
String ad,soyad,yas,meslek;
Console.Writeline( Lütfen Sırasıyla Ad,Soyad,Yas,Meslek Giriniz…);
ad = Console.Readline();
Soyad = Console.Readline();
yas= Console.Readline();
Meslek = Console.Readline();
Console.Writeline("Ad: "+ ad);
Console.Writeline("Soyad: "+ soyad);
Console.Writeline("Yaş: "+ yas);
Console.Writeline("Meslek: "+ meslek);