noisiv 1
noisiv
Manwe Work 1
Manwe Work
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Cannn6161 1
Cannn6161
onur akbaş 1
onur akbaş
PrimeAC 1
PrimeAC
Mt2Hizmet 1
Mt2Hizmet
romegames 1
romegames
Fethi Polat 1
Fethi Polat
xranzei 1
xranzei
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Bilişim Teknolojileri | Programlama Temelleri | Basit Kodlar

  • Konuyu başlatan Konuyu başlatan Poseidon Pictures
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 3
  • Görüntüleme Görüntüleme 3K
Katılım
5 Kas 2012
Konular
994
Mesajlar
1,924
Reaksiyon Skoru
98
Altın Konu
0
TM Yaşı
13 Yıl 7 Ay 7 Gün
Başarım Puanı
145
MmoLira
-19
DevLira
0
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

BİLİŞİM TEKNOLOJİLERİ
BASİT KODLAR
482BK0122

1. DEĞİŞKENLER VE SABİTLER
1.1. Değişkenler
Değişkenler bir programlama dilinde verilerin depolanma alanlarını temsil eder.
Tanımlanan her değişkene bellek 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. Genel olarak değişkenler aşağıdaki
şelikde tanımlanır.
<veri tipi><değişken adı>;
Örneğin;
int i;
Yukarıdaki örnekte bir int(sayı) veri tipinde bir değişken tanımlanmıştır. Böylelikle
bellek bölgesinde bir veri saklamak ve ileride kullanmak üzere 4 byte`lık bir alan açmış
bulunuyoruz. Program içinde bu bellek bölgesine erişmek için değişken ismi olan i ifadesini
kullanıyoruz.
Örneğin;
int i; //i adında bellekte 4 bytelık bir bölge aç.;
i = 5; //i adının temsil ettiği bellek bölgesine 5 değerini yaz.;
&#61656; Bir değişkene değer atama işlemi tanımlarken yapılabilir.
&#61656; Bir değişkene değer atama işlemi yukardaki örnekte olduğu gibi program içinde
herhangi bir satırda yapılabilir.
&#61656; Bir veri tipi altında birden fazla isimle farklı değişkenler tanımlanabilir.
ARAŞTIRMA
ÖĞRENME FAALİYETİ&#8211;1
AMAÇ
3
Örnek 1.1-1:
bool dogrumu = false;
double yuzde = 98.32, ortalama = 35.32;
char karakter = 'A';
Bazı programlama dillerinde yerel bir değişken tanımlıyorsak bu değişkeni
kullanmadan önce bir değer ataması yapmak zorundayız.
static void Main(string[] args)
{
int sayi;
//sayi = 5;
Console.WriteLine(sayi);
Console.ReadKey();
}
Yukarıdaki kod blokunda sayi değişkenine değer atamadığınız için hata verecektir
(Use of unassigned local variable 'sayi'). Çünkü sayi değişkeni yerel bir değişkendir. Eğer
//sayi = 5; açıklama satırındaki // işaretlerini siler ve bu satırı koda dâhil ederseniz
hatanın ortadan kalktığını görürsünüz.
Tanımlanan yerel değişkenler sadece tanımlandıkları bloktan erişebilir. Yaşam
döngüleri sadece o blok olduğu için başka bir bloktan erişilemez.
Örnek 1.1-2:
namespace megepBilisim
{
class Program
{
static void Main(string[] args)
{
{ //Birinci blok
int a = 10;
} {//İkinci blok
int a = 20;
}
Console.WriteLine(a); // a değişkeni bu blokta tanımlanmadığı
için program hata verecektir.
}
}
}
Yukarıdaki örnekte birinci ve ikinci blokta tanımlanan "a" isimli değişkenler sadece
kendi bloklarında geçerlidir. Main bloğunda kullanılmaya çalışıldığı zaman program hata
verecektir.
1.2. Değişkenleri İsimlendirme Kuralları
&#61656; Değişkenlerin isimleri alfabede bulunan karakterlerle veya _(alt çizgi) ile
başlamalıdır. Ama ilk harf hariç diğer karakterler sayı olabilir.
&#61656; Bazı programlama dilleri büyük ve küçük harf duyarlıdır. Yani Sayi, sayi ve
SAYI hepsi ayrı değişken olarak algınalır.
&#61656; Değişken isimleri birden fazla kelime olduğu zaman; kelimelerin arasına boşluk
konmaz. Bu tür değişkenleri ya kelimeleri birleştirerek veya kelimeler arasına
_(alt çizgi) karakteri koyararak isimlendiririz.
&#61656; Değişkenlerin isimleri !, ?, {, ] gibi karakterler içeremez.
&#61656; Programlama dili için tanımlanmış anahtar kelimelerini de değişken isimleri
olarak kullanamayız.
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;
Pascal Notasyonunda kelime büyük harfle başlar. Camel Notasyonunda da olduğu gibi
diğer kelimelerde 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
uyarak kodlarınızı yazarsanız, kodlarınız daha anlaşılır bir hâle girer.
1.3. Veri Tipleri
.Net de iki çeşit veri tipi vardır:
&#61656; Değer tipleri (value type)
&#61656; Referans tipleri(reference type)
Değişkenler bellekte bulunan verilerdir. Bir değişkeni kullandığımız zaman o
değişkenin bellekte bulunduğu yerdeki bilgiyi kullanırız. Değer tipleri belleğin &#8216;stack`
bölgesinde saklanır ve veriyi direkt olarak bellek bölgesinden alırken referans tipleri bellekte
&#8216;heap` alanında saklanır. Yani referans tipleri içinde veri değil bellekteki &#8216;heap` alanının
adres bilgisini tutarlar.
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 iki farklı 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 &#8216;heap`
bölgesinde işaret ettikleri adres kopyalanır. Böylece eğer iki referans değişkeni birbirine
eşitledi isek ve daha sonra bunlardan birinde bulunan veriyi değiştirdi ise otomatik olarak
diğer referans değişkeninin değeri de değişir. Çünkü adresde bulunan veri değişince bu
adresi işaret eden iki değişkende yeni veri bilgisine ulaşır.
Toplam 15 veri tipi vardır bunlardan 13`ü değer tipindedir, 2`si ise referans tipindedir.
Değer tipleri
Adı CTS Karşılığı Açıklama Max ve Min aralık yada değeri
sbyte System.Byte 8 bit işaretli tam sayı -128 : 127
short System.Int16 16 bit işaretli tam
sayı -32.768 : 32.767
int System.Int32 32 bit işaretli tam
sayı -2.147.483.648 : 2.147.483.647
long System.Int64 64 bit işaretli tam
sayı
-9.223.372.036.854.775.808 : -
9.223.372.036.854.775.807
byte System.Byte 8 bit işaretsiz tam
sayı 0,177083333
ushort System.UInt16 16 bit işaretsiz tam
sayı 0 : 65.535
uint System.UInt32 32 bit işaretsiz tam
sayı 0 : 4.294.967.295
ulong System.UInt64 64 bit işaretsiz tam
sayı 0 : 18.446.744.073.709.551.615
float System.Single 32 bit tek kayan sayı +yada - 1,5*10-45 : + ya da - 3,4*1038
double Sytem.Double 64 bit çift kayan sayı +yada - 5*10-324 : + ya da - 1,7*10308
decimal System.Decimal 128 bit ondalıklı sayı +yada - 1,5*10-28 : + ya da - 7,9*1028
bool System.Boolean true ya da false
char System.Char Karakterleri temsil
eder 16 Unicode karakterleri
Tablo 1.1: Değer tip listesi
Referans tipleri
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
1.4. Sabitler
Program boyunca sabit kalacak veriler için kullanılan tanımlamalardır. Bir sabit
tanımlamak için const anahtar kelimesini kullanırız.
&#61656; Sabitler tanımlanırken ilk değer ataması yapılmak zorundadır.
&#61656; Program boyunca sabit değeri değiştirelemez.
Kullanımı: const <veri tipi><değişken adı>=değer;
Örnek 1.4-1:
const double PI = 3.14;
const double PI;
Yukarıdaki tanımlanan sabitlerden birincisi doğru ikincisi ise yanlış bir tanımlamadır.
Çünkü sabitler tanımlanırken ilk değer ataması yapılmak zorundadır.
Sabit kullanım hata mesajları :
&#61656; The left-hand side of an assignment must be a variable, property or
indexer: Tanımlanan sabit değişkenin değeri değiştirilmeye çalışdığı zaman
oluaşacak hata mesajıdır. Bu yüzden sabit değişken tanımlanırken atanan değer
program boyunca sabit kalmalıdır.
Örnek 1.4-2:
const double pi = 3.14159265;
pi = 2 * pi; //Burada pi değerini değiştirdiğiniz için hata mesajı
alırsınız.
&#61656; A const field requires a value to be provided: Tanımlanan sabit değişkene ilk
değer ataması yapılmadıysa oluşan hata mesajıdır. Dolayısıyla sabit değişken
tanımlanırken ilk değer ataması yapılmalıdır.
Örnek 1.4-3:
const int pi; // Burada pi sabitine değer atanmadığı için hata mesajı
alırsınız.
1.5. Atama İşlemi
= operatörü: Genel atama işlemlerinde kullanılır. Eşitliğin sağındaki değer eşitliğin
solundaki değişkene atanır.
Örnek 1.5-1:
int x, y=5; // 5 değerini y değişkenine atamak için = operatörü kullanılmıştır.
x = y + 2; // y değişken değeri ile 2 sayısı toplanarak x değişkenine atamak için =
operatörü kullanılmıştır.
+= operatörü: Eşitliğin sağındaki değerle eşitliğin solundaki değişken değerini
toplayıp tekrar eşitliğin solundaki değişkene atar.
Örnek 1.5-2:
int x=0, y=0, z=0;
x += 5;//x'e 5 ekle ve x'e eşitle 2.yol x = x + 5 şeklinde de yazılabilir.
y += 7;//y'ye 7 ekle ve y'ye eşitle 2.yol y = y + 7 şeklinde de yazılabilir.
z += x;//z'ye x'i ekle ve z'ye eşitle 2.yol z = z + x şeklinde de yazılabilir.
İşlem sonucu: x=5, y=7, z=5 olur.
Not: Bir bir artırma işlemi için x+=1 (veya x=x+1) yerine x++ işlemi kullanılabilir.
Örnek 1.5-3:
int x=0, y=0,toplam;
x++;//x'i bir artır
y++;//y'yi bir artır
toplam = x + y;//x ve y'yi toplayarak toplam değişkenine ata.
İşlem sonucu: x=1, y=1, toplam=2 olur.
&#61656; ++ değişkenden sonra kullanılırsa önce atama işlemi yapılır sonra artırma
yapılır.
Örnek 1.5-4:
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.
&#61656; ++ değişkenden önce kullanılırsa önce artırım yapılır daha sonra atama
işlemi yapılır.
Örnek 1.5-5:
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.
-= operatörü: Eşitliğin sağındaki değeri eşitliğin solundaki değişken değerinden
eksilterek tekrar eşitliğin solundaki değişkene atar.
Örnek 1.5-6:
int x=50, y=50, z=100;
x -= 5;//x'den 5'i çıkar ve x'e eşitle 2.yol x = x - 5 şeklinde de yazılabilir.
y -= 7;//y'den 7 yi çıkar ve y'ye eşitle 2.yol y = y - 7 şeklinde de yazılabilir.
z -= x;//z'den x'i çıkar ve z'ye eşitle 2.yol z = z - x şeklinde de yazılabilir.
İşlem sonucu: x=45 , y=43 , z=55 olur.
Not: Bir bir azaltma işlemi için x-=1 (veya x=x-1) yerine x-- işlemi kullanılabilir.
Örnek 1.5-7:
int x=20, y=10,fark;
x--;//x'i bir azalt
y--;//y'yi bir azalt
fark = x - y;//x ve y'yi çıkararak fark değişkenine ata.
İşlem sonucu: x=19 , y=9 , fark=10 olur.
&#61656; -- değişkenden sonra kullanılırsa önce atama işlemi yapılır, sonra azaltma
yapılır.
Örnek 1.5-8:
int x=10, y=10,fark;
x=y--;
fark = x - y;
önce x y`ye eşitlenir, daha sonra y azalttırılır. İşlem sonucu: x=10, y=9 , fark=1 olur.
&#61656; -- değişkenden önce kullanılırsa önce azaltma yapılır daha sonra atama
işlemi yapılır.
Örnek 1.5-9:
int x = 10, y = 10, fark;
x = --y;
fark = x - y;
önce y artırılır daha sonra x y`ye eşitlenir. İşlem sonucu : x=9 , y=9 , fark=0 olur.
*= operatörü: Eşitliğin sağındaki değerle eşitliğin solundaki değişken değeri çarpılıp
tekrar eşitliğin solundaki değişkene atar.
Örnek 1.5-10:
int x = 2, y = 3, z = 2;
x *= 2;//x ile 2'i çarp ve x'e eşitle 2.yol x = x * 2 şeklinde de yazılabilir.
y *= 2;//y ile 2 yi çarp ve y'ye eşitle 2.yol y = y * 2 şeklinde de yazılabilir.
z *= x;//z ile x'i çarp ve z'ye eşitle 2.yol z = z * x şeklinde de yazılabilir.
İşlem sonucu: x=4 , y=6 , z=8 olur.
/= operatörü: Eşitliğin solundaki değişken değerini eşitliğin sağındaki değere bölerek
tekrar eşitliğin solundaki değişkene atar.
Örnek 1.5-11:
int x = 4, y = 10, z = 64;
x /= 2;//x'i 2'ye böl ve x'e eşitle 2.yol x = x / 2 şeklinde de yazılabilir.
y /= 2;//y'yi 2'ye böl ve y'ye eşitle 2.yol y = y / 2 şeklinde de yazılabilir.
z /= x;//z'yi x'e böl ve z'ye eşitle 2.yol z = z / x şeklinde de yazılabilir.
İşlem sonucu: x=2, y=5, z=32 olur.
1.6. Çıkış İşlemleri
1.6.1. Bir Metin İfadesini Ekrana Yazdırma
Bir metin ifadesini ekrana yazdırmak için iki metot kullanılır:
1. Metot Console.Write(): Yazdırma işleminden sonra imleç yazdırılan ifadenin
yanında bekler.
Örnek 1.6-1:
static void Main(string[] args)
{
Console.Write("Merhaba Dünya");
Console.ReadKey();// Klavyeden bir tuşa basılana kadar bekle.
}
Çıktısı:
Resim 1.1: Örnek 1.6-1 ekran çıktısı
Dikkat ederseniz imleç yazının sonunda beklemektedir. Bir başka metin yazdırmaya
çalıştığımız zaman imlecin bulunduğu yerden devam eder.
Örnek 1.6-2:
static void Main(string[] args)
{
Console.Write("Merhaba Dünya");
Console.Write("Günaydın");
Console.ReadKey();
}
Çıktısı:
2. Metot Console.WriteLine():Yazdırma işleminden sonra imleç yazdırılan ifadenin
alt satırında bekler.
Örnek 1.6-3:
static void Main(string[] args)
{
Console.WriteLine("Merhaba Dünya");
Console.ReadKey();
}
Çıktısı:
Resim1.3: Örnek 1.6-3 ekran çıktısı
Örnek 1.6-4:
static void Main(string[] args)
{
Console.WriteLine("Merhaba Dünya");
Console.WriteLine("Günaydın");
Console.ReadKey();
}
Çıktısı:
Resim 1.4: Örnek 1.6-4 ekran çıktısı
Programı çalıştırdığımızda ikinci metin bir alt satıra yazılmıştır.
Çıkış parametreleri:
\n: Bir alt satıra geçmek için kullanılır.
\r: Paragraf başı yapmak için kullanılır.
Örnek 1.6-5:
static void Main(string[] args)
{
Console.WriteLine("\n\nMerhaba Dünya");
Console.ReadKey();
}
Çıktısı:
Resim 1.5: Örnek 1.6-5 ekran çıktısı
Ekran çıktısına baktığımızda 2 tane \n kullandığımız için yazımız 2 satır aşağıdan
başlamıştır.
1.6.2. İlk Değer Atanan Değişken Değerini Ekrana Yazdırma
Değişken tanımlamayı daha önce görmüştük. Şimdi değer atadığımız değişkeni ekrana
yazdırma işlemlerini göreceğiz.
Değişkene ilk değeri tanımlarken veya tanımladıktan sonra atayabiliriz.
int x = 5; // ilk değeri tanımlanırken atadık.
int y;
y = 3; // ilk derğeri tanımlandıktan sonra atadık.
Bu değişkenleri ekrana nasıl yazdırabileceğimize bakalım.
Örnek 1.6-6:
static void Main(string[] args)
{
int x = 5; // ilk değeri tanımlanırken atadık.
int y;
y = 3; // ilk derğeri tanımlandıktan sonra atadık.
Console.WriteLine(x);
Console.WriteLine(y);
Console.ReadKey();
}
Çıktısı:
Örnek 1.6-7:
static void Main(string[] args)
{
int x = 5; // ilk değeri tanımlanırken atadık.
int y;
y = 3; // ilk derğeri tanımlandıktan sonra atadık.
Console.WriteLine("x değişkeninin değeri = {0}", x); // x'in
değerini süslü parantez içinde belirtilen sıfır (o) yazan yere yaz.
Console.ReadKey();
}
Çıktısı:
Resim 1.7: Örnek 1.6-7 ekran çıktısı
{0} anlamı: Virgülden sonra tanımlanan ilk değişken değerini sıfırın yerine yazınız.
Eğer aynı anda birden fazla değişken değeri ekrana yazdırılmak isteniyorsa
{0},{1},{2}&#8230; şeklinde devam eder. Değişkenler virgülle ayrılarak tanımlanır.
Örnek 1.6-8:
static void Main(string[] args)
{
int x = 5; // ilk değeri tanımlanırken atadık.
int y;
y = 3; // ilk derğeri tanımlandıktan sonra atadık.
Console.WriteLine("x değişkeninin değeri = {0} y
değişkeninin değeri ={1}", x, y);
Console.ReadKey();
}
Çıktısı:
Resim 1.8: Örnek 1.6-8 ekran çıktısı
Değişken değerlerini ekrana birlikte yazdırmanın bir diğer yoluda + işaretini
kullanmaktır. + işareti ifadeleri birleştirme işlemini gerçekleştirir.
Örnek 1.6-9:
static void Main(string[] args)
{
int x = 5; // ilk değeri tanımlanırken atadık.
int y;
y = 3; // ilk derğeri tanımlandıktan sonra atadık.
Console.WriteLine("x değişkeninin değeri = " + x);
Console.ReadKey();
}
Çıktısı:
Resim 1.9: Örnek 1.6-9 ekran çıktısı
Görüldüğü üzere süslü parantez ile yapılan örnekle artı işareti kullanılarak yapılan
örneğin çıktıları aynıdır.
Örnek 1.6-10:
static void Main(string[] args)
{
int x = 5; // ilk değeri tanımlanırken atadık.
int y;
y = 3; // ilk derğeri tanımlandıktan sonra atadık.
Console.WriteLine("x değişkeninin değeri = " + x + "
y değişkeninin değeri =" + y);
Console.ReadKey();
}
Çıktısı:
Resim 1.10: Örnek 1.6-10 ekran çıktısı
Örnek 1.6-11:
static void Main(string[] args)
{
string ad = "Süleyman";//İlk değer tanımlanırken atandı.
string soyad;
soyad = "GÜRHAN"; //İlk değeri tanımladıktan sonra atadık.
Console.WriteLine(ad + " " + soyad);
Console.ReadKey();
}
Resim 1.11: Örnek 1.6-11 ekran çıktısı
Örnek 1.6-12:
static void Main(string[] args)
{
int x = 5; // ilk değeri tanımlanırken atadık.
int y;
y = 3; // ilk derğeri tanımlandıktan sonra atadık.
Console.WriteLine("x + y toplamı = " + x + y);
Console.ReadKey();
}
Çıktısı:
Resim 1.12: Örnek 1.6-12 ekran çıktısı
Yapmak istediğimiz işlem aslında x ve y değişken değerlerini toplayıp ekrana
yazdırmaktı. Fakat + işaretinin buradaki görevi ifadeleri birleştirmek olduğundan x ve y
değişken değerlerini yan yana yazarak yanlış sonuç üretmiştir.
Örnek 1.6-13:
static void Main(string[] args)
{
int x = 5; // ilk değeri tanımlanırken atadık.
int y;
y = 3; // ilk derğeri tanımlandıktan sonra atadık.
Console.WriteLine("x + y toplamı = " + (x + y)); // x + y
işlemini parantez içine alırsak + işareti toplama işlemini
gerçekleştirecektir.
Console.ReadKey();
}
Çıktısı:
Resim 1.13: Örnek 1.6-13 ekran çıktısı
Console.WriteLine("x + y toplamı = " + (x + y)); satırında x + y işlemini
parantez içine alınca doğru sonuç elde edilmiştir.
Kod satırımızı Console.WriteLine("x + y toplamı = {0}", x + y); şeklinde de
yazsaydık aynı sonucu elde ederdik.
1.6.3. Formatlı Çıkış İşlemleri
Tam sayı tipinde tanımlanmış değişkenler üzerinde uygulanabilecek format biçimleri
aşağıdaki tablola belirtilmiştir.
Karakter İsim Örnek Çıktı
C veya c Currency Console.Write("{0:C}", 2500); 2.500,00 TL
D veya d Decimal Console.Write("{0:D5}", 25);
Console.Write("{0:D10}", 25);
00025
0000000025
E veya e Scientific Console.Write("{0:E}", 250000); 2,500000E+005
F veya f Fixed-point Console.Write("{0:F0}", 25);
Console.Write("{0:F2}", 25);
Console.Write("{0:F5}", 25);
25
25,00
25,00000
N veya n Number Console.Write("{0:N}", 2500000); 2.500.000,00
X veya x Hexadecimal Console.Write("{0:X}", 250); FA
Tablo 1.3: 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 basamak değ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.
Örnek 1.6-14:
static void Main(string[] args)
{
Console.Write("{0:(###) ### ## ##}", 2123552154);
Console.ReadKey();
}
Çıktısı:
Resim 1.14: Örnek 1.6-14 ekran çıktısı
Tarih formatlama
Karakter İsim Örnek(DateTime.Now) için)
d Kısa Tarih 01.04.2005
D Uzun Tarih 01 nisan 2005 Cuma
t Kısa Saat 20:24
T Uzun Saat 20:24:27
f Tam Tarih ve Saat 01 Nisan 2005 Cuma 20:24
F Tam Tarih ve Uzun Saat 01 Nisan 2005 Cuma 20:24:27
g Varsayılan Tarih ve Saat 01.04.2005 20:24
G Varsayılan Tarih ve Uzun Saat 01.04.2005 20:24:27
M Gün ve Ay 01 Nisan
r RFC1123 Tarih Metni Fri, 01 Apr 2005 20:24:27 GMT
s Sortable Tarih Metni 2005-04-01 20:24:27
u Universal sortable, Yerel Zaman 2005-04-01 T20:24:27Z
U Universal sortable, GMT 01 Nisan 2005 Cuma 17:24:27
Ay ve Yıl Nisan 2005
Tablo 1.4: Tarih tipindeki değişkenlere uygulanacak format listesi
Özel tarih formatlama
Karakter İsmi Örnek Örnek
Çıktısı
dd Gün Console.Write("{0:dd}", DateTime.Now); 01
ddd Gün İsmi Console.Write("{0:ddd}", DateTime.Now); Cum
dddd Tam Gün İsmi Console.Write("{0:dddd}", DateTime.Now); Cuma
hh Saat Console.Write("{0:hh}", DateTime.Now); 08
HH Saat(24 Saat) Console.Write("{0:HH}", DateTime.Now); 20
mm Dakika 00-59 Console.Write("{0:mm}", DateTime.Now); 53
MM Ay 01-12 Console.Write("{0:MM}", DateTime.Now); 04
MMM Ay İsmi Console.Write("{0:MMM}", DateTime.Now); Nis
MMMM Tam Ay İsmi Console.Write("{0:MMMM}", DateTime.Now); Nisan
yy Yıl, Son İki
Karakter
Console.Write("{0:yy}", DateTime.Now); 05
yyyy Yıl Console.Write("{0:yyyy}", DateTime.Now); 2005
: Ayırıcı Console.Write("{0:hh:mm:ss}", DateTime.Now); 08:53:56
/ Ayırıcı Console.Write("{0:dd/MM/yyyy}",
DateTime.Now);
01/04/2005
Tablo 1.5: Özel tarih format listesi
1.7. Giriş İşlemleri
1.7.1. Klavyeden Değişkene Değer Atama
Console.Read(): Console sınıfının Read() metodu kullanıcının klavyeden giriş
yapmasını sağlar tek karakter okur ve geriye tam sayı tipinde bir değer döndürür. Bu değer
okunan karakterin &#8216;ascii` kod karşılığıdır.
Örnek 1.7-1:
static void Main(string[] args)
{
int x;
Console.Write("Bir karakter giriniz: ");
x = Console.Read();
Console.WriteLine("ASCII kod karşılığı : {0}", x);
}
Çıktısı:
Resim 1.15: Örnek 1.7-1 ekran çıktısı
Read() metoduyla klavyeden istediğiniz kadar değer okutabiliriz, ama geriye sadece
ilk karakterin ascii kod karşılığını döndürecektir. Burda dikkat etmemiz gereken bir başka
nokta ise Read() metodu geriye tam sayı bir değer döndürdüğü için atamayı tam sayı tipinde
bir değişkene yapmalıyız. Aksi hâlde hata mesajı alırız ( Cannot implicitly convert type
'int' to 'string') .
Console.ReadLine(): Console sınıfının ReadLine() metodu kullanıcının klavyeden bir
değer girmesini sağlar ve bu değeri metin(string) bir ifade olarak geri döndürür.
Örnek 1.7-2:
static void Main(string[] args)
{
string x;
Console.Write("Adınızı giriniz: ");
x = Console.ReadLine();
Console.WriteLine("Merhaba &#8216;{0}` ", x);
Console.ReadKey();
}
Çıktısı:
Resim 1.16: Örnek 1.7-2 ekran çıktısı
ReadLine() metodu ile geri döndürülen değer metin(string) tipindedir. Dolayısıyla
okunan değeri metin(string) tipinde bir değişkene atamalıyız. Eğer ki matematiksel bir işlem
yapılacaksa değeri sayısal ifadeye çevirmemiz gerekmetedir. Bu işlem için &#8216;Convert` sınıfı
veya veri türlerinin &#8216;Parse` özelliğinden faydalınır.
Örnek 1.7-3:
static void Main(string[] args)
{
string x, y;
Console.Write("1. Sayıyı Giriniz: ");
x = Console.ReadLine();
Console.Write("2. Sayıyı Giriniz: ");
y = Console.ReadLine();
Console.WriteLine("{0} + {1} = {2} ", x, y, (x+y));
Console.ReadKey();
}
Çıktısı:
Resim 1.17: Örnek 1.7-3 ekran çıktısı
Görüldüğü üzere string ifadeler üzerinde matematiksel işlemler yapamıyoruz.
Matematiksel işlem yapacaksak değişkenimizin tipini sayısal ifadeye çevirmeliyiz.
Örnek 1.7-4:
static void Main(string[] args)
{
string x, y;
Console.Write("1. Sayıyı Giriniz: ");
x = Console.ReadLine();
Console.Write("2. Sayıyı Giriniz: ");
y = Console.ReadLine();
Console.WriteLine("{0} + {1} = {2} ", x, y,
(Convert.ToInt16(x)+ Convert.ToInt16(y)));
Console.ReadKey();
}
Çıktısı:
Resim 1.18: Örnek 1.7-4 ekran çıktısı
(Convert.ToInt16(x) ve Convert.ToInt16(y) şeklinde tip dönüşümü yapılarak
string tipindeki değişken değerlerimizi tam sayı tipine dönüştürüyoruz. Böylelikle üzerinde
matematiksel işlemler yapabiliyoruz.
1.8. 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. Programımızın çalışması sırasında oluşabilecek hatalar
genellikle kullanıcı girişlerinden kaynaklanır. Bu yüzden kullanıcı girişlerini kontol altına
alarak çalışma zamanında oluşabilecek hataları en aza indirmek ise biz programcı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 1.8-1:
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.
Resim 1.19: Örnek 1.8-1 ekran çıktısı
Programda istenilen sayı yerine &#8216;string` bir ifade girdiğimiz zaman ekran çıktısı
aşağıdaki gibi olacaktır. &#8216;String` ifade &#8216;int` tipine çevrilmede zorlanılacağından program
duracaktır. Giriş dizesinin doğru olmadığına dair bir hata verecektir (Input string was not
in a corrent format.) .
Resim 1.20: Giriş dizesi doğru biçimde değil hata mesajı
Örnek 1.8-2:
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());
Console.WriteLine("{0} / {1} = {2}", x, y, x / y);
Console.ReadKey();
}
Programımızı çalıştıralım ve aşağıdaki gibi değerleri girelim.
Resim 1.21: Örnek 1.8-2 ekran çıktısı
Girilen sayılardan biri sıfır olduğu zaman programımız sıfıra bölme hatasıyla
karşılaşacağından dolayı duracaktır (Attempted to divide by zero) .
Resim 1.22: Sıfıra bölem hata mesajı
Yukardaki kodlarda da görüldüğü gibi program esnasında kullanıcılar tarafından
yapılan hatalı girişler programın hatayla karşılaşmasına ve durmasına sebep olmaktadır. Biz
bu hataları program içinde nasıl yakalarız ve kullanı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ında yani 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 temel System.Exception nesnesinden türetilmektedir.
İ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
kadoların yazıldığı bloktur. Finally bloğu genellikle bazı kaynakları serbest bırakmak için
kullanılır. Kullanılması isteğe bağlı bir bloktur. En sık kullanıldığı yerler açık olan veri
tabanı bağlantılarının program kırılsa da kırılmasa da kapatılması durumlarıdır.
Örnek 1.8-3:
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.
Resim 1.23: Örnek 1.8-3 ekran çıktısı
Fakat prgoramımıza aşağıdaki değerleri girdiğimiz zaman hatayla karşılaşılacak ve
programımız olduğu yerde durup catch{} blokuna atlayacak ve buradan çalışmaya devam
edecektir.
Dikkat ederseniz her iki durumda da finally bloku içine yazdığmız kodlar
çalıştırılmaktadır.
Örnek 1.8-4:
static void Main(string[] args)
{
byte x ;
try
{
Console.Write("0-255 Arasında Bir Sayıyı Giriniz: ");
x = Convert.ToByte(Console.ReadLine());
Console.WriteLine("Doğru Değer Girdiniz");
} catch (
Exception e)
{
Console.WriteLine("Yanlış Değer Girdiniz");
Console.WriteLine("Hata Oluştu : {0}", e);
} finally
{
Console.WriteLine("İyi Günler");
}
Console.ReadKey();
Eğer bizden istenildiği gibi 0-255 arası bir değer girersek programımız herhengi bir
hatayla karşılaşmayacağı için try bloku içindeki tüm kodlar icra edilip finally bloğuna atlar
ve çalışmasına ordan devam eder. Yukardaki ekran çıktısında görüldüğü gibi
Resim 1.26: Örnek 1.8-4 ekran çıktısı
Fakat istenilen değer dışında bir değer girdiğimiz zaman program hatayla
karşılaşacağından hatanın oluştuğu satırda program durdurulur ve catch blokuna atlanır ve
çalışmasına ordan devam eder. Yukardaki ekran çıktısında görüldüğü üzere hata x =
Convert.ToByte(Console.ReadLine()); satırında oluştuğundan bir sonraki satır icra
edilmeden catch blokuna atlanmış ve program buradan devam etmiştir.
1.9. 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. 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 dili derleyicisi 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");

RESİMLİ VE DAHA FAZLASI İÇİN
 
Konu İçin Teşekkürler.
 
Konu Anlatımı İçin Teşekkürler
 
Konu için teşekkürler
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst