C# Yapar Da Java Yapamaz Mı?
Daha önceki Değişken Adında Türkçe Karakter Kullanımı [C#] yazımda bahsettiğim C#’taki değişken, class, namespace isimlerinde Türkçe karakter kullanabiliyor olmak “C#’ta varsa Java’da neden olmasın?” sorusunu kendime sormama ve neticesinde bu yazının yazılmasına vesile oldu.
Netbeans 6.8 ve Eclipse Galileo ile aynı şeyleri denedim ikisinde de sonuç aynı : C#’ın yaptığını Java da yapıyor; proje, package, class ve değişken isimlerinde Türkçe karakter kullanmak istendiğinde “Abi sen burda Türkçe karakter kullanmaya çalışıyorsun ama bunu yapamazsın, mümkünse onları İngilizce karşılıkları ile değiştir” falan demiyor.
O yazıdaki kodun yaklaşık Java karşılığı aşağıda :
package türkçekarakter;
public class TürkçeKarakterİçerenSınıf {
public static void main(String[] args) {
String strTürkçeKarakterİçerenDeğişken = "Değişkenin değeri.";
System.out.println(strTürkçeKarakterİçerenDeğişken);
}
}
Şu görseller de Netbeans ve Eclipse’teki proje ve konsol alanları :




Bize programlama derslerinde öğretilen “değişken isminde Türkçe karakter olmaz” artık kural olmaktan çıkıp gelenek haline geliyor sanırım.
Değişken Adında Türkçe Karakter Kullanımı [C#]
Kodaman’da gördüm bugün merak ettim, Windows’u açıp baktım hakkatten de dedikleri gibi değişken isimlerinde Türkçe karakter kullanılabiliyormuş. Ordaki örneği aynen denedim. Ahanda kanıtı :
using System;
namespace TürkçeKarakterİçerenDeğişkenler
{
class Program
{
static void Main(string[] args)
{
String strTürkçeKarakterİçerenDeğişken = "Türkçe karakter içeren değişkenin değeri.";
Console.WriteLine(strTürkçeKarakterİçerenDeğişken);
Console.Read();
}
}
}
Çıktı da şöyle görünüyor :
Şimdi bunu yaparak dünyayı mı kurtardık?
Hayır.
Ama olsun, fazla bilgi göz çıkarmaz.
Taş Makas Kağıt [C#]
Çoğumuzun lise yıllarında oynadığı bir oyun : Taş Makas Kağıt. Eller başlangıçta yumruk yapılır, sonra oyuna katılanlar ellerini aynı anda taş, makas ya da kağıt şekline sokarlar. Sonra da oyunun başında verilen kurallar neticesinde çeşitli cezalar verirler birbirlerine.
Mesela biz lisede oynarken üstün olan kaybedenin bileğine vururdu, oyun sonunda herkesin bilekleri kızarık, ertesi gün de mor mor gezerdik
Kurallar basit;
- Taş makası kırar,
- Makas kağıdı keser,
- Kağıt taşı sarar.
Ben de bu oyunun bilgisayardaki versiyonunu C# kullanarak yapmaya çalıştım. Bir iki saatlik uğraşımın sonunda aşağıdakine benzer bir şey ortaya çıktı.

Gerçek hayattaki oyunda elinizle hangi şekli yapmak istiyorsanız, programda da o resmin üzerine tıklayacaksınız. Program da kalan iki seçenek arasında rastgele bir seçim yapacak. Yukarıdaki kurallara göre eğer siz kazanırsanız skor tabelasında sizin hanenize bir sayı, kaybederseniz programın hanesine bir sayı eklenecek.
Çalışması için bilgisyarınızda .net Framework 2.0 veya üzeri kurulu olmalıdır.
Çalıştırılabilir dosyaya buradan, kodlara da buradan erişebilirsiniz.
C# ve Php ile Sayısal Loto Sayı Üreticisi
Herkesin bildiği sayısal loto var bu yazımda.
Kazanmak için 1 – 49 arası sayılardan doğru olanları önceden tahmin etmek gerekiyor.
Çoğu insanın uğurlu sayıları vardır. Bazılarının bir tane, bazılarının da birkaç tane. Eğer bu sayılar 1 – 49 aralığındaysa kuponunda o sayılara yer verenlerin sayısı azımsanmayacak kadar çok. Ama kazanmak için uğurlu sayınızın olması yetmiyor.
Ayrıca kupon doldururken yazdığımız diğer sayılardan etkileniriz. Mesela 37 ve 38 yazan biri genelde aynı kolonda 39 yazmaz. Oysa 1 – 12 – 23 – 34 – 45 – 49 ile 1 – 2 – 3 – 4 – 5 – 6 gelme olasılıkları aynıdır.
Birden fazla doldurduğumuzda yazacak sayı bulmakta zorlanırız bazen.
Kuponları otomatik dolduran makineler bu sorunlara (bunlardan harhangi birini sorun olarak görenlere) bir derece yardımcı oluyorlar.
Biz de C# ile bu makineler gibi sayı üretebiliriz. Bu konuda .net’in Random sınıfı bizim işimizi görecektir.
Önce Random sınıfından bir nesne yaratmakla başlayalım :
Random rnd = new Random();
ile Rondom sınıfından rnd isimli bir nesne yaratıyoruz.
int birinciSayi = rnd.Next(1, 50);
ile de 1-50 arasında (1 dahil 50 dahil değil) rastgele bir sayı üretiyoruz.
Daha sonra
int ikinciSayi = rnd.Next(1, 50);
while (birinciSayi == ikinciSayi)
{
ikinciSayi = rnd.Next(1, 50);
}
satırları ile ikinci ratgele sayımızı üretip diğeri ile eşit mi diye kontrol ediyoruz. Eğer iki sayı eşitse while döngüsü yardımı ile, eşit olmayana kadar ikinci sayı yeniden üretiliyor.
Üçüncü sayı için de
int ucuncuSayi = rnd.Next(1, 50);
while (birinciSayi == ucuncuSayi || ikinciSayi == ucuncuSayi)
{
ucuncuSayi = rnd.Next(1, 50);
}
bu kodları kullanalım. Bu da aynı şekilde üretilen üçüncü sayı ile ilk iki sayıyı karşılaştırıyor. Herhangi birine eşitse yeniden üretiyor.
Benzer şekilde 6 farklı sayıyı da ürettikten sonra istersek direkt kullanabilir, istersek sıraladıktan sonra kullanabiliriz. (Trt çekilişten sonra hemen sıralayıp veriyor
)
Sıralamak için sayıları bir diziye atıp, diziyi sıralayalım. Bunu :
int[] dizi = new int[6]; dizi[0] = birinciSayi; dizi[1] = ikinciSayi; dizi[2] = ucuncuSayi; dizi[3] = dorduncuSayi; dizi[4] = besinciSayi; dizi[5] = altinciSayi;
şeklinde diziye atarak ve :
Array.Sort(dizi);
şeklinde de sıralayarak yapabiliriz. Sıralama yapmak için C’deki gibi kendi fonksiyonumuzu yazmak yerine Array sınıfının nimetlerinden yararlanmak daha kolay olur
Artık elimizde 1 – 49 arasında 6 farklı elemanı olan bir dizi var. Bundan sonrası size ait. Konsolda çalışıyorsanız :
for (int i = 0; i < 6; i++)
{
Console.WriteLine(dizi[i]);
}
şeklinde sayıları görebilirsiniz. Eğer windows formu kullanacaksak forma 1 tane buton ve 6 tane text box eklememiz gerekecek.
Text kutularının isimlerini değiştirmezsek eğer, butonun click eventine :
textBox1.Text = Convert.ToString(dizi[0]); textBox2.Text = Convert.ToString(dizi[1]); textBox3.Text = Convert.ToString(dizi[2]); textBox4.Text = Convert.ToString(dizi[3]); textBox5.Text = Convert.ToString(dizi[4]); textBox6.Text = Convert.ToString(dizi[5]);
bunları yazarsak, sayılarımız sıralı olarak her kutunun içinde bir tane olacak şekilde görünecektir.
Visual Studio 2008 ile derlediğim örnek uygulamayı burdan indirebilirsiniz.
Çalışması için bilgisayarınızda .net framework 2.0 veya üzeri kurulu olmalıdır.
Yukarıdaki işlerin aynısını Php ile de yapabiliriz. Sayıları Php kullanarak üretmek için şuraya göz atın.






![Validate my RSS feed [Valid RSS]](http://www.oguzozkeroglu.com/images/ico/valid-rss.png)