Showing posts with label sıralama. Show all posts
Showing posts with label sıralama. Show all posts

Friday, September 21, 2012

Metotlar (C#)


Metotlar tekrar tekrar aynı kodların yazılmasını önlemek için kullanılır.Bir fonsiyonun çalışması için başka bir fonksiyon tarafından çağrılması gerekir.
Metot içinde tanımladığımız kod parçacığını ana metot içinde çağırdığımız takdirde o metotun sahip olduğu deyimleride çalıştırmış oluruz. böylece
sürekli aynı kod parçacıklarını kullanmamız gereken durumlarda bize kolaylık sağlar.
metotlar ;  tür metot_adı (parametreler) { deyimler.. } şeklinde tanımlanır.
kullandığımız main fonksiyonuda buna örnektir.


private tanımlanan metotlara sadece bulundugu sınıf içersinden erişebilinirken
puplic tanımlanan metotlara ise tüm sınıflardan  erişebilinir.

bir metot Private static int metot(int x, int y) şeklinde tanımlanır. konsolda main metodu static olduğu için diğer metotlarda static tanımlanır.

örnek 1: kullanıcıdan alınan sayıları toplama, çarpma ve bolme metotlarına gönderen ve işlem yaptıran program.

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

namespace metotolar
{
    class Program
    {
        private static int toplama(int sayi1, int sayi2)
        {
            int toplam = sayi1 + sayi2;
            return toplam;
        }

        private static int carpma(int sayi1, int sayi2)
        {
            int carpim = sayi1 * sayi2;
            return carpim;
        }

        private static float bolme(float sayi1, int sayi2)
        {
            float bolum = sayi1 / sayi2;
            return bolum;
        }

        static void Main(string[] args)
        {
            Console.WriteLine("1.sayiyi giriniz: ");
            int sayi1= Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("2.sayiyi giriniz: ");
            int sayi2= Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("toplama: "+ toplama(sayi1, sayi2));
            Console.WriteLine("carpma: "+ carpma(sayi1, sayi2));
            Console.WriteLine("bolme: "+ bolme(sayi1, sayi2));
            Console.ReadLine();
            }
        }
    }


örnek 2: rastgele sayılardan oluşan 10 elemanlı bir dizinin elemanlarını metot yardımıyla isteğe göre büyükten küçüğe veya küçükten büyüğe sıralayan program.

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

namespace diziler
{
    enum siralamatipi
    {
        artan=0, azalan=1
    }
    class Program
    {
        private static int[] sirala(int[] siralanmis)
        {
            int ara;
            Console.WriteLine("siralama tipini seciniz: ");
            siralamatipi tip = (siralamatipi)Convert.ToInt32(Console.ReadLine());
            for (int i = 0; i < siralanmis.Length; i++)
            {
                for (int j = i + 1; j < siralanmis.Length; j++)
                {
                    if (tip == siralamatipi.artan)
                    {
                        if (siralanmis[i] > siralanmis[j])
                        {
                            ara = siralanmis[i];
                            siralanmis[i] = siralanmis[j];
                            siralanmis[j] = ara;
                        }
                    }

                    else if (tip == siralamatipi.azalan)
                    {
                        if (siralanmis[i] < siralanmis[j])
                        {
                            ara = siralanmis[i];
                            siralanmis[i] = siralanmis[j];
                            siralanmis[j] = ara;
                        }
                    }

                }
            }
            return siralanmis;
        }

        static void Main(string[] args)
        {

            int[] dizi = new int[10];
            Random rnd = new Random();

            for (int i = 0; i < 10; i++)
            {
                dizi[i] = rnd.Next(100);
            }

            sirala(dizi);

            foreach (int item in dizi)
            {
                Console.WriteLine(item);
            }
            Console.ReadLine();
        }
    }
}



örnek: main fonksiyonuyla kullanıcıdan alınan sayının metotlar yardımıyla asal ve mukemmel sayı olup olmadığını
kontrol eden program;

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

namespace sayilar
{
  class Program
    {
      private static void asalsayi(int a)
      {
          bool durum = true;
          int kalan;

          for (int i = 2; i < a; i++)
          {
              kalan = a % i;

              if (kalan == 0)

                  durum = false;
              break;
         }

          if (durum == true)
              Console.WriteLine("sayi asal");
          else
              Console.WriteLine("sayi asal degil");
      }

      private static void mukkemmel(int a)
      {
          int [] dizi = new int [a];
          int s=0;
          int toplam = 0;
          for (int i = 2; i < a; i++)
          {
              if (a % i == 0)
              {

                  dizi[s++] = i;
              }
          }
             
              for (int j = 0; j <= s; j++)
              {

                  toplam = dizi[j] + toplam;
              }

              toplam = toplam + 1;
         

              if(toplam== a)
              Console.WriteLine(a + " mukemmel sayi");

              else
              Console.WriteLine(a+ " mukemmel degil.");
         
     
      }
        public static void Main(string [] Args)
            {
                int sayi;

                Console.WriteLine("sayiyi giriniz: ");
                sayi = Convert.ToInt32(Console.ReadLine());
                asalsayi(sayi);
                mukkemmel(sayi);

                Console.ReadLine();
        }
    }
}









Diziler (C#)


Diziler belirle sayıda veriyi içinde barından değişken listesidir.
dizi içersindeki verilerin indexi(sıra konumu) 0 dan başlar. yani ilk sıradaki dizinin indexi 0 dır. int türünden deneme adında 10 eleman içeren bir dizi
tanımlamamız gerekirse, int [] deneme = new int[10] şeklinde tanımlamalıyız.

Dizi kullanımda 2 önemli özellik vardır bunlar;
 1. Dizi elemanları bellekte ardışıl  olarak bulunurlar
 2. Dizi elemanları aynı türden nesnelerdir.

dizi tanımlanması aşağıda ki gibi olur.

int [] sayilar = new int[10];

boyutu 10 olan int türünden bir dizi tanımlamış olduk.
dizi elemanlarına dizi[index]= değer; şeklinde değer verebiliriz.

Dizi elemanlarına index operatörüyle [] ulaşılabilir.

int sayilar[0]= 10;
int sayilar[1]= 20;  sayilar adlı dizinin 0. indexte bulunan elemanı 10, 1.indexte bulunan elamanı 20dir.



örnek 1: klavyeden 5tane değer girilen 5 değeri diziye atan ve bu dizideki değerlerin ortalamasını alan program.

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

namespace diziler
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] dizi = new int[5];
            int ortalama = 0, toplam=0;
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine("{0}. elemani giriniz: ", i+1);
                dizi[i]= Convert.ToInt32(Console.ReadLine());
                toplam = dizi[i] + toplam;
            }

            ortalama = toplam / 5;
            Console.WriteLine(ortalama);
            Console.ReadLine();
        }
    }
}

örnek 2: 10elamanlı bir sayı dizisinin en küçük elemanını bulan program.

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

namespace diziler
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] dizi = new int[10];
           
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine("{0}. elemanı giriniz: ", i+1);
                dizi[i] = Convert.ToInt32(Console.ReadLine());
                Console.Clear();              
            }

            int min = dizi[0];
           

            for (int j = 1; j < 10; j++)
            {
                if (dizi[j] < min)
                {
                    min = dizi[j];
                }
            }
            Console.WriteLine("en kucuk elemani: {0}",min);
            Console.ReadLine();
        }
    }
}


örnek 3: 10 elemanlı bir sayı dizisine 1-10arası puan girilen ve hangi puandan kaç adet bulunduğunu gösteren program.

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

namespace puantut
{
    class Program
    {
        static void Main(string[] args)
        {
            int i;
            int[] dizi = new int[10];
            int[] Puansayisinitut = new int[11];

            for (i = 0; i <= 10; i++)
            {
                Puansayisinitut[i] = 0;
            }
                for (i = 0; i < 10; i++)
                {
                    Console.WriteLine(i + 1 + ". puanı giriniz(0-10 arasi hesaplanacak); ");
                    dizi[i] = Convert.ToInt32(Console.ReadLine());

                    Puansayisinitut[dizi[i]]++;
                    Console.Clear();
                }

                for (i = 0; i <= 10; i++)
                {
                    Console.WriteLine(i + "'den" + Puansayisinitut[i] + "adet var");
                   
                }
                Console.ReadLine();
            }
        }
    }


Örnek 4; 10 elamanlı bir sayı dizisinin elamanlarını büyükten küçüğe sıralayan program.

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

namespace diziler
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] dizi = new int[10];
           
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine("{0}. elemanı giriniz: ", i+1);
                dizi[i] = Convert.ToInt32(Console.ReadLine());
                Console.Clear();
               
            }

            int ara;
            for (int s = 0; s < 10; s++)
            {
                for (int k = s+1; k < 10; k++)
                {
                    if (dizi[s] < dizi[k])
                    {
                        ara = dizi[s];
                        dizi[s] = dizi[k];
                        dizi[k] = ara;
                    }
                }
            }
                int[] siralanmis = dizi;

                foreach (int item in siralanmis)
                {
                    Console.Write(item + "--");
                }

                Console.ReadLine();
            }
        }
    }