C# dizi tanımlama etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
C# dizi tanımlama etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

1 Nisan 2013 Pazartesi

77 - Diziler... 3 Dersin Notları... Array.Sort



Aşağıdaki örnekte çok boyutlu diziler kullanılsaydı işlemimiz daha kolay olurdu... Ama amaç algoritma yapısı ve mantık geliştirmek olunca böyle bir yöntemle de çok boyutlu diziler kullanılmadan işlemler yapılabilir... 

Bu arada Array.Sort kullanımına da örnek verdik... Bu komut verilen diziyi sıraya diziyor... Yani bundan önceki yaptığımız örneklerdeki sıralama işlemlerinde bunu kullansaydık tek satır komut ile sıraya dizmiş olurduk... C# bize hazır olarak bunu sağlıyor... Ama ilk öğrenim aşamasında hazırdan kaçınmanızı tavsiye ederim... Dediğimiz gibi amaç mantık geliştirmek... Yoksa 3 dersin notunu hesaplatsak ne olur, hesaplatmasak ne olur... 

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

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {// Diziler...: Bir aralıkta aynı olan değerleri tutmak için kullanılır... 
         // 1 öğrencinin 3 dersten aldığı 2 yazılı ve 1 sözlü notu ile ilgili bilgiler...
         // 0-2 arası ingilizce dersi, 3-5 arası türkçe dersi, 6-8 arası notlar almanca dersi
            int [] sinavlar = new int[9];
            string[] ders=new string []{"ingilizce","türkçe","almanca"};
            string dersadi = "ingilizce";

            int[] ort = new int[3];
            int sira=1;

            for (int k = 0; k <= 8; k++)
            {
                if (k == 0)             // bu derslerin isimlerini alacak olan kısım
                    dersadi = "ingilizce";
                else if (k == 3)
                    dersadi = "türkçe";
                else if (k == 6)
                    dersadi = "almanca";

                // sınav notlarının girildiği alan
                Console.Write(dersadi + " dersinin " + sira + ". sınav notunu giriniz");
                sinavlar[k] = int.Parse(Console.ReadLine()); 
                if (sira == 3) // ders ismini burada değiştiriyoruz...
                    sira = 0;
                sira++;
            }

            // ortalamaları hesaplıyoruz...
            int i = 0;
            for (int k = 0; k <= 8;k=k+3)
            {
                ort[i] = (sinavlar[k] + sinavlar[k + 1] + sinavlar[k + 2])/3;
                i++;
            }

            // ortalama sonuçlarını ekranda gösteriyoruz...
            int j=0;
            foreach (int oku in ort)
            {
                Console.WriteLine(ders[j]+ " dersinin ortalaması = " + oku);
                j++;
            }

            // En yüksek ve en düşük not
            int enyuk = sinavlar[0];
            int endus=sinavlar[0];
            foreach (int oku in sinavlar)
            {
                if (oku > enyuk)
                    enyuk = oku;

                if (oku < endus)
                    endus = oku;
            }
            Console.WriteLine("En yüksek notlar: " + enyuk);
            Console.WriteLine("En yüksek notlar: " + endus);

            // Sıraya dizme komutu... Sort...
            Array.Sort(sinavlar);
            foreach (int oku in sinavlar)
                Console.Write("Notlar: " + oku + " ");

            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();
        }
    }
}

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();
        }
    }
}