Uğur USTAOĞLU

Uğur USTAOĞLU

Perşembe, 29 Mart 2012 17:42

Şans Oyunu

While döngüsünü kullanarak rastgele altı tane sayı üreten ufak bir uygulama...

Uygulama şu şekilde: Buttona bastığımda karşıma küçükten büyüğe doğru sıralanmış ve  1 ile 50 arasında rastgele 6 sayı çıkacak.

Kontroller: 6 adet label kontrolü ve 1 adet button kontrolü.

 private void button1_Click(object sender, EventArgs e) ==> button1'in Click Event'i
        {
            int[] Gelenler = new int[6]; ==> rastgele üreteceğim sayılar için 6 elemanlık bir dizi tanımlıyorum.
            Random Rastgele = new Random(); ==> rastgele metodumu çalıştırıyorum.
            int indeks = 0; ==>Kontrol amaçlı bir değişken.
            while (indeks<6) ==>indeks değerimi döngüyü kontrol etmek için kullanıyorum indeks değerim 6'dan küçük oldukça döngü çalışacak.
            {
                int Gelen_Sayi = Rastgele.Next(1, 50); ==>döngü içinde her seferinde Rastgele'nin Next Metodu ile 1,50 arasında sayı üretilecek.
                if (Array.IndexOf(Gelenler, Gelen_Sayi) == -1) ==>indexof metodunu dizide bulunan sayı ile üretilen sayıyı karşılaştırmak için kullanıyorum.
                {


                    Gelenler[indeks] = Gelen_Sayi; ==>Üretilen sayıyı Gelenler adlı dizinin indeksincisine atıyorum.
                    indeks++; ==>indeks değerimi her seferinde arttırıyorum.
                
                }

            }
            
            Array.Sort(Gelenler); ==> dizi içindeki elemanları küçükten büyüğe sıralamak için sort metodunu kullanıyorum.
            label1.Text = Gelenler[0].ToString(); ==>Gelenler dizisinin elemanlarını teker teker label kontrollerinde gösteriyorum.
            label2.Text = Gelenler[1].ToString();
            label3.Text = Gelenler[2].ToString();
            label4.Text = Gelenler[3].ToString();
            label5.Text = Gelenler[4].ToString();
            label6.Text = Gelenler[5].ToString();

            
           
        }

Çarşamba, 28 Mart 2012 18:37

Sanal Klavye

Windows üzerinde Basit bir sanal klavye uygulaması yapacağım. Uygulamam şu şekilde çalışacak: Çalıştır'a bastığımda form üzerine üzerinde A'dan Z'ye kadar harflerin bulunduğu buttonlar gelecek ve üzerlerine tıkladığımda ilgili harf bir textbox kontrolüne yazılacak. Klavyenin yanında da "Sil" ve "Boşluk" komutları olacak.

Gerekli Kontroller: Forma Bir groupBox(basılan buttonların sığacağı genişlikte ayarlıyorum),bir textbox, ve 2 tane de ilave olarak button kontrolü atıyorum. harf yazdıracak olan buttonları bir döngü ile oluşturacağım,diğer iki komutu ise kendim ekliyorum bu buttonları da groupbox1'in uygun bir köşesine yerleştiriyorum ve isimlerini yani properties kısmından name özelliklerini "BtnSil","Btn Boşluk" olarak kaydediyorum. ve Form1'in Load Event'ine gelerek şunları yazıyorum:

private void Form1_Load(object sender, EventArgs e) ==> Form1 Load Event'i
        {
           
            int Sol = 30; ==> Basacağım buttonların sol tarafa olan uzaklıklarını kontrol etmek için değişken tanımlıyorum.
            int Yukari = 40; ==> Basacağım buttonların yukarıya olan uzaklıklarını kontrol etmek için bir değişken tanımlıyorum.
            int Sayi = 0; ==>basılacak olan buttonların kaçarlı olarak yanyana geleceklerini belirlemek için bir değişken...
            for (char Karakter = 'A'; Karakter <='Z'; Karakter++) ==>for döngüsü açıyorum ve char tipinde karakter isimli değişkenimi A ile Z arasında tanıtıyorum. karakter++ oldukça char değeri de artacak ve Z'ye geldiğinde döngüden çıkılacak.
            {
                
                Button Btn = new Button(); ==>döngü işledikçe her seferinde Btn isimli yeni bir button oluşacak.
                Btn.Text = Karakter.ToString(); o ==> oluşan btn isimli button kontrolümün textine her seferinde değeri artan karakter değişkenimi veriyorum.
                Btn.Left = Sol; ==>button kontrolümün left özelliğine yukarıda tanımladığım sol değerini veiyorum.
                Btn.Top = Yukari;==>buttonun yukarı olan uzaklık değerini atadım.
                Btn.Width = 30; ==>oluşan buttonuma genişlik değeri veriyorum.
                Btn.Height = 30; ==>oluşan buttonuma yükseklik değeri veriyorum.
                Sayi++; ==> bu değişkeni her seferinde arttırıyorum aşağıda açıklayacağım
                Btn.Click += new EventHandler(Btn_Click); ==>burada basılan buttonlarımın komut verebilmesi için bir event tanımlıyorum bu event ise aşağıda Btn_Click isimli metodun içerisindedir. Burada şunu yaptım: Btn.Click += yazdım ve iki kez klavyemden tab tuşuna bastım ve program bana azır metod kalıbı verdi bu da aşağıdadır.
                if (Sayi % 11 == 0) ==> eğer sayı değişkenimin 11'e bölümünden kalan sıfırsa aşağıdaki işlemleri yap diyorum.
                {

                    Sol = 30; ==>Btn'nin sol değerini sabit tutuyorum çünkü amacım buttonları bir satırda 10 tane olacak şekilde yapmak istiyorum.
                    Yukari += 40; ==> Yukarı değerini arttırıyorum yani sol değeri eşit olarak bir alt satırda buttonlarım basılmaay devam edecek.

                }
                else ==> sayımın 11'e bölümünden kalan sıfır değilse aşağıdaki işlemleri yap.
                {
                    Sol+=30; ==> Btn'nin sol değerini arttırıyorum. yani her seferinde yeni button bi öncekinin yanına basılacak.
                    groupBox1.Controls.Add(Btn); ==> basılan buttonları groubBox1'e ekliyorum.
                }
                
            }
        }

void Btn_Click(object sender, EventArgs e) ==> bunu kendımız de yazabılırdık ama yukarıda söyledğim şekilde tab tuşuna iki kez basınca bu metod kendiliğinden oluşmuş oldu bize kalan içini doldurmak yani eventin içeriğini yazmak.
        {
            
            textBox1.Text += (sender as Button).Text; ==> button kontrolünün textini textBox1'e yaz diyorum.
        }

  private void BtnSil_Click(object sender, EventArgs e) BtnSil kontrolümün Click Event'ine geliyorum.
        {
            textBox1.Clear(); textBox1'i temizle diyorum ama bu komple siler son karakteri silmez.
        }

 private void BtnBoşluk_Click(object sender, EventArgs e) ==>BtnBoşluk kontrolümün Click Event'i
        {
            textBox1.Text += " "; ==> textBox1'e boşluk ekle diyorum.
        }

Salı, 27 Mart 2012 15:52

ORTALAMA HESAPLAMA

Yeni Açmış Olduğum "muhendislikegitimi.com/sayfam"da giriş için; C#'da yazdığım küçük bir "Ortalama Hesaplama" örneğini paylaşmak istedim. Bu imkanı sağladıkları için değerli site yöneticilerine ve Barış hocama saygılarımı ve teşekkürlerimi iletiyorum. Vakit vakit sayfam için geliştirdiğim Web ve Windows tabanlı uygulamalarımı sizlerle paylaşacağım.

Şimdi gayet basit ve klasik bir ortalama hesaplama uygulaması yazacağız. Bunun için;

1.Visual Studio 2010'da kendime bir Windows projesi açıyorum ve projeme Windows Forms Application ekleyip "OK" butonuna tıklıyorum.

2.Karşıma gelen Form1'e sol taraftaki ToolBox'ın içinde yer alan "Common Controls" Sekmesinden; 2 adet textBox, bir adet button

 ve bir de label atıyorum.

Şimdi uygulamamız şöyle çalışacak: Kullanıcı,textBoxlara sayısal değerler girecek ve sonra button1'e bastığında girilen ilk sayının %40'ı , girilen ikinci sayının da %60'ı alınmış ve toplanmış hali label1 kontrolünde görünecek.

button1 kontrolünün click event'ine gelerek aşağıdakileri yazıyoruz.

 

private void button1_Click(object sender, EventArgs e) ==> button1'in Click Event'i
        {
            try    ==> try blog'u ile olası hataları önlüyorum. (kullanıcı hiç bir şey girmeden ya da alfabetik karakter girerek button1'e basarsa catch blog'u çalışır)
            {
                double Sayi_1 = 0;               ==> Girilecek Değer Virgüllü Olabilir
                double Sayi_2 = 0;               ==>Girilecek Değer Virgüllü Olabilir
                double Sonuc = 0;               ==>Dolayısıyla Sonuç Da Virgüllü Olabilir.
                Sayi_1 = Convert.ToDouble(textBox1.Text);       ==>Textboxtan gelen veriyi double türüne çevirerek tanımladığım değişkene atıyorum.
                Sayi_2 = Convert.ToDouble(texBox2.Text);         ==>Textboxtan gelen veriyi double türüne çevirerek tanımladığım değişkene atıyorum.

                Sonuc = (Sayi_1 * 0.40) + (Sayi_2 * 0.60);        ==> Girilen ilk Sayının %40'ı,ikincisinin %60'ını alıyorum ve toplayarak Sonuç Değişkenine atıyorum.
                label1.Text = Sonuc.ToString();                        ==>Sonuc'un tuttuğu Değeri string tipine çevirerek label1 kontrolünde gösteriyorum.
            }
            catch           ==> Olası bir hata olduğunda Catch blog'u çalışacak ve aşağıdaki mesajı gösterecek.
            {

                MessageBox.Show("Lütfen Sayısal Değerler Giriniz");
            }
           
        }