C# (C Sharp) meraklılarındansanız kolay adımlarla örnekler üzerinden bu dili inceleyeceğiz...
C Sharp Neydi?
Ne kadar üzerine düşerseniz o kadar verimliliğiniz artar ve geliştireceğiniz alanın dalları da aynı seviye de artış gösterir. Yani C# emekti. Genellikle oyun yapanların gözdesi olmuştur. C Sharp ile yeni yeni tanışıyorsanız eğer kendisini hızlıca tanıyabileceğiniz buradaki yazımızı okuyabilirsiniz. Örnekleri isterseniz program indirmeden deneyebileceğiniz Replit sitesi üzerinden de yapabilirsiniz. Şimdiden keyifli çalışmalar…
ÖRNEK 1: ( Ekrana renkli metin yazdırma )
Console.BackgroundColor=ConsoleColor.White;
Console.ForegroundColor=ConsoleColor.Black;
Console.WriteLine("GÖKKUŞAĞI RENKLERİ");
Console.ForegroundColor=ConsoleColor.Yellow;
Console.WriteLine("SARI");
Console.ForegroundColor=ConsoleColor.Green;
Console.WriteLine("YEŞİL");
Console.ForegroundColor=ConsoleColor.Red;
Console.WriteLine("KIRMIZI");
Console.ForegroundColor=ConsoleColor.Aqua;
Console.WriteLine("MAVİ");
Console.ForegroundColor=ConsoleColor.Purple;
Console.WriteLine("MOR");
Console.ForegroundColor=ConsoleColor.Blue;
Console.WriteLine("LACİVERT");
Console.ForegroundColor=ConsoleColor.Orange;
Console.WriteLine("TURUNCU");
Console.ReadKey();
Bu örnek ile yazıları renklendirmek için “Foreground” arka planı değiştirmek için “Background” kullanılır. Yazıları alt alta yazdırmak için WriteLine’ı kullandık. Eğer yan yana yazdırmak isteseydik Write yazmamız yeterli olurdu.
ÖRNEK 2: ( Kullanıcıdan girilen bilgileri ekrana yazdırma )
string ad,soyad;
ad="Ali";
soyad="Can";
Console.WriteLine("Merhaba " +ad+" "+soyad+" Hoşgeldiniz");
Console.ReadKey();
Değişken atama konusunun en basit örneği ad-soyad alıp bunu metin içinde kullandık. Metinsel ifadeler ya da işlem/hesaplama yapmayacağınız sayıları string ile tanımlayabilirsiniz. Kelimeler +birleştirme sırasında düzen oluşturmak için “boşluklara” dikkat edilmelidir.
ÖRNEK 3: ( Kullanıcının girdiği sayısal değerlerle işlem yapma )
int adet,fiyat;
Console.Write("Almak istediğiniz ürün adedini giriniz:");
adet=Convert.ToInt32(Console.ReadLine());
Console.Write("Birim fiyatını giriniz:");
fiyat=Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Toplam ödemeniz: "+adet*fiyat+" TL'dir");
Console.ReadKey();
Sayısal değişkenler int ile tanımlanır. Kullanıcıdan sayısal bir değer alınacaksa -girdiyi dönüştürmek için Convert.ToInt32 kullanılır. Değerler alındıktan sonra işlemi kod içerisinde de yapabiliriz ya da toplam adında bir değişken tanımlayıp işlem bunun içerisinde de yapılabilir.
ÖRNEK 4: ( İf/Else ile kullanıcının reşit olma durumunu bulma )
string adSoyad;
int yas;
Console.Write("Adınızı ve soyadınızı giriniz:");
adSoyad=Console.ReadLine();
Console.Write("Yaşınızı giriniz:");
yas=Convert.ToInt32(Console.ReadLine());
if(yas>=18)
{
Console.WriteLine("Merhaba "+adSoyad+" yaşınız: "+yas+" Reşitsiniz");
}
else
{
Console.WriteLine("Merhaba "+adSoyad+" yaşınız: "+yas+" Reşit değilsiniz");
}
Console.ReadKey();
Kullanıcıdan istediğiniz girdiye eğer bir şart koşacaksanız o zaman if/else kodlarını yazarız.
ÖRNEK 5: ( Sayının tek mi? Çift mi? durumunu bulma )
int sayi;
Console.Write("Sayı giriniz:");
sayi=Convert.ToInt32(Console.ReadLine());
if(sayi%2==0)
{
Console.WriteLine("Sayı çifttir");
}
else
{
Console.WriteLine("Sayı tektir");
}
Console.ReadKey();
Sayının tek mi? Çift mi? olduğunu bulmak için ” % ” (yüzde) işareti ile belirtilir.
ÖRNEK 6:( Ad değerinin uzunluğunu bulma )
string ad;
Console.Write("adınızı giriniz;");
ad=Console.ReadLine();
if(ad.Length>10)
{
Console.WriteLine("uzun bir isme sahipsiniz");
}
else
{
Console.WriteLine("isminiz 10 karakterden az");
}
Console.ReadKey();
Kullanıcıdan istenilen ismin değer uzunluğunu ölçmek için Length kullandık. Girilen değeri sınırlandıracağınız kısmı ayarlamanız kalıyor sadece.
ÖRNEK 7: ( Çemberin çevresi/alanını bulma )
int r,cevre,alan;
Console.Write("Çemberin yarıçapını giriniz:");
r=Convert.ToInt32(Console.ReadLine());
cevre=r * 2 * 3;
alan=3 * r * r;
Console.WriteLine("Çemberin çevresi: "+cevre);
Console.WriteLine("Çemberin alanı: "+alan);
Console.ReadKey();
Alan/çevre hesaplaması olmayan örnekte ne biliyim:)… Matematiksel ifadeler kodlara da eklenince biraz sıkıcı gibi gelebilir. Ama bu arkadaş yeri geldiğinde projenin hayat kurtaran elemanı olabiliyor. Bu sadece küçük örneklerden. Yöneleceğiniz alanla da ilişkilendirirseniz yazdığınız kodları daha hızlı bir gelişiminiz olabilir.
ÖRNEK 8: ( SAYININ POZİTİF/NEGATİF OLMASINI BULMA )
int sayi;
Console.Write("sayı giriniz:");
sayi=Convert.ToInt32(Console.ReadLine());
if(sayi>=0)
{
Console.WriteLine("Sayı POZİTİF");
}
else
{
Console.WriteLine("Sayı NEGATİF");
Console.ReadKey();
Girilen sayının pozitif/negatif durumunu öğrenmek için 0 ile çalışırız. Çünkü ikisini birbirinden ayırdığını ondan küçük veya büyük olma durumuyla öğreniyoruz.
ÖRNEK 9: ( Kullanıcı giriş-şifre koşulu oluşturma )
string ad,sifre;
Console.Write("Kullanıcı adını giriniz:");
ad=Console.ReadLine();
Console.Write("Şifre giriniz:");
sifre=Console.ReadLine();
if(ad=="admin" && sifre=="12345")
{
Console.WriteLine("Giriş başarılı");
}
else
{
Console.WriteLine("Kullanıcı adını veya şifreyi kontrol ediniz");
}
Console.ReadKey();
Bu örnekte, kullanıcı bizim verdiğimiz koşula uygun değerler veriyor mu? sorusunu nasıl yapacağımızı kodluyoruz. Ad ve şifre arasında kullanılan ” & ” işaret ” ve ” anlamına gelmektedir. Eğer sadece kullanıcıdan ad veya şifreden biri doğru olursa başarılı giriş yazsın deseydik o zaman ve yerine ” || ” ” veya ” işaretini kullanırdık.
ÖRNEK 10: ( Sayıları ritmik arttırma )
for(int adim=2; adim<=100; adim=adim+2)
{
Console.WriteLine(adim);
}
Console.ReadKey();
Döngülerin ipini çeken for döngüsü ile ikişerli arttırarak 100’e kadar ekrana nasıl yazdıracağımızı kodladık. Eğer 3’erli arttırarak bunu yapmak isteseydik; 2 yazan yerleri değiştirmemiz yeterli olacaktır.
ÖRNEK 11: (Girilen sayılardan en büyük/küçük olanını bulma)
int buyuk = 0, kucuk = 0, sayi = 0;
for (int i = 1; i <= 5; i++)
{
Console.Write((i) + ".sayıyı giriniz:");
sayi = Convert.ToInt32(Console.ReadLine());
if (i == 1)
{
buyuk = sayi;
kucuk = sayi;
}
if (kucuk>sayi)
{
kucuk = sayi;
}
if (buyuk<sayi)
{
buyuk = sayi;
}
}
Console.WriteLine("en büyük sayi:"+buyuk);
Console.WriteLine("en küçük sayi:" + kucuk);
Console.ReadKey();
Kullanıcıdan istenilen 5 adet sayıdan en büyük/küçük olanını bulmak için girilen sayıları kendi sayılarıyla <> işaretlerini kullanarak bakılır ve sonuç ekrana yazdırılır.
ÖRNEK 12: ( Sayının katını bulma )
int sayi;
Console.Write("sayı giriniz:");
sayi=Convert.ToInt32(Console.ReadLine());
if(sayi%7==0)
{
Console.WriteLine("sayı yedinin katıdır");
}
else
{
Console.WriteLine("sayı yedinin katı değildir");
}
Console.ReadKey();
Sayı eğer 7’ye tam bölünüyorsa 7’nin katıdır. Bunu durumu bulmak için de % işaretinde yardım alırız. Bu ve benzeri işlemlerin diğer adı da Mod İşlemi‘dir.
ÖRNEK 13: ( Sayıların ortalamasını bulma )
int s = 0;
for (int i = 1; i <=5; i++)
{
Console.WriteLine(i+".sayı giriniz:");
int sayi = Convert.ToInt32(Console.ReadLine());
s+= sayi;
}
Console.WriteLine("toplam:"+s);
Console.WriteLine("ortalaması:" + s/5);
Kullanıcıdan 5 adet sayı girmesini for döngüsü ile istedik. Döngünün içerisinde bulunan s+ girilen sayıları toplamaktadır. Bu sayede ortalama işleminde s/5 diyerek sonucu ekrana yazdırır.
ÖRNEK 14: ( Ekrana otomatik ilerleyen yazı yazdırma )
for (int a = 0; a < 100; a++)
{
Console.SetCursorPosition(a, 15);
Console.Write(" TEKNOTOWER ");
System.Threading.Thread.Sleep(100);
}
Console.ReadKey();
Burada SetCursorPosition‘ da sütun (a) ve satır(15) olarak belirledikten sonra metnin yerini ayarlıyoruz. Metin içeriğini yazdıktan sonra ne kadar hızda gideceğini belirliyoruz Sleep(100). Böylelikle ekrana ileriye doğru kayan bir yazı çıkıyor karşımıza.
ÖRNEK 15: ( Random ile sayıların toplamını bulma )
Random sayi;
sayi=new Random();
int toplam=0;
int bts=sayi.Next(0,100);
for(int a=1; a<=10; a++)
{
bts=sayi.Next(0,100);
Console.WriteLine(bts);
toplam=toplam+bts;
}
Console.WriteLine("Toplam:"+toplam);
Console.ReadKey();
Random (Rastgele) sayı üreticisi oluşturup adını bts yani bilgisayarın tuttuğu sayı adını verdik. Rastgele sayılar 0 ile 100 arasında olup 10 adet sayı üretmesini istedik. Her tuttuğu sayıyı bir yerde tutup, toplaması içinde toplam değişkenini, işlem yapacağı için =0; değerini atadık.
ÖRNEK 16: ( Sayı tahmini yapma )
Random sayiUret;
sayiUret = new Random();
int bts = sayiUret.Next(1,100);
{
bts = sayiUret.Next(1,100);
}
Console.Write("Tahmininizi giriniz:");
int tahmin = Convert.ToInt32(Console.ReadLine());
if (tahmin==bts)
{
Console.WriteLine("DOĞRU TAHMİN");
}
else
{
Console.WriteLine("MAALESEF OLMADI");
}
Random üretilen sayıyı tahmin etmek için kullanıcıdan sayı istiyoruz ve tahmini ile bilgisayarın tuttuğu sayı eşit mi diye bakıyoruz. Bunu biraz daha ileri taşımak istersek else kısmının içerisine tekrardan if/else açıp daha büyük-küçük değer giriniz şeklinde yönlendirmeler de yapabiliriz.
ÖRNEK 17: ( Mevsim bulma )
Console.WriteLine("KAÇINCI AYDAYIZ:");
int ay = Convert.ToInt32(Console.ReadLine());
switch(ay)
{
case 12:
case 1:
case 2:
Console.WriteLine("kış mevsimi");
break;
case 3:
case 4:
case 5:
Console.WriteLine("ilkbahar mevsimi");
break;
case 6:
case 7:
case 8:
Console.WriteLine("yaz mevsimi");
break;
case 9:
case 10:
case 11:
Console.WriteLine("sonbahar mevsimi");
break;
}
Switch/Case ile ayları 4′ bölüp break yazarak her bir mevsim kendi içinde kümelenmiş olur. Bu sayede kullanıcının girdiği sayı hangisine denk gelirse oradaki metin ekranda görülür.
ÖRNEK 18: ( Kullanıcının yaşını ve gününü bulma )
DateTime zaman;
zaman = new DateTime();
zaman = DateTime.Now;
Console.WriteLine("Bu günün tarihi:"+zaman.ToString());
Console.Write("Doğum tarihinizi giriniz:");
DateTime dogumtarihi;
dogumtarihi = Convert.ToDateTime(Console.ReadLine());
TimeSpan gün = zaman - dogumtarihi;
double toplamgün = gün.Days;
Console.WriteLine(toplamgün + " Günlüksünüz");
int yas = zaman.Year - dogumtarihi.Year;
Console.WriteLine(yas+" yaşındasınız");
Console.ReadKey();
Zamanla alakalı kodlar için DateTime kullanılır. Zaman olarak adlandırılan değişken bugünü temsil ediyor. ToString ile biçimlendirdikten sonra kullanıcının doğum tarihini de tarih versiyonuna uygun bir şekilde ToDateTime ile biçimlendiriyoruz. Bu iki tarihle işlem yapmaya geçmeden önce TimeSpan ile iki farklı tarih olduğunu belirtiyoruz. İşlemin sonucundan sadece gün kısmını istediğimiz için Days kullandık ve ekrana kullanıcının kaç günlük olduğu yazılır. int yas olarak belirtilen kısımda ise bu sefer tarihte sadece yıl kısmını kullanacağımız için Year yazdık. İşlemin sonucunda kullanıcının yaşı çıkmış olur.
ÖRNEK 19: ( DateTime Çeşitleri )
DateTime tarih = DateTime.Now;
string format = "MM/dd/yyyy HH:mm";
Console.WriteLine(tarih.ToString(format));
Console.ReadKey();
DateTime ile ilgili çeşitleri farklılık gösteriyor. Çünkü kullanıcıya göstereceğiniz tarih/saat kısımları farklılık gösterebilir. Örneğin;
MM/dd/yyyy HH:mm | 11/14/2021 06:30 |
dddd, dd MMMM yyyy | Pazar,14 Kasım 2021 |
MMMM dd | Kasım 14 |
HH:mm:ss | 06:30:34 |
yyyy MMMM | 2021 Kasım |
kullanmak istediğiniz DateTime şeklini format=’dan sonra ekleyebilirsiniz. Daha detaylı şekillerine bakmak isterseniz inceleyebilirsiniz.
ÖRNEK 20: ( X nerde? )
Random rastgele = new Random();
int sutun = rastgele.Next(50);
int satir = rastgele.Next(30);
Console.SetCursorPosition(sutun,satir);
Console.Write("X");
int kulsatir,kulsutun;
for (int hak = 1; hak<=3; hak++)
{
Console.ForegroundColor = ConsoleColor.White;
Console.SetCursorPosition(0,0);
Console.Write("Satır tahmininizi giriniz: ");
kulsatir = Convert.ToInt32(Console.ReadLine());
Console.Write("Sütun tahmininizi giriniz: ");
kulsutun = Convert.ToInt32(Console.ReadLine());
Console.SetCursorPosition(kulsatir, kulsutun);
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("!");
if (sutun==kulsutun && satir==kulsatir)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.SetCursorPosition(57,15);
Console.Write("Bravooo! ");
break;
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.SetCursorPosition(57, 15);
if (hak==1)
{
Console.Write("Bir daha dene ");
}
else if(hak==2)
{
Console.Write("Tekrar dene ");
}
else
{
Console.Write("3 hakkın da bitti...");
}
}
}
Mini oyun tarzında olan X nerde programında Random ile 50,30 sütun, satır aralığında rastgele bir yerde X’i yerleştirmesini istiyoruz. Ekranda görünen X’in yerini öğrenmek için kullanıcıdan kulsatir/kulsutun değişkenleriyle değer istiyoruz.
Bunun için kendisine 3 hak veriyoruz. Bildiğinde ise Bravooo! diyerek oyunu sonlandırıyoruz. Bunu biraz daha detaylandırmak isterseniz kullanıcıya fazla hak vererek. Girdiği değere karşılık daha büyük/daha küçük bir değer giriniz diyerek yönlendirme de yapabilirsiniz. C Sharp ‘da bundan sonrası sizin hayal gücünüze kalmış. Keyifli çalışmalar…
Yeni haber ve gelişmelerden geri kalmayın!