1 Nisan 2013 Pazartesi

76 - Diziler... Array.Sort Kullanımı...


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

namespace ConsoleApplication10
{
    class Program
    {
        static void Main(string[] args)
        {
            /*Parametre olarak verilen dizinin elemanlarını küçükten büyüğe sıralar. Eğer dizi
             * numerik ise rakamların büyüklüğüne göre, yazı tiplerinde ise baş harflerine göre sıralanır.
             */
            int[] sayilar = new int[5];
            int i = 0;
            for (i = 0; i < 5; i++)
            {
                Console.Write(i + 1 + ". Sayıyı Giriniz :");
                sayilar[i] = Convert.ToInt32(Console.ReadLine());
            }

            Array.Sort(sayilar); // Diziyi sıralıyor... 

            Console.WriteLine("");
            Console.WriteLine("Sıralanmış Halleri: ");
            foreach (int sayi in sayilar) // Dizinin sıralanmış hali listeleniyor... 
                Console.Write(sayi + " ");

            Console.ReadKey();
        }
    }
}

31 Mart 2013 Pazar

75 - Diziler... Rastgele 10 Tane Byte Sayı Girdirmek ve Göstermek...


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)
        {
            Random rnd = new Random();
            // byte türünde tanımlıyoruz... Çünkü random atacanak sayılar byte türünde olacak...
            Byte[] b = new Byte[10];

            // Bu şekilde kullanınca döngü kullanmadan bütün b dizisini doldurmuş oluyoruz...
            rnd.NextBytes(b); // Burada atanan bütün sayılar 0-255 arasıdır... 

            Console.WriteLine("Random kullanılan 10 byte türünde sayı: ");
            for (int i = 0; i < 10; i++)
            {
                Console.Write(i);
                Console.Write(":");
                Console.WriteLine(b[i]);
            }

            Console.ReadKey();
        }
    }
}

74 - Diziler... Rastgele Girilen 10 Sayının Karekök ve Karelerinin Toplamı...


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

namespace ConsoleApplication10
{
    class Program
    {
        static void Main(string[] args)
        {
            Random sayi = new Random();
            int[] a = new int[10]; // 10 sayılık bir int dizi oluşturduk.

            // Diziye sırası ile 10 adet sayı girdiriyoruz.
            for (int i = 0; i <= 9; i++)
                a[i] = sayi.Next(1,10);// 1 ile 10 arası rastgele 10 adet sayı atıyoruz...

            double[] c = new double[10]; // Karekökünü alınca sayılar basamaklı çıkabilir. Bunun için double yaptık.
            double[] d = new double[10];

            int[] b = new int[10]; // dizileri oluşturduk.

            Console.WriteLine("Rastgele atanan 10 sayının karekök ve karelerinin toplamı aşağıdadır...");
            for (int i = 0; i < 10; i++)
            {
                b[i] = a[i] * a[i]; // Karesini b dizisine aldık...
                c[i] = Math.Sqrt(a[i]); // Karekökü Math.Sqrt ile alınır...

                d[i] = b[i] + c[i]; // toplayıp d ye yazdık.

                Console.WriteLine(a[i].ToString() + " sayısı sonucu : " + d[i].ToString());
            }

            Console.ReadLine();
        }
    }
}

73 - Diziler... Girilen Sayıların ve Karelerinin Toplamını Veren Program...


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

namespace ConsoleApplication13
{
    class Program
    {
        static void Main(string[] args)
        {
            // Girilen sayıların ve karelerinin toplamını veren program...
            int[] dizi = new int[5];
            int toplam = 0;
            int karetoplam = 0;
            for (int i = 0; i <= 4; i++)
            {
                Console.WriteLine(" Dizinin " +i+" elemanını girin");
                dizi[i]=Convert.ToInt16(Console.ReadLine());
                toplam = dizi[i] + toplam; // Girilen sayıları topluyoruz... 
            }

            for (int k = 0; k <= 4; k++)
            {   // Girilen sayıları gösteriyoruz... 
                Console.WriteLine(" Dizinin " + k + " elemanı " + dizi[k]); 
            }

            for (int j = 0; j <= 4; j++)
            {  // Girilen sayıların karelerini topluyoruz... 
                int carpim = dizi[j] * dizi[j];
                karetoplam = karetoplam + carpim;
                Console.WriteLine(" Dizinin " + j + " elemanın karesi " + carpim);
            }

            // Sonuçları ekranda gösteriyoruz... 
            Console.WriteLine("sayıların toplamı= " + toplam);
            Console.WriteLine("karelerin toplamı= " + karetoplam);
            Console.ReadKey();
        }
    }
}

72 - Diziler... Girilen İsimleri Sıraya Koyan ve İstenildiği Zaman Listeleyen Program...


Diziler ile ilgili bir uygulama... Amacımız girilen bütün isimleri istenildiği zaman sıraya dizmek ve liste halinde göstermek... İsim girişi ile ilgili limit olmasın diye 1000 adet girdirdim... Programın her hangi bir yerinde girilen isimleri listelemek için isim girişine "liste" yazmanız yeterli olacaktır... Programdan çıkmak için muhakkak listelemeye girmeli ve devam etmek istiyor musunuz sorusuna H ile cevap vermelisiniz... Aksi takdirde 1000 tane isim girene kadar program devam edecektir...  Programı bitirme işlemini ise goto komutu ile sağladık... 

Programda her isim girişinden sonra isimler sıraya konmaktadır... Bu işlemi ise daha önceki girilen isimler ile kıyaslama yaparak sağladık... Compare komutu bu işlemi bize yaptı... Compare 3 sayı değeri dönderiyor... Negatif sayı ise birinci parametre alfabetik olarak daha önde, pozitif ise daha geride, sıfır ise iki parametre birbirine eşit demektir... 

Programın çeşitli yerlerinde ekranı Console.Clear() komutu ile temizledik... 



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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            // Girilen isimleri sıraya koyan program? İsimler istenildiği zaman listelensin...

            string[] isim = new string[1000]; // 1000 tane isim girebiliriz... 
            
            for (int i = 0; i < 1000; i++)
            {
                Console.Write((i+1)+". İsmi giriniz...:"); // isim girişi yaptırıyoruz...
                isim[i] = Console.ReadLine();

                // İsim girişlerinden her hangi birisinde "liste" girişi yapılırsa isimleri sıra listesine koyuyoruz...
                // ilk isimde listeleme yapmasın diye i>0 şartı koyduk...
                if (i > 0 && isim[i] == "liste") 
                {
                    Console.Clear(); //Listelemeden önce ekranı temizliyoruz... 
                    for (int listele = 0; listele < i; listele++)  // Ekranda şu ana kadar girilen isimleri listeliyor...
                        Console.WriteLine(isim[listele]);
                    i--; //isim girişine liste girince bir tane dizi elemanımız boşuna gitmiş oluyor... 
                    // Bu durumda sayacı bir geri alarak tekrar isim girişi yaptırıyoruz...  

                    // Bu kısım listelemeden sonra programı sonlandırmak için... H girilirse program sonlanıyor... 
                    // Eğer 1000 tane isim girmek istemiyorsanız listeleme yapıp Devam kısmına H girmelisiniz... 
                    Console.WriteLine("\nDevam Etmek İstiyormusunuz...(E/H)");
                    string devam = Console.ReadLine();
                    if (devam.ToUpper() == "H")  
                        goto bitir; // Sonlandırma işlemini goto ile yapıyoruz... Programın sonuna gidiyor...
                }

                    // Bu kısım ise sıralama için... i>0 ile ilk girişten sonrakileri sıralıyoruz... 
                    // Her isim girişinden sonra sıralama işlemi yapıyoruz... 
                else if (i > 0)
                {
                    string sira = ""; // Boş değişkenimiz... Yer değiştirmede kullanacağız... 
                    for (int k = 0; k <= i; k++) // Girilen en son isme kadar döngüyü kuruyoruz... Bu sebeple k<=i ifadesi var...
                    {
                        int result = String.Compare(isim[i], isim[k]); // compare ile isimleri karşılaştırıyoruz... 
                        // Buradan negatif bir sayı dönerse ilk isim alfabede daha önce demektir... 
                        if (result < 0) 
                        {
                            // Yer değiştirmeleri yapıyoruz... 
                            sira = isim[i];
                            isim[i] = isim[k];
                            isim[k] = sira;
                        }
                    }
                }
            }

            // Eğer 1000 tane isim girdiyseniz bu satırdaki kodlara ulaştınız demektir...
            // Ekran temizlenip girilen bütün isimler listeleniyor... 
            Console.Clear(); 
            foreach (string listele in isim)
                Console.WriteLine(listele);

        bitir: // goto ile bitiş yaptığımızda programı bu satırdan itibaren bitiyoruz... 
            Console.WriteLine("Program sona erdi...");
            Console.ReadLine();

            // Programdaki açık, görebildiğim kadarı ile başlangıçta ilk isme "liste" girilmesi... Bu durumda hata verdirmemiz lazım... 
        }
    }
}

71 - Diziler... Girilen Sayıların En Büyüğünü Bulmak...


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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            // Girilecek 5 Sayı İçerisinde En Büyük Sayıyı Bulacak Olan Program...

            //1. Kısım: Dizi girişini yapıyoruz... 
            int[] dizi = new int[5]; // 5 elemanlı bir dizi tanımlıyoruz... 
            for (int i = 0; i < 5; i++) // Diziler sıfırdan itibaren değer almaya başlar... Bu sebeple sayacımız sıfırdan başlıyor... 
            {
                Console.Write((i + 1).ToString() + ". Sayıyı Giriniz..."); // Sayac sıfırdan başladığı için i+1 kullanıyoruz... 
                dizi[i] = int.Parse(Console.ReadLine()); // Dizimize atamamızı yaptırıyoruz... 
            }

            //2. Kısım: En büyük sayıyı buluyoruz... 
            int enbuyuk = dizi[0]; // en büyük sayının dizinin ilk elemanı olduğunu varsayıyoruz... 
            for (int i = 1; i < 5; i++) // Sayacımızı 1 den başlatıyoruz... Çünkü ilk elemanı en büyük yaptık... 
            {
                // Eğer bir sonraki dizi elemanı daha büyük ise enbuyuk isimli değişkenimize onu yerleştiriyoruz... 
                if (enbuyuk < dizi[i])
                    enbuyuk = dizi[i];
            }

            // En büyük sayıyı gösteriyoruz... Bu arada başındaki \n bir alt satıra indiriyor...
            Console.Write("\nGirilen Sayıların En Büyüğü = " + (enbuyuk).ToString());

            Console.ReadLine();
        }
    }
}

70 - Diziler... Dizi Tanımlama...


Bellekte aynı türden sıralanmış verilerin oluşturduğu yapıya dizi denir. Tek bir tanımlama yapılarak istenilen sayıda veri girişi sağlanabilir. Dizi elemanları bir indis numarasına sahiptir. İndis numaraları varsayılan olarak sıfırdan başlar. Dizinin kaç elemanlı olacağı dizinin tanımlandığı satırda veya daha sonra da belirtilebilir. Ayrıca dizi tanımlaması yapıldığında dizinin eleman sayısı, kullanılacak eleman sayısından az ise dizi yeniden boyutlandırılabilir.

Dizi değişkenin eleman sayısını belirtmek için new metodu kullanılır.

Örnek:
5 elemanlı bir rakam dizisi tanımlanacak olursa;
int [] rakam;
rakam= new int[5]; komut satırları yazılarak tanımlama yapılmış olur.

Ayrıca,
int[] Rakam= new int[5]; komut satırı yazılarak tek satırda da tanımlama yapılabilir.

Bu şekilde tanımlanan bir dizinin ilk elemanının indis numarası 0 ve son elemanının indis numarası 4’tür.

Bu açıklamaların hepsi modüllerde olan kısım... Gayet net ve güzel bir açıklama yapılmış... Bunun üstüne devam edecek olursak, dizilerin kullanım alanı çok geniştir... Çünkü 100 lerce değişken tanımlayarak yapabileceğimiz işlemleri bir tek tanımlama ile yapabiliriz... Tanımlama için kullanılan diğer yöntemler ise şunlardır;

string[] sebzeler=new string[5]; // 5 elemanlı sebze dizisi tanımlanıyor... 

int[] notlar={65,76,85}; // Eleman sayısı girmeye gerek yok... Çünkü elemanların kendisi var... 3 elemanlı notlar dizisi tanımlanıyor... 

int[] notlar=new int[3]; // Elemanlar daha sonra girilecek ise bu sefer sadece dizinin boyutu gösteriliyor...

Dizilere veri girişi yaparken ise index numaraları kullanılarak veri girişleri yapılır...

notlar[0] = 45; // notlar dizisinin ilk elemanına 45 notunu atadık... 
notlar[2] = 65 // notlar dizisinin 3. elemanına 65 notunu atadık... 


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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            // Dizi ile 5 sayının ortalamasını bulacak olan program...

            int[] dizi = new int[5]; // 5 elemanlı bir dizi tanımlıyoruz... 
        for (int i = 0; i < 5; i++) // Diziler sıfırdan itibaren değer almaya başlar... Bu sebeple sayacımız sıfırdan başlıyor... 
            {
                Console.Write((i+1).ToString() + ". Sayıyı Giriniz..."); // Sayac sıfırdan başladığı için i+1 kullanıyoruz... 
                dizi[i] = int.Parse(Console.ReadLine()); // Dizimize atamamızı yaptırıyoruz... 
            }

            int toplam = 0; // ortalamayı bulmak için depo değişkenimiz... 
            foreach (int deger in dizi) //Dizinin son elemanına kadar gidiyor... 
                toplam += deger; 

            // Sonucu gösteriyoruz... 
            Console.Write("Girilen sayıların ortalaması = " + (toplam / 5).ToString());

            Console.ReadLine();
        }
    }
}