9 Aralık 2017 Cumartesi

C sharp dizinin elemanları döngü ve fonksiyon kullanarak toplamını hesaplama





5 farklı yöntem ile dizinin bütün elemanlarının toplamını hesaplama:

        public int Dizi_Toplama_1(int[] array)
        {
            int toplam = 0;

            // for döngüsü kullanarak dizinin bütün elemanlarını toplama
            for (int i = 0; i < array.Length; i++)
            {
                toplam += array[i];
            }
            return toplam;
        }

        public int Dizi_Toplama_2(int[] array)
        {
            int toplam = 0;
            // foreach döngüsü kullanarak dizinin bütün elemanlarını toplama
            foreach (int item in array)
            {
                  toplam += item;
            }
            return toplam;
        }

        public int Dizi_Toplama_3(int[] array)
        {
            int toplam = 0, i = -1;
            // whike döngüsü kullanarak dizinin bütün elemanlarını toplama
            while (++i < array.Length)
            {
                toplam += array[i];
            }
            return toplam;
        }

        public int Dizi_Toplama_4(int[] array)
        {
            int toplam = 0, i = 0;
            // do whike döngüsü kullanarak dizinin bütün elemanlarını toplama
            do
            {
                toplam += array[i];
            } while (++i < array.Length);
            return toplam;
        }

        public int Dizi_Toplama_5(int[] array)
        {
            //dizinin Sum fonksiyonunu kullanarak dizinbütün elemanlarını toplama
            return array.Sum();
        }

21 Kasım 2017 Salı

C sharp verilen bir dizide N den fazla tekrarlanan elemanı silme







Liste lst ve sayı N verildiğinde, her lst sayısını en çok N defa içeren, yeniden sıralama yapmadan yeni bir liste oluşturun. Örneğin, N = 2 ve giriş [1,2,3,1,2,1,2,3] ise, [1,2,3,1,2] 'yi alırsınız, bir sonraki [1,2 ], sonuçta 1 ve 2 sonuçta 3 kez olduğundan listeye eklenmez. Ardından 3 2. kez gelir ve dizinin son durumu [1,2,3,1,2,3] olur

Örnek fonksiyon aşağıdaki gibidir:


        public static int[] DeleteNthItem(int[] arr, int x)
        {
            List result = new List();
            for (int i = 0; i < arr.Length; i++)
            {
                if (result.Count(s => s.Equals(arr[i])) < x)
                    result.Add(arr[i]);
            }
            return result.ToArray();
        }


veya


        public static int[] DeleteNth(int[] arr, int x)
        {
            var result = new List();
            foreach (var item in arr)
            {
                if (result.Count(i => i == item) < x)
                    result.Add(item);
            }
            return result.ToArray();
        }





Verilen bir dizinin sol ve sağ tarafının toplamı eşit olan indeksini bulma





Bir dizi tam sayı verilecektir. Göreviniz bu diziyi alıp N'nin solundaki tamsayıların toplamının N sağındaki tam sayıların toplamına eşit olduğu bir dizinin N indeksini bulmanızdır. Bunun gerçekleşmesini sağlayacak bir dizi verilmemişse fonksiyonumuz -1 dönecek.

Örneğin:

Diyelim ki {1,2,3,4,3,2,1} dizisi verildi:
Dizinin 3. konumunda indeksin sol tarafının toplamı ({1,2,3}) ve indeksin sağ tarafının toplamı ({3,2, 1}) ikisi de eşittir 6. Bu durumda fonksiyon dizinin indeksi olarak 3 döndürür.

Başka birine bakalım.
Size {1,100,50, -51,1,1} dizisi verildi:
Dizinin 1. konumunda, dizinin sol tarafının toplamı ({1}) ve dizinin sağ tarafının toplamı ({50, -51,1,1}) toplamı 1 dir. Her iki tarafın toplamı 1 dir. Bu durumda fonksiyon dizinin indeksi olarak 1 döndürür.

Örnek fonksiyon aşağıdaki gibidir:


       
        public static int FindEvenIndex(int[] arr)
        {
            int left = 0,right = 0;
            for (int i = 0; i < arr.Length; i++)
            {
                right = 0;
                for (int j = i+1; j < arr.Length; j++)
                {
                    right += arr[j];
                }
                if (left == right)
                    return i;
                else left += arr[i];
            }

            return -1;
        }