Ümit YORMAZ Kişisel Blog

25 Kasım 2013 Pazartesi

C#’ta Diziler Arası Kriterli Aktarım

Burada yapacağımız işlem, 50 değişkenli bir dizinin içine rastgele sayılar aktarıp Bu sayıların 4 katının 5 ekisiğini bulup Bunların 3 e tam bölünüp bölünmediğine bakmak ve eğer bölünüyorsa bunları ayrı bir diziye aktarmak olacaktır.


//esas dizimizi oluşturuyoruz.
int[] dizi = new int[50];
//dizimize random sayılar atmak için random metodunu oluşturuyoruz.
Random rnd = new Random();
//değişkenleri oluşturuyoruz
int sayac = 0, deger=0;
//diziye rastgele değerler atıyoruz.
//bu değerlerin 4 katının 5 eksiği 3'e tam bölünüyosa 'deger' değişkenini arttırıyoruz.
for (int i = 0; i < dizi.Length; i++)
{
   dizi[i] = rnd.Next(100);
   Console.Write(dizi[i] + " ");
   if (((dizi[i]*4)-5)%3==0)
   {
       deger++;
    }
}
//3 e tam bölünenlerin sayısı kadar yeni bir dizi oluşturuyoruz
int[] yenidizi = new int[deger];
//esas (ilk) dizideki sayıların 4 katının 5 eksiği 3'e tam bölünüyosa yeni (ikinci) dizimize aktarıyoruz
for (int i = 0; i < dizi.Length; i++)
{
    if (((dizi[i] * 4) - 5) % 3 == 0)
    {
        yenidizi[sayac] = dizi[i];
        //ekrana yazdırıyoruz
        Console.WriteLine(yenidizi[sayac]);
        sayac++;
    }
}


İlk önce dizimizi esas 50′lik dizimizi oluşturuyoruz ve buna rastgele sayılar aktarıyoruz.
Bu sayıları aktarırken if içinde ‘((dizi[i]*4)-5)%3==0′ yazmamızın sebebi Yeni oluşturacağımız dizinin boyutunu bilmememizdir. Burada işlemimiz doğru olduğu sürece ‘deger’ artacaktır ve gerekli boyut bulunacaktır. İsterseniz yeni dizimizi önceki dizi boyutunda yapabilirsiniz Tercih sizin.
İkinci for döngümüzde ise bu sayıları yeni dizimize aktarma ve ekrana yazdırma işlemi yapıyoruz, tabi bu da sizin tercihinize kalmıştır. İkinci for döngüsünde sadece yeni diziye aktarabilir daha sonra yeni bir for döngüsüyle yeni dizimizi ekrana yazdırabilirsiniz.
Diğer gerekli açıklamalar kodların üstündedir.

Hiç yorum yok:

Yorum Gönder

Yorum Yaz...