Showing posts with label asal sayı bulma. Show all posts
Showing posts with label asal sayı bulma. 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();
        }
    }
}