C# Hakkında sorularım

emircanunlts

Megapat
Süper Moderatör
Katılım
7 Nisan 2019
Mesajlar
9.093
Makaleler
3
Çözümler
56
Merhabalar, altta vereceğim kodla ilgili birkaç sorum var. Daha öğrenciyim ve anlamadığım şeyler var. Bunu az önce yaptık.

"if ((i + j) % 2 == 0)" Kısmında neden iki adet "(( ))" parantez kullanıldı ?

"top += 50; left = 0;" Kısımları neden süslü parantezin "{ }" içine değil de kodların dışına yazılmış ?

Sorularım bu kadar, derste hoca direkt bu konuya geçti. O yüzden pek bir şey anlamadım. Pratiğe ihtiyacım var.


Alt tarafa kodların sonucunu ekledim :)



C#:
namespace RecapDemo1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            GenerateButtons();

        }

        private void GenerateButtons()
        {
            Button[,] buttons = new Button[8, 8]; // [] arraydır.
            int top = 0;
            int left = 0;
            for (int i = 0; i < buttons.GetUpperBound(0); i++)
            {
                for (int j = 0; j < buttons.GetUpperBound(1); j++)
                {
                    buttons[i, j] = new Button();
                    buttons[i, j].Width = 50;
                    buttons[i, j].Height = 50;
                    buttons[i, j].Left = left;
                    buttons[i, j].Top = top;
                    left += 50;
                    if ((i + j) % 2 == 0)
                    {
                        buttons[i, j].BackColor = Color.Black;
                    }
                    else
                    {
                        buttons[i, j].BackColor = Color.White;
                    }
                    this.Controls.Add(buttons[i, j]);
                }
                top += 50;
                left = 0;
            }
        }
    }
}
 

Dosya Ekleri

  • sonuç.png
    sonuç.png
    3,3 KB · Görüntüleme: 50
Çift parantezin amacı işlem onceligi önce i ve j topla 2ye göre mod al anlamında.

2. Sorun için bence 2 boyutlu dizilere daha çok çalışmalısın.
 
Çift parantezin amacı işlem onceligi önce i ve j topla 2ye göre mod al anlamında.

2. Sorun için bence 2 boyutlu dizilere daha çok çalışmalısın.

2 boyutlu diziler nedir ? Tekrar dinledim dersi, kodların diğer kodlardan ayrı yazılmasının sebebi kodu yenilemekmiş. Doğru mudur bu ?
 
Merhabalar, altta vereceğim kodla ilgili birkaç sorum var. Daha öğrenciyim ve anlamadığım şeyler var. Bunu az önce yaptık.

"if ((i + j) % 2 == 0)" Kısmında neden iki adet "(( ))" parantez kullanıldı ?

"top += 50; left = 0;" Kısımları neden süslü parantezin "{ }" içine değil de kodların dışına yazılmış ?

Sorularım bu kadar, derste hoca direkt bu konuya geçti. O yüzden pek bir şey anlamadım. Pratiğe ihtiyacım var.


Alt tarafa kodların sonucunu ekledim :)



C#:
namespace RecapDemo1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            GenerateButtons();

        }

        private void GenerateButtons()
        {
            Button[,] buttons = new Button[8, 8]; // [] arraydır.
            int top = 0;
            int left = 0;
            for (int i = 0; i < buttons.GetUpperBound(0); i++)
            {
                for (int j = 0; j < buttons.GetUpperBound(1); j++)
                {
                    buttons[i, j] = new Button();
                    buttons[i, j].Width = 50;
                    buttons[i, j].Height = 50;
                    buttons[i, j].Left = left;
                    buttons[i, j].Top = top;
                    left += 50;
                    if ((i + j) % 2 == 0)
                    {
                        buttons[i, j].BackColor = Color.Black;
                    }
                    else
                    {
                        buttons[i, j].BackColor = Color.White;
                    }
                    this.Controls.Add(buttons[i, j]);
                }
                top += 50;
                left = 0;
            }
        }
    }
}

İlk sorunuzun cevabı;
Eğer iki parantez yerine bir parantez kullanılır ise if (i + j % 2 == 0) şeklinde olacaktı ve i ile j değişkenleri iki ayrı sayı olduğu için ikiye bölebileceğini düşünemeyip hata verecikti. 2 parantez koymamızın nedeni % işaretinden önce 2 sayı değişkenini toplayıp böleceğimiz için parantez içinde öncelikli olarak toplayıp onları 1 değişkenmiş gibi gösteririz(kısaca işlem önceliği).

İkinci sorunuzun cevabı
Eğer top += 50; ve left = 0; değerleri 2. for döngüsünün içine yazılırsa 1. satır bitmeden direk top değerine +50 ekleyerek 2. satıra geçecekti ve sadece 1. sütunu boyamış olacaktı.

Umarım açıklayıcı olmuştur.
2 boyutlu diziler nedir ? Tekrar dinledim dersi, kodların diğer kodlardan ayrı yazılmasının sebebi kodu yenilemekmiş. Doğru mudur bu ?
Evet doğrudur. İlk satır bitince for döngüsünden çıkarak top değerine +50 ekliyor ve bir satır aşağı inmiş oluyor. Ve tüm işlem 8 satır olana kadar tekrar ediyor.
 
İlk sorunuzun cevabı;
Eğer iki parantez yerine bir parantez kullanılır ise if (i + j % 2 == 0) şeklinde olacaktı ve i ile j değişkenleri iki ayrı sayı olduğu için ikiye bölebileceğini düşünemeyip hata verecikti. 2 parantez koymamızın nedeni % işaretinden önce 2 sayı değişkenini toplayıp böleceğimiz için parantez içinde öncelikli olarak toplayıp onları 1 değişkenmiş gibi gösteririz(kısaca işlem önceliği).

İkinci sorunuzun cevabı
Eğer top += 50; ve left = 0; değerleri 2. for döngüsünün içine yazılırsa 1. satır bitmeden direk top değerine +50 ekleyerek 2. satıra geçecekti ve sadece 1. sütunu boyamış olacaktı.

Umarım açıklayıcı olmuştur.

Evet doğrudur. İlk sütun bitince for döngüsünden çıkarak top değerine +50 ekliyor ve bir satır aşağı inmiş oluyor. Ve tüm işlem 8 satır olana kadar tekrar ediyor.
Evet, biraz anladım. Birkaç kez daha baştan yazsam daha iyi anlarım.
 
1 Milyon Istihdam'dan bilginiz var mı? Oradan alıyorum dersi iş bulabilme şansım var mı?
Maalesef bir bilgim yok. Kendinizi GitHub gibi sitelerde insanların yazmış olduğu kodlara bakarak veya kendiniz yazarak kendinizi geliştirmeye çalışın ve kendinize bir CV oluşturun. codersrank.io sitesinden kendinize bir özgeçmiş oluşturup iş ilanlarına bakabilirsiniz.
 

Geri
Yukarı