23 Mart 2013 Cumartesi

50 - While Döngüsü... Girilecek İki Sayı Arasında Girilecek Olan Sayıya Tam Bölünenler...


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication16
{
    class Program
    {
        static void Main(string[] args)
        { // Girilecek İki Sayı Arasında Girilecek Olan Sayıya Tam Bölünenler... 

            // 1. sayıyı ikinci sayıdan küçük girmeyi unutmayın... Onun kontrolünü yapmadık çünkü... 
            Console.Write("İlk Sayımızı Giriniz...:"); int s1 = int.Parse(Console.ReadLine());
            Console.Write("İkinci Sayımızı Giriniz..:"); int s2 = int.Parse(Console.ReadLine());
            Console.Write("Tam bölme yapacağımız sayımızı giriniz:"); int tam = int.Parse(Console.ReadLine());

            int i = s1; // 1. sayıdan döngüyü başlatıyoruz...
            while (i<=s2) // 2. sayıya kadar döngü gidiyor...
            {
                if (i%tam == 0) // Tam bölünüyorsa aşağıda sayıyı gösteriyor...  
                {
                    // Tam bölünüyorsa aşağıdaki satır ile ekranda yazdırıyor...
                    Console.WriteLine(i + " sayısı "+tam+" sayısına tam bölünebilmektedir...");
                }
                i++; // Döngü sırası ile artırılıyor... 
            }        
            
            Console.ReadKey();
        }
    }
}

49 - While Döngüsü.. .Tek Sayıların Toplamı...


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ciftsayilar
{
    class Program
    {
        static void Main(string[] args)
        {
            int goster = 0;   // goster değişkeni tek sayıların toplamını tutacağımız değişken olacaktır...

            int i = 1; // Tek sayılar olduğu için döngüyü 1 den başlatıyoruz...
            while (i <= 100)
            {
                goster = goster + i; // Döngü her çalıştığında sayaç olan i değeri ile bir önceki sonuç toplanıp goster değişkenine atanmaktadır...
                i = i + 2; // Artış ikişer... 
            }

            Console.WriteLine("1 den 100 e tek sayıların toplamı = " + goster.ToString()); // Sonucu burada gösteriyoruz... 
            Console.ReadKey();
        }
    }
}

48 - While Döngüsü... Girilen mesajı ekranda 5 defa yazdırmak...



For döngüsünün dışında ikinci kullanılan döngü while döngüsüdür... While döngüsünün bir çok yapısı vardır... Biz sadece bir yapısını göstereceğiz... Çünkü while döngüsü ile for döngüsü birbirine çok benzemektedir ve aynı işlevlere sahiptirler... İhtiyaca göre ikisinden birisi seçim olarak yapılabilir... Ama sadece bir kaç kullanımda buna ihtiyaç duyulur... Çoğu yerde aynı işlevi görürler...

While döngüsünün kullanımı şu şekildedir...

Hatırlayacağınız gibi For döngüsünde 3 basamak vardı... for döngüsünde ki basamakların kullanımı şu şekildeydi;

for (    1.Basamak   ;    2.Basamak      ;    3.Basamak   )
{
         Çalışması istenen kodlar...
}

1. Basamak: Başlangıç sayımızı belirtmek için kullanırız... Sayacımız nereden başlayacak... Bu durumda sayıyı  artırarak da devam edebiliriz, azaltarak da devam edebiliriz...

2. Basamak: if kısmında olduğu gibi şart ifadesidir... Döngünün nereye kadar gideceğini belirler...

3. Basamak: Döngünün artış hızını belirler... Ayağımız gaz pedalında... Kaçıncı vites ile gideceğiz.. .Buradan belirleriz...


While döngüsünde de yine 3 basamak vardır...

1. Basamak
While (2. Basamak)
{

         Çalışaması istenen kodlar...

3. Basamak
}

Yukarıda For döngüsü için kullandığımız açıklamalar bire bir While döngüsü içinde geçerlidir... Sadece yukarıda gösterildiği yerlerde yazmanız gereklidir...

Örnek: 1 den 10 kadar giden While Döngüsü...

int i= 1; // 1. Basamak
While(i<=10) //2. Basamak...
{
Console.WriteLine("Sayılarımız:" + i);
i++; // 3. Basamak
}

Biz For döngüsü ile yaptığımız örneklerden seçmeceler yaparak while döngüsünü göstereceğiz... Yani aynı örnekler için geçerli olacak... 8 örnek yaparak bu konuyu da tamamlayacağız... Belki bir kaç farklı örnek yaparız... :)


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            string mesaj = Console.ReadLine(); // mesajı girdiriyoruz...

            int a = 1;
            while (a<=5) // döngüyü 5 e kadar çalıştıracağız...
            {
                Console.WriteLine(mesaj); // mesajı 5 defa ekranda göstermiş oluyoruz... 
                a++; // Döngümüzün artışını yapıyoruz... 
            }
            Console.ReadKey();
        }
    }
}


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


Çarpım tablosu yapımı... Oluşturduğumuz mantık da önce 1-5 arası sayıların çarpımı, daha sonra 6-10 arası sayıların çarpımı yapılacaktır... Sayfada yer konumlamasını kendi mantığımız ile oluşturabilmek için dıştan içe doğru bir işlem yaptık...

Çarpım tablosundaki mantık iç içe döngü kullanmaktır... Bunun için  k*i = sonuc işlemi şeklinde yapılırken i ve  k döngü sayaçlarıdır... Buradaki ilk döngümüzün sayacı ikinci çarpan, içteki döngümüzün sayacı ilk çarpan olarak kullanılmaktadır... 

for (int i = 1; i <= 10; i++) bu ilk döngümüz...
for (int k = 1; k <= 5; k++)  bu içteki döngümüz... 

Çarpım tablosu  k * i = sonuc şeklinde yapılmıştır... 


Program kodları aşağıdaki gibidir... Açıklamalar yanlarında vardır... 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            for (int i = 1; i <= 10; i++)   // Çarpım tablosunun ikinci çarpanı buradaki döngü olacaktır... 
            {
                for (int k = 1; k <= 5; k++) // Çarpım tablosunun birinci çarpanı buradaki döngü olacaktır...
                {
                    int a = (k * i); // Çarpım işleminin sonucu... Buradan değeri alacağız... 
                    string x = Convert.ToString(a); // Düzgün bir tablo oluşturmak sayının uzunluğunu alıyoruz... 
                    
                    if (x.Length == 1) // Eğer bir rakamlı ise işlemden sonra 5 boşluk bırakıyoruz... 
                        Console.Write(k + " * " + i + "  = " + a+"     ");
                    
                    else if(i==10) // i 10 olduğunda çarpan kısmında bir, sonuç kısmında bir, toplam iki 
                                   // rakam fazla olacağı için = ifadesinden önce 1 boşluk az yapıyoruz... 
                        Console.Write(k + " * " + i + " = " + a + "    ");
                    
                    else if(x.Length==2) // Eğer iki rakamlı ise 4 boşluk bırakıyoruz... 
                        Console.Write(k + " * " + i + "  = " + a + "    ");
                    
                }
                Console.WriteLine(); // Alt satıra geçiyoruz... 
            }
            
            // 1-5 arası çarpım ile 6-10 arası çarpım arasında satır boşlukları bırakıyoruz... 
            Console.WriteLine();
            Console.WriteLine();

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

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

                    else if (i == 10)  
                        Console.Write(k + " * " + i + " = " + a + "    ");

                    else if (x.Length == 2) 
                        Console.Write(k + " * " + i + "  = " + a + "    ");
                }
                Console.WriteLine();
            }
            Console.ReadLine();
        }
    }
}

Veritabanı - 4... Resim Kullanımı...


Okul isimli veritabanını burada da kullanmaya devam ediyoruz... Tıklanan isme göre bize resimleri getirecek olan bir uygulama gerçekleştireceğiz... Bunun için resimleri veritabanın da olduğu bin klasörü ile aynı yerde ayarlıyoruz... 

Veritabanında ise resim adında bir alan ekliyoruz ve bu alanı metin olarak tanımlıyoruz... Burada yaptığımız işlem resmin yolunu veritabanına kaydetmek ve oradan tekrar çağırmak... İlaç programında olan örnekte ise bilgisayardan resim de ekleyip istediğimiz konuma getirebiliyoruz... Ama yine bu mantıkla yapıyoruz... 


Form dizaynını aşağıdaki gibi yapıyorsunuz... Bir adet combobox ve bir adet picturebox ekliyorsunuz... 


Programın çalışır halindeki görüntüsü aşağıdaki gibidir... 


Seçim yapıldığı anda ekrana resim gelecektir... 


Programın kodları aşağıdaki şekildedir... 

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

namespace arama_4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0; Data Source=okul.mdb");
        OleDbCommand komut = new OleDbCommand();

        private void Form1_Load(object sender, EventArgs e)
        {
            // Combobox'ın içine veritabanında ki isimleri getirtiyoruz... 
            baglanti.Open();
            komut.CommandText = "Select Isim From ogrenci";

            komut.Connection = baglanti;
            OleDbDataReader oku = komut.ExecuteReader();

            while (oku.Read())
                comboBox1.Items.Add(oku[0]);

            oku.Close();
            baglanti.Close();
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            // Seçilen isme göre picturebox da resmi getiriyoruz... 
            baglanti.Open();
            komut.CommandText = "SELECT * FROM ogrenci WHERE  (Isim ='" + comboBox1.Text + "')";
            komut.Connection = baglanti;

            OleDbDataReader resim = komut.ExecuteReader();
            while (resim.Read())
                pictureBox1.Image = Image.FromFile(resim[4].ToString());

            resim.Close();
            baglanti.Close();
        }    
    }
}

Veritabanı - 3... DataGridview Kullanımı...


Veritabanı  - 1 dersin de kullanmış olduğumuz okul isimli access dosyası üzerinden yine bir uygulama yapacağız... Bunun için aşağıdaki formu tasarlayalım... Bu sayfaya bir adet  Tools penceresindeki Data kısmından datagridview eklemeyi de unutmayalım...

Kodlarımızı yine ara butonunun içerisine yazacağız... Aşağıdaki örnekte formun hemen girişinde veritabanında ki verileri alıp, datagirdview içerisinde gösteriyoruz... Bu kısmı sağlamak için formun load kısmına ilk kodlarımızı yazıyoruz... 

Önemli bir ayrıntıda access veri tabanında ki alanların hangi veri türü ile tanımlandığıdır... Burada aramayı No isimli alan adına göre yapacağız ve hatırlanacağı gibi bu alan adı sayı olarak tanımlanmıştı... 

Sayı olarak tanımlanan alanlarda SQL sorgusu yaparken ' işaretleri kullanılmamaktadır... Örnek: 
"SELECT * FROM ogrenci WHERE [No] = 12"

Halbuki metin olsaydı bu kısım sorgulama şu şekilde olmalıydı...
"SELECT * FROM ogrenci WHERE [No] = '12' "


Gördüğünüz gibi aradaki tek fark tırnaklardır... Bu sebeple sorgumuzu yaparken numaranın alındığı kısımda şöyle bir sorgu cümlesi yazılmıştır... Buraya textbox1 i nasıl eklediğimiz ile ilgili sıkıntılarınız varsa veritabanı 2 dersine bakınız... Ama şunu unutmayalım SQL komutlarının haricinde bir form nesnesi eklenecek ise " " işaretleri arasında verilir ve + + işaretleri ile eklenir... Aşağıdaki  örnekteki gibi form nesnesinden sonra SQL'e geri dönülmeyecek ve kod yazılmayacak ise " + işaretleri yeterli olacaktır...

komut.CommandText = "SELECT * FROM ogrenci WHERE [No] =" + textBox1.Text;

Örnek olması ve konunun tam anlaşılması için söylüyorum... Belki de biraz uzatıyorum... Buradaki No isimli alanın veri türü metin olsaydı SQL cümleciğimiz aşağıdaki gibi olmak zorundaydı... 

komut.CommandText = "SELECT * FROM ogrenci WHERE [No] = ' " + textBox1.Text + " ' ";

Programın çalışmasındaki ekran görüntüleri ise aşağıdaki gibi olacaktır... İlk açılış aşağıdaki ekrandaki gibidir..


Numara girilip ara butonuna basıldığında ise aşağıdaki ekran gelmiş olacaktır... 

Programın kodları ise aşağıdaki gibidir... Yanlarında gerekli görülen yerlerde açıklama satırları eklenmiştir... 


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

namespace arama_3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        // ÖRNEK - 3 : GİRİLEN NUMARA BİLGİSİ DATAGRİDVİEW YARDIMI İLE VERİTABANINDA GÖSTERİLİYOR...

        OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source= okul.mdb");
        OleDbCommand komut = new OleDbCommand();
        OleDbDataAdapter da;
        DataSet ds = new DataSet();

        /*DataSet; SQLDataAdapter veya OleDbDataAdapter nesnesinden gelen kayıtları çevrimdışı depolamak ve 
         * yönetmek için kullanılan sınıftır. DataSet tüm veri sağlayıcı sınıflar için ortaktır.
         * 
         * OleDbDataAdapter; Access veya diğer veritabanlarından çekilen verileri ilgili veritabanına
         * aktarmak için kullanılan sınıftır...
         */

        private void Form1_Load(object sender, EventArgs e)
        {
            komut.CommandText = "SELECT *  FROM ogrenci";
            komut.Connection = baglanti;

            da = new OleDbDataAdapter(komut);         // DataAdapter'e bilgiler alınıyor...
            da.Fill(ds, "tablo");                     // DataSet'e bilgiler "tablo" ismi ile dolduruluyor...
            dataGridView1.DataSource = ds;            // Dataset gridview'e bağlanıyor...
            dataGridView1.DataMember = "tablo";       // GridView e Dataset'teki bilgiler aktarılıyor...
        }

        private void button1_Click(object sender, EventArgs e)
        {
            /*Numaraya göre arama yapılıyor...
             * SQL komut cümleceğinde alan adında türkçe karakterler varsa [ ] ifadelerini kullanmamız lazım...
             * "SELECT * FROM ogrenci WHERE [No] = 12" olacak olan cümlede, " işaretinden sonra + işaretinden sonra 
             * kontrol nesnesi getiriliyor ...
             */
            komut.CommandText = "SELECT * FROM ogrenci WHERE [No] =" + textBox1.Text;
            komut.Connection = baglanti;
            
            da = new OleDbDataAdapter(komut);
            ds = new DataSet();
            da.Fill(ds, "tablo");
            dataGridView1.DataSource = ds;
            dataGridView1.DataMember = "tablo";
        }
    }
}

20 Mart 2013 Çarşamba

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


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Mesajınızı Giriniz...:");
            string cumle = Console.ReadLine(); // 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 fazlada yıldız eklemesin...
                    }
                    piramit += "*"; // Eğer kelime eklemiyorsak muhakkah yıldız ekliyoruz... 
                }
                Console.WriteLine(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... 
                
            }
            Console.ReadKey();
        }
    }
}

45 - For Döngüsü... Girilen Mesajı Parçalayarak Üçgen Yapmak...


Buradaki örnekler daha çok algoritma yapısını anlamak üzere oluşturulmuş basit örneklerdir... Tabii bir de bilişim teknoloji bölümlerinde okuyan öğrenciler ve öğretmenler için örnek oluşturabilecek uygulamalardır...

Bu örneğimizde girilecek olan bir cümleyi üçgen şeklinde parçalayarak göstereceğiz... Örnek: Merhaba girildi ise;
M
Me
Mer
...... gibi göstereceğiz... Bunu yaparken daha önceki bildiklerimizden farklı bir şey kullanmıyoruz... Yanlız string veri türünün dizi özelliğini kullanıyoruz... Örneğin merhaba yazısını aşağıdaki gibi cumle isimli değişkene alırsak ve aşağıdaki gibi cumleyi çağırırsak bize string ifadeyi parçalayarak gösterecektir...

cumle[0] için "M" yazacaktır...
cumle[2] için "r" yazacaktır...
cumle[5] için "b" yazacaktır...

aşağıdaki programda goster += cumle[i]; satırı sayesinde her seferinde bir tane aldığımız karakteri bir öncekine ekleyerek devam ettiriyoruz... 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Mesajınızı Giriniz...:"); 
            string cumle = Console.ReadLine(); // string zaten dizi gibi davranabilen bir türdür... 

            string goster = ""; 
            for (int i = 0; i < cumle.Length; i++) // Döngümüzü cümlemizin uzunluğu kadar yapıyoruz... 
            {
                goster += cumle[i]; // string özelliği sayesinde cumlemizi parçalayarak alıyoruz... 
                Console.WriteLine(goster); 
            }
            Console.ReadKey();
        }
    }
}

44 - For Döngüsü... Asal Sayı...


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication11
{
    class Program
    {
        static void Main(string[] args)
        {
            // Girilecek sayının asal olup olmadığını bulacak olan program?

            Console.Write("Sayıyı giriniz:");
            int sayi = int.Parse(Console.ReadLine());
            bool asaldegil = false;  // Bool türünde değişkenler sadece true veya false değeri... 

            if (sayi <= 0) // sıfır veya sıfırdan küçük sayılar asal değildir... Sayının asal olması için pozitif olması gerekir... 
                Console.WriteLine("Asal sayılar sıfırdan küçük olmaz...");
            else
            {
                // Döngümüzü 2 den başlatıp girilen sayıya kadar götürüyoruz... 
                for (int i = 2; i < sayi; i++)
                {
                    // Girilen sayıyı kendisine kadar olan bütün sayılara bölüyoruz... 
                    // Bir yerde sıfırı bulduğumuz anda sayının asal olmadığı anlaşılıyor... 
                    if (sayi % i ==0)
                    {
                        asaldegil = true; // sayı asal değilse bu değişkenimizi true yapıyoruz...
                        break; // Döngüde devam eden sayılara bakmamıza gerek yok, çünkü buraya girdiyse asal sayı değildir..
                               // break komutu yazıldığı for döngüsünü sonlandırmak için kullanılır... 
                    }
                }

                if (asaldegil) // İşte burada true false durumu işimize yaramış oluyor... 
                    Console.WriteLine(sayi + " Asal Sayı Değildir..."); // True ise asal sayı değildir... 
                else
                    Console.WriteLine("Asal Sayıdır..."); // false ise asal sayıdır... 

                // Bu arada if(asaldegil) diye yazabiliyoruz... Çünkü bool türündeki değişkenler sadece iki değer alabilir...
                // True veya false... Bu sebeple if şartında asaldegil==true yazmamıza gerek yoktur... 
            }

            Console.ReadLine();
        }
    }
}

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


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication10
{
    class Program
    {
        static void Main(string[] args)
        {
            // -5 ile +5 arası sayıların karesini ve küpünü gösterecek olan program?

            for (int i = -5; i < 5; i++) // Döngü -5 ten başlayıp 5'e kadar gitmektedir... 
            {
                // 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... 
                Console.WriteLine(i + " Sayısının Karesi:" + Math.Pow(i, 2)); 
                Console.WriteLine(i + " Sayısının Küpü:" + Math.Pow(i, 3));
            }
            Console.ReadKey();
        }
    }
}

42 - For Döngüsü... Girilen Sayılar Tek mi, Çift mi...


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication10
{
    class Program
    {
        static void Main(string[] args)
        {
            // Girilecek olan 10 sayıdan tek ve çift olanları gösteren program?

            for (int i=1; i<=10; i++)
            {
                Console.Write(i+". Sayıyı Giriniz:");
                int sayi = int.Parse(Console.ReadLine());
                if (sayi % 2 == 0) // Sayının tek mi çift mi olduğunu anlamak için 2 ye bölüyoruz... 
                    Console.WriteLine(sayi + " Sayısı Çift Sayıdır..."); // Kalan sıfır ise çift sayıdır... 
                else
                    Console.WriteLine(sayi + " Sayısı Tek Sayıdır...");  // Kalan bir ise tek sayıdır... 
            }
        }
    }
}

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


Girilecek olan sayılar üzerinde negatif veya pozitif olduğunu göstermeye çalışıyoruz... Bunu yaparken işi biraz daha genişletip negatif olanların adetini, pozitif olanların ortalamasını ve girilen bütün sayıların toplamını da yaptırıyoruz... 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication17
{
    class Program
    {
        static void Main(string[] args)
        { /* 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 neg_adet =0, poz_adet=0, poz_toplam=0,toplam=0;

            for (int i = 1; i <= 10; i++)
            {
                Console.WriteLine(i+".Sayıyı Gir...");      // 1.sayıyı gir, 2. sayıyı gir şeklinde mesaj verdiriyoruz... 
                int sayi = int.Parse(Console.ReadLine()); 
                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... 
            }

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

            Console.ReadKey();
        }
    }
}

40 - For Döngüsü... Girilecek Sayılardan İlkinin Küçük Olması...


Girilecek olan iki sayı arasındaki sayıları toplamayı daha önceden görmüştük... Şimdi burada bir kontrol yaptırıyoruz... Eğer ilk sayı ufak değilse ikinciden toplama işlemi yapıyor... Bu durumda hata veriyor... Bunu yaparken de şart içinde döngü kullanıyoruz... 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            int t=0;
            int sayi1 = int.Parse(Console.ReadLine()); // Sayı girişleri yaptırılıyor... 
            int sayi2 = int.Parse(Console.ReadLine());

            if (sayi1 < sayi2) // İlk girilen sayı ikincisinden küçük ise sayıları toplayacak...
            {
               for (int i = sayi1; i <= sayi2; i++)
                   t = t + i;
                Console.WriteLine("toplam sonuç = " + t);
            }
            else
                Console.WriteLine("HATA.."); // ilk sayı küçük değilse hata verecek... 
            Console.ReadKey();
        }
    }
}

39 - For Döngüsü... Yıldızlardan Üçgen...

Yıldızlardan bir üçgen yapmak istermisiniz... Üçgenin büyüklüğünü siz belirleyin... Aşağıdaki programda yıldızlardan bir üçgen yapılmakta ve kullanıcının gireceği sayıya göre bu üçgenin büyüklüğünü belirlemiş oluruz...


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string yildiz = "*";  // Burada farklı bir karakterde tabii ki yapabiliriz... Biz  yıldız seçtik...
            Console.Write("Sayıyı Giriniz...");
            int a = int.Parse(Console.ReadLine());  // 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++)
            {
                Console.WriteLine(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...
            }
            Console.ReadLine();
        }
    }
}

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


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication12
{
    class Program
    {
        static void Main(string[] args)
        {
            // Girilen sayının faktöriyelini bulan program?

            Console.WriteLine("Sayıyı gir..:");
            int s = int.Parse(Console.ReadLine());
            Console.Clear();    // Console ekranını temizleyen komut... 
            Console.WriteLine(s+ " Sayısının Çarpım Tablosu");
            
            // Başlık ile alt taraf arasında çizgiler olsun diye bir for döngüsü ile ekranının sonuna kadar tire işareti koydurduk...
            // Bu işlem 80 tane yan yana tire koyarak da yapılabilir ama amacımız işimizi kolaylaştırmak olduğuna göre döngü daha iyi... 
            for (int i = 0; i < 80; i++)
                Console.Write("-");

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