Bu seferki örneğimiz baya bir uzun ve farklı karmaşık bir senaryoya sahip. Bu aşamada nesne yönelimli programlama ve fonksiyon ya da metot gibi kodlar kullanılmadan yazılacaktır. Bazen aynı işlemi birden fazla adımda yapmak gerekebilir. Bu tarz işlemler için fonksiyonlar kullanılsa daha iyi olacaktı. Bize de uzuuuuun uzuun yazmak düştü. Birazda kopyala yapıştır 😉

C# Üçge Kenarlarını Tahmin Etme

Öğrencilere üçgen sorusu hazırlayan bir soru hazırlama programı oluşturulacaktır. Kenar uzunlukları tamamen rastgele üretilecektir. Üretilen kenar uzunlukları kesinlikle tamsayı olacaktır. Kenar uzunlukları dik üçgen şartını (a2 + b2 =c2) sağlamalıdır. Kenar uzunlukları 20 cm’i geçmeyecektir. Ayrıca program sürekli b kenarını sormayacak hangi kenarı soracağı rastgele olacaktır. Buton1’e bastığımızda hangi kenarı sormuşsa ve cevap doğru ise Soru No artırılacak (yani Label6) Puan da 10 puan artırılacaktır.

C# Dersleri
  • Ortadaki görsel aynı zamanda butonumuz. 😉
  • Butona her bastığımızda hem sorulan kenar değişiyor, hem de değerler değişiyor.
C# Üçgen Kenarı Tahmin
  • Doğru değerler girildiğinde hem soru değişiyor, hem puan arttırılıyor. vs. vs.
C# Kod Örnekleri
int[] Kenar = new int[3];
        int HangiKenar;
        private void frmUcgenYarismasi_Load(object sender, EventArgs e)
        {
            Random r = new Random();
            Kenar[0] = r.Next(1, 20);
            Kenar[1] = r.Next(1, 20);
            Kenar[2] = r.Next(1, 20);

            while (Kenar[0] * Kenar[0] != Kenar[1] * Kenar[1] + Kenar[2] * Kenar[2])
            {
                Kenar[0] = r.Next(1, 20);
                Kenar[1] = r.Next(1, 20);
                Kenar[2] = r.Next(1, 20);
            }

            HangiKenar = r.Next(1, 3);
            if (HangiKenar == 1)
            {
                lblSorulanKenar.Text = "A = ";
                lblB.Text = Kenar[1].ToString();
                lblC.Text = Kenar[0].ToString();
            }
            else if (HangiKenar == 2)
            {
                lblSorulanKenar.Text = "B = ";
                lblA.Text = Kenar[2].ToString();
                lblC.Text = Kenar[0].ToString();
            }
            else if (HangiKenar == 3)
            {
                lblSorulanKenar.Text = "C = ";
                lblB.Text = Kenar[1].ToString();
                lblA.Text = Kenar[2].ToString();
            }

        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (HangiKenar == 1) // A sorulduysa
            {
                if (txtCevap.Text == Kenar[2].ToString()) // Cevap doğruysa
                {
                    lblSoruNo.Text = Convert.ToString(Convert.ToInt16(lblSoruNo.Text) + 1);
                    lblPuan.Text = Convert.ToString(Convert.ToInt16(lblPuan.Text) + 10);

                    Random r = new Random();
                    Kenar[0] = r.Next(1, 20);
                    Kenar[1] = r.Next(1, 20);
                    Kenar[2] = r.Next(1, 20);

                    while (Kenar[0] * Kenar[0] != Kenar[1] * Kenar[1] + Kenar[2] * Kenar[2])
                    {
                        Kenar[0] = r.Next(1, 20);
                        Kenar[1] = r.Next(1, 20);
                        Kenar[2] = r.Next(1, 20);
                    }

                    HangiKenar = r.Next(1, 3);
                    if (HangiKenar == 1)
                    {
                        lblSorulanKenar.Text = "A = ";
                        lblA.Text = "?";
                        lblB.Text = Kenar[1].ToString();
                        lblC.Text = Kenar[0].ToString();
                    }
                    else if (HangiKenar == 2)
                    {
                        lblSorulanKenar.Text = "B = ";
                        lblB.Text = "?";
                        lblA.Text = Kenar[2].ToString();
                        lblC.Text = Kenar[0].ToString();
                    }
                    else if (HangiKenar == 3)
                    {
                        lblSorulanKenar.Text = "C = ";
                        lblC.Text = "?";
                        lblB.Text = Kenar[1].ToString();
                        lblA.Text = Kenar[2].ToString();
                    }
                }
                else
                {
                    MessageBox.Show("Yanlış değer girdiniz. Yeniden hesaplayınız.");
                }
            }
            else if (HangiKenar == 2)
            {
                if (txtCevap.Text == Kenar[1].ToString()) // Cevap doğruysa
                {
                    lblSoruNo.Text = Convert.ToString(Convert.ToInt16(lblSoruNo.Text) + 1);
                    lblPuan.Text = Convert.ToString(Convert.ToInt16(lblPuan.Text) + 10);

                    Random r = new Random();
                    Kenar[0] = r.Next(1, 20);
                    Kenar[1] = r.Next(1, 20);
                    Kenar[2] = r.Next(1, 20);

                    while (Kenar[0] * Kenar[0] != Kenar[1] * Kenar[1] + Kenar[2] * Kenar[2])
                    {
                        Kenar[0] = r.Next(1, 20);
                        Kenar[1] = r.Next(1, 20);
                        Kenar[2] = r.Next(1, 20);
                    }

                    HangiKenar = r.Next(1, 3);
                    if (HangiKenar == 1)
                    {
                        lblSorulanKenar.Text = "A = ";
                        lblA.Text = "?";
                        lblB.Text = Kenar[1].ToString();
                        lblC.Text = Kenar[0].ToString();
                    }
                    else if (HangiKenar == 2)
                    {
                        lblSorulanKenar.Text = "B = ";
                        lblB.Text = "?";
                        lblA.Text = Kenar[2].ToString();
                        lblC.Text = Kenar[0].ToString();
                    }
                    else if (HangiKenar == 3)
                    {
                        lblSorulanKenar.Text = "C = ";
                        lblC.Text = "?";
                        lblB.Text = Kenar[1].ToString();
                        lblA.Text = Kenar[2].ToString();
                    }

                }
                else
                {
                    MessageBox.Show("Yanlış değer girdiniz. Yeniden hesaplayınız.");
                }
            }
            else if (HangiKenar == 3)
            {
                if (txtCevap.Text == Kenar[0].ToString()) // Cevap doğruysa
                {
                    lblSoruNo.Text = Convert.ToString(Convert.ToInt16(lblSoruNo.Text) + 1);
                    lblPuan.Text = Convert.ToString(Convert.ToInt16(lblPuan.Text) + 10);

                    Random r = new Random();
                    Kenar[0] = r.Next(1, 20);
                    Kenar[1] = r.Next(1, 20);
                    Kenar[2] = r.Next(1, 20);

                    while (Kenar[0] * Kenar[0] != Kenar[1] * Kenar[1] + Kenar[2] * Kenar[2])
                    {
                        Kenar[0] = r.Next(1, 20);
                        Kenar[1] = r.Next(1, 20);
                        Kenar[2] = r.Next(1, 20);
                    }

                    HangiKenar = r.Next(1, 3);
                    if (HangiKenar == 1)
                    {
                        lblSorulanKenar.Text = "A = ";
                        lblA.Text = "?";
                        lblB.Text = Kenar[1].ToString();
                        lblC.Text = Kenar[0].ToString();
                    }
                    else if (HangiKenar == 2)
                    {
                        lblSorulanKenar.Text = "B = ";
                        lblB.Text = "?";
                        lblA.Text = Kenar[2].ToString();
                        lblC.Text = Kenar[0].ToString();
                    }
                    else if (HangiKenar == 3)
                    {
                        lblSorulanKenar.Text = "C = ";
                        lblC.Text = "?";
                        lblB.Text = Kenar[1].ToString();
                        lblA.Text = Kenar[2].ToString();
                    }
                }
                else
                {
                    MessageBox.Show("Yanlış değer girdiniz. Yeniden hesaplayınız.");
                }
            }
        }

Yorum Yazın

E-Posta Adresiniz görüntülenmeyecektir. Zorunlu alanlar *
Yan taraftaki HTML kodları kullanarak yorum yapabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>