C# for döngüsü etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
C# for döngüsü etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

7 Nisan 2013 Pazar

17 - For Döngüsü... Çarpım Tablosu...


Form tasarımı aşağıdaki gibi olacaktır...
C# çarpım tablosu yapmak


Program çalıştığında ise aşağıdaki gibi bir sonuç elde edilecektir...
C# çarpım tablosu yapmak...


Console uygulamaları bölümünde aynı örneğin daha detaylı açıklaması olduğu için burada açıklama yapmadık... Program kodları aşağıdaki gibidir...

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _47_For_Çarpım_Tablosu
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
             for (int i = 1; i <= 10; i++)   
            {
                string ekle = "";
                for (int k = 1; k <= 5; k++) 
                {
                    int a = (k * i);
                    string x = Convert.ToString(a);

                    if (x.Length == 1)
                        ekle += k + " * " + i + " = " + a + "         ";
                    // Burada sondaki boşlukları hizalamak için kullanıyoruz... Düzgün bir görüntü elde etmek için...
                    else if (i == 10)
                        ekle += k + " * " + i + " = " + a + "     ";

                    else if (x.Length == 2)
                        ekle +=k + " * " + i + " = " + a + "       ";  
                }
                listBox1.Items.Add(ekle);
                ekle = "";
            }

            // Aynı işlemi 6-10 arası sayılar için yapıyoruz... 
            for (int i = 1; i <= 10; i++)
            {
                string ekle = "";
                for (int k = 6; k <= 10; k++)
                {
                   int a = (k * i);
                    string x = Convert.ToString(a);

                    if (x.Length == 1)
                        ekle += k + " * " + i + " = " + a + "         ";

                    else if (i == 10)
                        ekle += k + " * " + i + " = " + a + "     ";

                    else if (x.Length == 2)
                        ekle +=k + " * " + i + " = " + a + "       ";  
                }
                listBox2.Items.Add(ekle);
                ekle = "";
                    }
            }
        }
    }

16 - For Döngüsü... Kelimeler ile Piramit Örneği...


Form tasarımı aşağıdaki gibi olacaktır...
C# kelimelerden piramit yapmak

Programda mesaj girildikten sonra ekrana gelecek olan sonuç ise aşağıdaki gibi olacaktır...

C# kelimelerden pramit yapmak


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _46_For_Kelimeler_ile_Piramit_Örneği
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string cumle = textBox1.Text; // string zaten dizi gibi davranabilen bir türdür... 

            string goster = "";
            string piramit = "*"; // Ben yıldız koydum... Siz isterseniz boş da bırakabilirsiniz... 

             for (int i = 0; i < cumle.Length; i++) //İlk döngümüz girilen kelimenin parçalarını almak için... 
            {
                goster += cumle[i]; // string özelliği sayesinde cumlemizi parçalayarak alıyoruz... 
                
                for (int k = 0; k < cumle.Length; k++) // 2. döngümüz yıldızları yerleştirebilmek için... 
                {
                    // Amacımız piramitin başı olacak ilk harfi tam ortaya yazdırıp yanlarına yıldız koyabilmek...
                    // Örneğin ***m*** gibi... Bunun için bütün kelime uzunluğundan 
                    // o anki parçası alınmış harf sayısını çıkartıp 2 ye bölüyoruz... Tam ortayı buluyoruz... 
                    if ((cumle.Length - goster.Length) / 2 == k) // Döngü orta sayıya ulaştığında elimizdeki goster isimli kelimeyi ekliyoruz... 
                    {
                        piramit += goster; // bunu ekranda göstereceğiz...
                        k += goster.Length; // kelime uzunluğumuz kadar 2. döngümüzün sayacını artrıyoruz ki fazladan yıldız eklemesin...
                    }
                    piramit += "*"; // Eğer kelime eklemiyorsak muhakkah yıldız ekliyoruz... 
                }

                 listBox1.Items.Add(piramit); // Ekranda gösteriyoruz... 
                piramit = "*"; // diğer saatır da yine piramiti sıfırlıyoruz ki bir önceki satır ile karışmasın... 
            }       
        }
    }
}

13 - For Döngüsü... Math.Pow Kullanımı...

Form tasarımı aşağıdaki gibidir...


Kare seçilirse aşağıdaki gibi olacaktır...

Küpü seçilirse aşağıdaki gibi olacaktır...

Radiobuttonlar seçim için kullanılan form elemanlarıdır... Bir form içerisinde radiobuttonlardan sadece bir tanesi seçili olabilir... Biri seçildiğinde diğeri pasif duruma geçer...

Program kodları aşağıdaki gibidir...
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _43_For_Math.Pow_Kullanımı
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Yapılan seçime göre -5 ile +5 arası sayıların karesini veya küpünü gösterecek olan program?

            // Math.Pow(): Bu fonksiyon bir sayının üstünü almak için kullanılır... 
            // Math.Pow(üssü alınacak sayı, kuvvet) şeklinde kullanılır...
         }

        private void radioButton1_Click(object sender, EventArgs e)
        {
            radioButton2.Checked = false; // diğer seçim false yapılıyor...
            radioButton1.Checked = true; // tıklanan true yapılıyor...
            
            if (radioButton1.Checked) // radibutton1.checkhed eğer seçili ise zaten true demektir ve şartın içine girebiliriz...
            { // Yukarıdaki iki satırdan dolayı bu şartı kullanmasakda olur ama garanti olsun...
                listBox1.Items.Clear();// Listbox ın içeriği temizlenmektedir...
                // Döngü -5 ten başlayıp 5'e kadar gitmektedir... 
                for (int i = -5; i < 5; i++)
                    listBox1.Items.Add(i + " Sayısının Karesi:" + Math.Pow(i, 2)); // Karesi gösteriliyor...
            }
        }

        private void radioButton2_Click(object sender, EventArgs e)
        {
            radioButton1.Checked = false;
            radioButton2.Checked = true;
            if (radioButton2.Checked)
            {
                listBox1.Items.Clear();
                for (int i = -5; i < 5; i++)
                    listBox1.Items.Add(i + " Sayısının Küpü:" + Math.Pow(i, 3));
            }
        }
    }
}






12 - For Döngüsü... Pozitif ve Negatif Sayılar...

Ayrıntılı bir örnek oldu... Bazı açıklamalar yapalım...

Enabled: Form üzerinde bir elemanı kullanılabilir veya pasif duruma getirmek için kullanılıyor... Enabled değeri true olan eleman form üzerinde kullanılabilirken, false olan sadece ekranda gözüküyor...

Clear: Listboxın içeriğini temizlemek için kullanılıyor...

foreach: bir dizini son elemanına kadar bütün elemanlarını göstermek için kullanılıyor... Unutmayalım ki Listbox ve Comboboxlar da birer dizidir ve sıralı ifadeleri içlerinde tutarak işlem yaparlar...

Object: foreach kısmında listboxın içeriğindeki değerleri almak için object kullandık... Bu geleneksel bir tür tanımlamasıdır...  Bir alt satırda kullanacağımız tür in olduğu için obje olarak tanımladığımız değişken türünü değiştirdik ve kendimize uygun hale getirdik... Çünkü  

        foreach(int sayilar in listBox1.Items) 

şeklinde bir tanımlama yapsaydık hata ile karşılaşacaktır... Sebep ise listboxın içindeki verilerin int türünde olmamasıdır...Bu sebeple object olarak tanımlayıp, int türüne bir sonraki satırda dönüştürdük...

Global değişken: Bütün form elemanlarında ve olaylarda değerini koruyan ve değiştirilebilen değişken türüdür... Bir değişkeni sadece button_click olayında tanımlıyorsanız sadece o click olayında kullanabilirsiniz... Ama bir değişkeni aşağıda olduğu konumda yani Form classı içinde tanımlarsanız onu her yerde çağırabilir ve istediğiniz gibi kullanabilirsiniz... 


Form tasarımını aşağıdaki gibi yapınız...

İlk açılış sırasında 10 adet sayı girdirmek için  sadece gir butonu aktif olacaktır... 10 adet sayı girdirildikten sonra gir butonu pasif duruma düşüp, sonuç butonu aktif hale gelecektir... Gir butonu ile birlikte textboxa da sayı girişi yapılamayacaktır... Aynı zamanda sayı girişlerinde textbox boş bırakılıp gir butonuna basılırsa hata ile karşılaşılacaktır...

sonuç butonuna basıldığında işleme ait olan sonuçları gösterecek ve programın başlangıçtaki haline geri döndürerek tekrar işlem yapılmasını sağlayacaktır...

Program kodları aşağıdaki gibi olacaktır...

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _41_For__Pozitif_ve_Negatif_Sayılar
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        /* Girilecek olan 10 tane sayıdan
          * a) Negatif olanların sayısı
          * b) Pozitif olanların ortalaması
          * c) Sayıların toplamasını bulacak olan program?
          */
        int adet; // Burada tanımlanan değişkenler global değişkendir...

        private void Form1_Load(object sender, EventArgs e)
        {
            adet = 1; // sayacımızı 1 yapıyoruz... sayı girdikçe artacak... 
            button2.Enabled = false; // 10 sayı girmeden işlem yaptırmayacağız... 
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (adet <= 10 && textBox1.Text != "") // adet 10 dan küçük ve textboxa değer girildi ise girilen sayıyı alıyoruz...
            {
                listBox1.Items.Add(textBox1.Text);// girilen sayıyı listboxda tutuyoruz... 
                textBox1.Text = "";
                if (adet == 10)
                {
                // 10 sayı girişinden sonra sonuç butonunu açıp, sayı giriş butonunu kapatıyoruz... 
                button2.Enabled = true;
                button1.Enabled = false;
                textBox1.Enabled = false;
                }
                adet++; // 10 sayı girdireceğimiz için sayaç olarak adet değişkenini kullanıyoruz... 
                label1.Text = adet + ". Sayıyı Giriniz..:";  // 1.sayıyı gir, 2. sayıyı gir şeklinde mesaj verdiriyoruz... 
            }
            else if (textBox1.Text == "") // Bir şey girilmedi ise hata versin...
                MessageBox.Show("Lütfen Sayı Girdikten Sonra Gir Butonuna Basınız...");
        }

        private void button2_Click(object sender, EventArgs e)
        {
            int neg_adet = 0, poz_adet = 0, poz_toplam = 0, toplam = 0; // Kullanıcağımız değişkenleri tanımladık...

            foreach(object sayilar in listBox1.Items) //Listbox ın içindeki bütün elemanları sırası ile getiriyor...
            {
                int sayi = Convert.ToInt16(sayilar); // object türünden sayıya dönüştürerek işlemlerimizi yaptık...

                if (sayi < 0)       // Sayı sıfırdan küçükse negatif sayı demektir... Adetini bulduruyoruz...
                    neg_adet++;

                if (sayi > 0)  // Sayı sıfırdan büyükse pozitif sayı demektir... Ortalamasını bulduruyoruz...
                {
                    poz_adet++;
                    poz_toplam = poz_toplam + sayi;
                }

                toplam = toplam + sayi;  // Sayıların toplamanı bulacak... 
            }

            MessageBox.Show("Negatif Olanların Adedi =" + neg_adet);
            MessageBox.Show("Pozitif Olanların Ortalaması = " + (poz_toplam / poz_adet));
            MessageBox.Show("Girilen Sayıların Toplamı = " + toplam);

            // Yeniden işlem yapmak için herşeyi ilk haline getiriyoruz...
            button2.Enabled = false;
            button1.Enabled = true;
            textBox1.Enabled = true;
            adet = 1;
            listBox1.Items.Clear(); // listboxın içeriğini temizliyor..
        }

    }
}





11 - For Döngüsü... Girilen Sayıların İlkinin Küçük Olması...

Form tasarımını aşağıdaki gibi yazınız... 3 nokta gösteren yer sonucu göstereceğimiz labeldır...


İlk girilen sayı küçük olursa ekrandaki görüntü aşağıdaki gibi olacaktır... 


Program doğru çalıştığında aşağıdaki gibi olacaktır...


Program kodları ise aşağıdaki gibidir...

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _40_For_Girilen_Sayıların_İlkinin_Küçük_Olması
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int t = 0;
            int sayi1 = int.Parse(textBox1.Text);   // Sayı girişleri yaptırılıyor... 
            int sayi2 = int.Parse(textBox2.Text);

            if (sayi1 < sayi2) // İlk girilen sayı ikincisinden küçük ise sayıları toplayacak...
            {
                for (int i = sayi1; i <= sayi2; i++)
                    t = t + i;
                label1.Text = "toplam sonuç = " + t; // Toplama sonucunu gösteriyoruz... 
            }
            else
                MessageBox.Show("Hata! İlk Sayıyı Daha Büyük Giriniz...");    // ilk sayı küçük değilse hata verecek...         
        }
    }
}



10 - For Döngüsü... Yıldızlardan Üçgen Yapımı...

Form tasarımını aşağıdaki gibi yapınız..

Form çalıştığı zaman sayı girildiği durumda aşağıdaki gibi bir sonuç elde edilecektir...

Programın kod kısmı ise aşağıdaki gibidir...
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _39_For_Yıldızlardan_Üçgen_Yapımı
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear(); // Bir daha çalıştırılırsa temizlemek için kullanıyoruz... 
            string yildiz = "* ";   // Burada farklı bir karakterde tabii ki yapabiliriz... Biz  yıldız seçtik...

            int a = int.Parse(textBox1.Text);    // Yıldızın kaç satır olacağını burada belirliyoruz... 

            // Döngü sayesinde yıldızı kademeli olarak çoğaltıyoruz... 
            // 1. satırda 1 yıldız, 2. satırda 2 yıldız, 3 satırda 3 yıldız, 4. satırda 4 yıldız şeklinde devam edecektir... 

            for (int i = 1; i <= a; i++)
                {
                listBox1.Items.Add(yildiz);
                yildiz += " * ";               // Bu satırı bir üste yazarsak önce yıldız ekleyip sonra göstereceği için 1. satırda 2 yıldız olur... 
                                               // Bu ifade ile yıldız = yıldız + "*" ifadesi aynı işlemi görür...
                }
        }
    }
}




9 - For Döngüsü... Girilecek Olan Sayının Çarpım Tablosu...

Form tasarımını aşağıdaki gibi sağlayınız... 

Çarpım tablosu için bir sayı girildiğinde aşağıdaki gibi bir sonuç verecektir...

Programın kodları ise aşağıdaki gibi olacaktır... 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _38_For_Girilecek_Olan_Sayının_Çarpım_Tablosu
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // Girilen sayının çarpım tablosunu bulan program?
            int s = int.Parse(textBox1.Text);
            listBox1.Items.Add (s + " Sayısının Çarpım Tablosu...");

            // 1 den 10 a kadar bir döngü oluşturuyoruz...
            for (int sayac = 1; sayac <= 10; sayac++)
                listBox1.Items.Add(s + " * " + sayac + " = " + (s * sayac)); // İşlemleri ekranda yazdırıyoruz... 
        }
    }
}




6 Nisan 2013 Cumartesi

8 - For Döngüsü... Girilen Sayının Faktöriyeli...

Form tasarımımız aşağıdaki gibi olacaktır... 

Program çalıştığında ise aşağıdaki sonucu verecektir...

Program kodları ise aşağıdaki gibi olacaktır... 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _37_For_Girilen_Sayının_Faktöriyeli
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // Girilen sayının faktöriyelini bulan program?
            int toplam = 1;

            int s = int.Parse(textBox1.Text);
            for (int sayac = 1; sayac <= s; sayac++)
            {
                // Sayıların toplanması yerine çarpılması ile faktöriyel işlemi gerçekleşmiş olur... 
                toplam = toplam * sayac;
            }
            label2.Text = (s + " Sayısının Faktöriyeli =" + toplam);   // Faktöriyel sonucunu gösteriyoruz... 
        }
    }
}



7 - For Döngüsü... 1 - 100 Arası 4e Tam Bölünen Sayıları Gösteren Program...

Form tasarımında sadece ekrana bir adet listbox ekleyiniz... 
Program çalıştığı zaman aşağıdaki gibi görünecektir...

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _36_For_1_100_Arası_4e_Tam_Bölünen
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // 1 ile 100 arasındaki sayılardan 4'e tam bölünebilenleri ekranda gösteren program?
            for (int i = 1; i <= 100; i++)   // 1'den 100'e kadar sayıları alıyor...
                if (i % 4 == 0)             // Alınan sayının 4'e tam bölünebildiğini kontrol ediyor
                    // Tam bölünüyorsa aşağıdaki satır ile ekranda yazdırıyor... 
                    listBox1.Items.Add(i + " sayısı 4'e tam bölünebilmektedir...");
        }
    }
}