Monday, September 24, 2012

Yapıcı Metotlar(Constructors) (c#)


Yapıcı Metotlar(Constructors)

Şu ana kadar gördüğümüz örneklerde bir sınıf nesnesinin üye elemanlarından olan özelliklere değerler verirken ya kendimiz
EnBoyBelirle() gibi metotlar tanımladık ya da '.' operatörü ile eğer eleman puplic ise direkt ulaştık. Ancak bu şekilde ilk
değer vermeler genellikle kullanılmaz, nesne yönelimli programlama tekniğinin getirdiği birtakım avantajlardan yararlanılır.

referans tipi oluşturulduğunda elemenlara  varsayılan değer atanıyordu. İşte bu işlemi yapan aslında otomatik çalışan bir
yapıcı metottur. Burdan da anlaşılacağı gibi biz tanımlamasakta her sınıfın bir yapıcı metotodu vardır. Bunlara
default constructor denilmektedir.

yapıcı metotların geri dönüş değerinin olmaması geri dönüş tipinin void olduğu anlamına gelir.


Şimdi örnek bir sınıf üzerinden yapıcı metotların nasıl bildirildiğine bakalım. Yapıcı metotların diğer metotlardan
2 farkı vardır. birincisi, yapıcı metotların geri dönüş değeri yoktur. yani geri dönüş değeri kavramı yoktur bu yüzden
metotun tipi tanımlanmaz. ikincisi yapıcı metotların ismi sınıf ismi ile aynı
olmak zorundadır.




Şimdi Ev adlı bir sınıf için bir yapıcı metot oluşturalım. Ev sınıfı içerisinde katno, odasayisi, alan, semt bilgisini tutan
bir veri yapısı olacaktır.

class Ev
{
   puplic int odasayisi;
   puplic int katno;
   puplic int alan;
   puplic string semt;


   Puplic Ev(int odasi, int kati, int alani, string semti)
   {
       odasayisi = odasi;
       katno = kati
       alan = alani;
       semt = semti;
   }
}

Friday, September 21, 2012

Erişim Belirleyici yardımıyla dosyaya yazma (C#)

Erişim Belirleyici yardımıyla dosyaya yazma


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

namespace evler
{
    public class Ev
    {
        private int odasayisi;
        private int katno;
        private double alan;
        private string semt;
     
     
        public int Odasayisi
       {
           get
           {
               return odasayisi;
           }

           set
           {
               if (value < 0)
               {
                   FileInfo fi = new FileInfo("c:/Netgame/loglar.txt");
                   FileStream fs;
                      if (fi.Exists == true)
                       {
                          fs = new FileStream("c:/Netgame/loglar.txt", FileMode.Append);
                       }

                      else
                          fs = new FileStream("c:/Netgame/loglar.txt", FileMode.Create);

                      StreamWriter yazici = new StreamWriter(fs);
                      yazici.Write("hatalı deger girildi("+DateTime.Now+")");
                      yazici.Flush();
                      yazici.Close();
                      fs.Close();

               }
               value = Math.Abs(value);
               odasayisi = value;
           }
       }


         public int Katno
        {
            get
            {
                return katno;
            }

            set
            {
                this.katno = value;
            }
        }

         public double Alan
         {
             get
             {
                 return this.alan;
             }

             set
             {
                this.alan = value;
             }
         }

         public string Semt
         {
             get
             {
                 return semt;
             }

             set
             {
                 semt = value;
             }
        }

         public string EvGoster()
        {
            return string.Format(" Odasayisi: {0} \n Katno: {1} \n Alan: {2} \n Semt: {3}", odasayisi, katno, alan, semt);
        }
   }
}



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

namespace dosyalama
{
    class Program
    {
        static void Main(string[] args)
        {
            Ev ev1 = new Ev();

            ev1.Odasayisi = -5;
            ev1.Katno = 2;
            ev1.Alan = 120;
            ev1.Semt = "Besiktas";
         
            Console.WriteLine(ev1.EvGoster());
            Console.ReadLine();
        }
    }
}

Erişim belirleyicisi örneği (C#)


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

namespace evler
{
    public class EV
    {
        private int katno;
        private int odasayisi;
        private string semt;


        public string Evgoster()
        {
           return string.Format("kat: {0} \noda: {1}\nsemt: {2}", katno,odasayisi,semt);
        }

        public int Katno
        {
            get { return katno; }
            set { katno = value; }
        }

        public int Odasayisi
        {    
            get
            {
                return this.odasayisi;
            }
            set
            {
                if (value < 0)
                {
                    value = Math.Abs(value);
                   
                }
                this.odasayisi = value;
            }
        }
        public string Semt
        {
            get { return semt; }
            set { semt = value; }
        }

    }
}


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

namespace siniflar
{
    class Program
    {
        static void Main(string[] args)
        {
            EV ev1 = new EV();

            ev1.Katno = 3;
            Console.WriteLine("oda sayisi: ");
            ev1.Odasayisi = Convert.ToInt32(Console.ReadLine());
            ev1.Semt = "besiktas";


            Console.WriteLine(ev1.Evgoster());

            Console.ReadLine();
        }
    }

}

Protected Erişim Belirleyicisi (C#)


Protected Erişim Belirleyicisi

Sınıflar konusunda belirleyicilerini incelerken, protected erişim belirleyicisini türetmeyi anlatırken inceleyeceğimizi
söylemiştik. Kalıtım yolu ile sadece puplic ve protected elemanlar aktarılır. Temel sınıfta bulunan private üye elemanlara
türeyen sınıf içersinde ulaşamayız. Örneğin aşağıdaki kullanım geçersizdir.

using System;

class Memeli

{
  private double Boy;
  private double Agirlik;

  puplic void OzellikGoster()
  {
    console.WriteLine("Boy = " + Boy);
    console.writeline("Ağırlık = " + agirlik);
  }
}

class Kedi : Memeli
{
  puplic string Turu;
 
  puplic void BoyGoster()
  {
    Console.writeline("Boy = " + Boy);
  }
}

Burada Kedi sınıfı Memeli sınıfnda türemiş olmasına rağmen Kedi sınıfında bulunan BoyGoster() metodu içerisinden Memeli
sınıfındaki Boy özelliğinin private olarak bildirilmesidir. private özelliklerinde kalıtım yolu ile aktarılması için her
değişken için get ve set blokları tanımlanabilir. Bu durumda Memeli sınıfının private elemanlarına erişebiliriz.

Diğer sınıfların kullanımına kapalı ancak türetme ile türemiş sınıfa geçebilen özellikler protected anahtar sözcüğü ile
oluşturulur. Eğer türeme söz konusu değilse protected olarak bildirilen elemenlarla private olarak bildirilen elemanlar
arasında fark kalmaz. protected eleman içeren bir sınıf türetildiğinde bu elemanlar türemiş sınıflar içinde rahatlıkla
kullanılabilir. protected elemanlar diğer sınıflar için private olarak kalmaya devam eder. Buna göre asağıdaki sınıf
bildirimleri geçerlidir.

Get ve Set anahtar sözcükleri (C#)


Set ve get Anahtar sözükleri

get ve set anahtar sözlükleri ile bir özellik tanımlanır. Ancak bu özelliklere erişmek için belirli kod bolkarını çalıştırma
şansımız mevcuttur. Metotlar ve özellikler arasındaki tek fark özellikleri çağırırken, fonksiyon çağırmak için kullandığımız
parantezleri kullanmamızdır.

private olarak tanımlanan En ve Boy elemananlarının Dortgen sınıfı için bir arayüz oluşturmayacağı için ikisinde önüne
member(üye) sözcüğünü temsil eden "m" harfini koyacağız. Böylece orjinal isimler get ve set erişimlerini kullancağımız
özelliklerde kalacaktır.

Dortgen sınıfının yeni arayüzü aşağıdaki gibidir.

class Dortgen
{
    private int mEn;
    Private int mBoy;

    puplic int En
    {
       get
       {
         return mEn;
       }
   
       set
       {
          if (value <0)
              mEn= 0;
          else
          mEn=value;
       }
    }

    puplic int Boy
    {
       get
       {
         return mBoy;
       }
   
       set
       {
          if (value <0)
              mBoy= 0;
          else
          mBoy=value;
       }
    }
}


Value anahtar sözcüğü ise özelliklere atanacak nesnenin değerini ifade eder. Örneğin,

Dortgen d= new Dortgen();

d.En = 50;

ifadesinde value anahtar sözcüğü 50 değerini temsil etmektedir. Veri elemanı hangi türden ise value değeri de o türden olur.

This anahtar sözcüğü (C#)


This Anahtar Sözcüğü

Nesneler üzerinden metotlar çağrılırken aslında biz farkına varmadan metotlara gizlice ilgili nesnelerin referansları geçirilir.
Örneğin, this anahtar sözcüğünün anlamını daha iyi kavrayabilmek için soyutlama yapalım;

Dorgen d1= new Dortgen();

d1.EnBoyBelirle();

yerine aşağıdaki gibi bir kullanımda olabilirdi:

Dortgen d1 = new Dortgen();


d1.EnBoyBelirle(d1 'in referansı);

Eğer this anahtar sözcüğü olmasaydı ikinci şekildeki gibi bir kullanıma mecbur kalacaktık. İkinci şekildeki gibi bir kullanımın
kullanışsız olduğunu söyleyebiliriz. Bu yüzden C# dilini tasarlayanlar d1 nesnesinin referansını gizlice EnBoyBelirle()
metoduna aktarmada kullanılacak bir sistem geliştirmişlerdir. İşte this anahtar sözcüğü bu referansı temsil etmektedir.
this anahtar sözcüğü çok fazla kullanılmasa da bazı durumlarda faydalı olabilir; örneğin,
EnBoyBelirle() metodunun aşağıdaki gibi olduğunu düşünelim:

puplic void EnBoyBelirle(int En, int Boy)
{
     if(En < 0 || Boy < 0)
     {
           En= 0;
           Boy = 0;
     }
     else
     {
           En = En;
           Boy = Boy;
     }
}



EnBoyBelirle() metodunun parametreleri olan En ve Boy değişkenleri Dortgen sınıfının üye elemanları ile aynı isime sahiptir.
Metot gövdesinde kullandığımız En ve Boy değişkenleri EnBoyBelirle() metodunun parametleridir. Çünkü bir üst faaliyet
alanında olan Dortgen sınıfının En ve Boy değişkenleri EnBoyBelirle() metodunun parametleri tarafından görünmez hale gelmiştir.

Böyle bir durumda this anahtar sözcüğünü kullanarak mantıksal hatayı önlemiş oluruz.

puplic void EnBoyBelirle(int En, int Boy)
{
     if(En < 0 || Boy < 0)
     {
           this.En= 0;
           this.Boy = 0;
     }
     else
     {
           this.En = En;
           this.Boy = Boy;
     }
}


derleyecek olursak;

using System;


namespace ThisSoz
{
    class dortgen
    {
        public int En;
        public int Boy;

        public int Alan()
        {
            int Alan = En * Boy;
            return Alan;
        }
         public void EnBoyBelirle(int En, int Boy)
        {
            if (En < 0 || Boy < 0)
            {
                this.En = 0;
                this.Boy = 0;
            }
            else
            {
                this.En = En;
                this.Boy = Boy;
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            dortgen d1 = new dortgen();
            d1.EnBoyBelirle(2,-5);
            Console.WriteLine("En: " +d1.En +"  "+ "Boy: " +d1.Boy);
            Console.ReadLine();
        }
    }
}
ekran çıktısı olarak En: 0 Boy: 0 sonucunu alacağız.



this anahtar sözcüğü ile EnBoyBelirle() metodunun En ve Boy parametleri, o an üzerinde çalışılan Dortgen nesnesinin En ve Boy özelliklirine atanıyor. this anahtar sözcüğünün kullanımına olanak tanımamak okunabilirlik açısından önemlidir.


Sınıf oluşturma (c#)

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

namespace siniflar
{


    class Program
    {
        static void Main(string[] args)
        {
            EV ev1 = new EV();

            ev1.kat = 3;
            ev1.oda = 2;
            ev1.semt = "besiktas";

            Console.WriteLine(ev1.Evgoster());

            Console.ReadLine();
        }
    }


    public class EV
    {
        public int kat;
        public int oda;
        public string semt;

        public string Evgoster()
        {

            return string.Format(" kat numarasi: {0} \n oda sayisi: {1} \n semt: {2}", kat, oda, semt);
        }
    }
}



Nesne Tabanlı Programlama (C#)


NESNE TABANLI PROGRAMLAMA

Nesne yönelim tekniği, gerçek hayatı programlar için simule edecej yöntemler topluluğudur. Her nesnenin kendine has özellikleri
vardır. Nesneler tamamen birbirlerinden soyutlanarak farklılaştırılır. Tabi her nesnenin birbirine mesaj göndermesi de son
derece doğaldır. Bu gerçek yaşamda da böyledir. Nesne yönelimli programlama tekniğinde gerçek bir sistem parçalara ayrılır
ve parçalar arasında ilişkiler kurulur. Nesne tabanlı programlamada önemli olan her parçayı etkili bir şekilde tasarlamaktır.



NESNE KAVRAMI

Nesneler gerçek hayatta görebildiğimiz ya da varlığını bildiğimiz eşyalardır. Nesne yönelimli programlama tekniğinde sınıflar
nesnelerin biçimlerini belirler. Oluşturduğumuz nesneler dınıf türlerinden nesneler olarak da adlandırılabilir. Her bir nesne
kendi içinde tutarlı bir yapıya sahiptir. Yani veriler arasında sıkı bir bağ vardır.

C#'ta nesne yönelimli programlama yapısını sınıflar sağlar. Sınıfları kullanarak nesneler tanımlarız. Hatırlayacağınız gibi
bir nesne aşağıdaki gibi oluşturuluyordu.

using System;

class Sınıf
{
   puplic int a;

   puplic int A()
   {
     return a;
   }
}

class MainMetodu
{
   static void Main()
   {
     Sınıf x = new Sınıf();
   }
}


Yukarıdaki programda Sınıf bir nesnenin şeklini belirlemektedir. Kısacası bir tür bilgisi saklamaktadır. new anahtar sözcüğünü
kullanarak bu türdeb x isimli bir nesne tanımlıyoruz. Bu x nesnenin bir tane veri taşıyan yapısı, bir tanede iş yapan metodu
mevcuttur.

Sınıflar bir tür  bilgisi olduğuna göre bu türü paketleyip istediğimiz programda kullanabilmemiz gerekir.



Sınıf Kütüphanesi Oluşturma

Her zaman olduğu gibi boş olduğu gibi boş bir metin dosyası açıp aşağıdaki sınıf yazalım ve RastgeleSayi.cs adıyla kaydedelim.
Bu sınıf yapısında rastgele bir değer bulunan bir özelliğe sahiptir. Ayrıca rastgele sayıyı daha sonra değiştirebilmek için
bir de Değiştir() isimli bir metot sağlanmıştır. Bu örnekte rastgele sayılar üretmek için System isim alanında bulunan
Random sınıfı kullanılmıştır.

using System;

namespace Csharp
{
  puplic class Rastgelesayi1
  {
    pravite Random rnd = new Random();
    pravite int mSayi;

    Puplic int sayi
    {
      get
       {
         return mSayi;
       }
    }
    puplic RastgeleSayi()
    {
      mSayi = rnd.Next(0,100);
    }

    puplic void Değistir()
    {
     mSayi = rnd.Next(0,100);
    }
  }
}


Yukaridaki kaynak kodda Main() metodunun olmadığına dikkat edin. Burada tanımladığınız sınıf kendi başına çalışabilen bir yapı
değildir. Ancak bir program içinde bu sınıf türünden nesneler tanımlayabiliriz.

yazdığımız sınıfın solution kısmına sağ tıklayarak build ettiğimizde daha önce belirtilen yolda sınıfın .dll dosyası derlenir.
bu dosya da yazdığımız sınıfı içeren binary düzeyde bilgiler bulunur. Dosyayı açtığımızda kodlarımızı açık bir şekilde
göremeyiz. Sınıfın  .dll dosyası elimizde olduğu sürece programlarmızda sınıfı dilediğimiz gibi kullanabiliriz.

Sınıf Kütüphanesi kullanma

Oluşturduğumuz bu sınıfı programlarımızda kullabilmek için derleyiciye .dll dosyasının yolunu bildirmek gerekir.

ana sınıfımızın bulunduğu programımızda solutionun referansına add referans dediktikten sonra .dll dosyamızı seçtikten sonra
programızın refaranslarının çağrıldığı kısma using .dll ismini eklediğimiz oluşturduğumuz sınıfı kullanabiliriz.
namespaceini eklicez bitti.


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

Monday, July 30, 2012

10'luk tabana çevirme programı

1.örnek:  2'lik tabanda yazılan sayıyı 10'luk tabana çeviren program;


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

namespace onluktabanacevir
{
    class Program
    {
        static void Main(string[] args)
        {
            int uzunluk, i, sonuc = 0;
            string sayi;
            int ara, a, taban = 2;

            Console.Write("10luk Tabana cevrilecekse sayi:");
            sayi = Console.ReadLine();

            uzunluk = sayi.Length - 1;
            int son = Convert.ToInt32(sayi[uzunluk].ToString());
            for (i =uzunluk-1; i >=0 ; i--)
            {
                int ussu = 1; /* iç içe for da değişkene yeni değer atıcaksak birinci for'içinde tanımlamamız gerekir,
                                   aksi halde değişkenin aldığı değer sıfırlanmadan döngü devam eder. */
                ara = Convert.ToInt32(sayi[i].ToString());
                for (a = uzunluk - 1; a>= i;  a--)
                {
                    ussu = (taban * ara * ussu);
                }

                sonuc = sonuc + ussu;
            }

            Console.WriteLine(sonuc + son);

            Console.ReadLine();

        }

    }
}

2'lik tabana çevirme programı (C#)


1.örnek: 10luk tabanda yazılan sayıyı 2lik tabana çeviren program;

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

namespace ikiliktabanacevir
{
    class Program
    {
        static void Main(string[] args)
        {
            int sayi, bolum, kalan;

            string sonuc="" , kalann;

            Console.Write("2lik tabana cevrilcek sayi: ");
            sayi= Convert.ToInt32(Console.ReadLine());

            while(sayi>=2){

                bolum = sayi / 2;  /* bolum degiskenine değer atamasını bir döngü içersinde yaptığımız için sadece
                                           döngü içesinde  kullanabiliriz aksi halde alan dışında kullanıldı uyarısı alırız. */
                kalan = sayi % 2;
                kalann= kalan.ToString();
                sonuc = kalan + sonuc;

                sayi = bolum;
            }
           
            Console.Write( sayi + sonuc); /* bolum degiskenini disarda kullanamacigimiz icin son bolum degerini 
                                                          sayi degerine atadığımızdan sonucun basına sayi(bolum) degerini 
                                                          yazdırdık. */

            Console.ReadLine();

        }

    }
}

Saturday, July 21, 2012

Fibonacci serisini bulan program (C#)


Fibonacci sayıları son iyi sayının toplamanın bir sonraki sayıyı verdiği sayılardır. 0 1 den başlayan seri 0+1=1
0 1 1 ( 1+1 =2 ) 0 1 1 2 ( 1+2= 3 ) 0 1 1 2 3 şeklinde sıralanır.

Örnek: Fibonacci serisini bulan program;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace fibonacci
{
    class Program
    {
        static void Main(string[] args)
        {

            int i, adet;
            int a=0, b=1,c;
            Console.Write("kac adet sayi goruntulensin?");
            adet = Convert.ToInt32(Console.ReadLine());

            Console.Write(a + " " + b + " ");

            for (i = 3; i <= adet; i++)
            {
                c = a + b;

                Console.Write(c+" ");

                a = b;
                b = c;
            }

                Console.ReadLine();
        }
    }
}

Döngüler ile Örnekler (C#)


1.Örnek:  tersinin 4 ile çarpımı kendisine eşit olan 4 basamaklı sayıyı bulan program;

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

namespace ornek
{
    class Program
    {
        static void Main(string[] args)
        {
            int sayi, i, sonuc;
            string ara;

            for (sayi = 1000; sayi <= 9999; sayi++)
            {
                ara = sayi.ToString();
                string ters = "";

                for (i = 3; i >= 0; i--)
                {
                    ters = ters + ara[i].ToString();
                }

                sonuc = Convert.ToInt32(ters);

                if ((sonuc * 4) == sayi)
                {
                    Console.WriteLine(sayi);
                    break;
                }
            }

            Console.ReadLine();
        }
    }
}

2.Örnek: satır sayısı kadar yıldız yazdıran program;

A. İç içe for kullanarak;

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int i, k, adet;

            Console.Write("kac satir yildiz olsun?: ");
            adet=Convert.ToInt32(Console.ReadLine());

            for (i = 1; i <= adet; i++)
            {
                for (k = 1; k <= i; k++)
                {
                    Console.Write("*");
                }

                Console.WriteLine();
            }

            Console.ReadLine();
        }
    }
}

B. Tek for kullanarak;

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

namespace ornek
{
    class Program
    {
        static void Main(string[] args)
        {
            int i ,a;
            string sonuc="";

            Console.Write("kac satir olsun?: ");
            a = Convert.ToInt32(Console.ReadLine());

            for (i = 1; i <= a; i++ )
            {

                sonuc = sonuc + "*";
                Console.WriteLine(sonuc);
                
            }
            
                Console.ReadLine();
        }
    }
}

Sınırsız boyuttaki sayıları toplayan program (C#)

1. Örnek: Sınırız boyuttaki  sayıları toplayan program;


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

namespace sinirsiz
{
    class Program
    {
        static void Main(string[] args)
        {
            string sayi1, sayi2, sonuc = "";   /* string türünde içi boş olan sonuc tanımladık */

            int uzunluk, i, arasonuc;
            int elde = 0;

            Console.Write("1. sayiyi giriniz: ");
            sayi1 = Console.ReadLine();

            Console.Write("2. sayiyi giriniz: ");
            sayi2 = Console.ReadLine();

            uzunluk = sayi1.Length;  /* birinci sayının uzunlugunu aldık */

            for (i = uzunluk - 1; i >=0;  i--)   /* uzunluk 0 dan başlamadığı için -1 yaptık */
            {

               arasonuc = (Convert.ToInt32(sayi1[i].ToString())) + (Convert.ToInt32(sayi2[i].ToString())) +
                                   elde; /* sayi birin tek tek elemanlarını sayi ikinin elemanları ile toplattık. eldeyi de 
                                  toplama ekledik. */

                sonuc = arasonuc % 10 + sonuc;  /* sonucta tek tek toplama yaptığımız değerin tek elemanın 
                                                                    alcağımız için aratoplamın 10a göre modunu aldık. */

                if (arasonuc >= 10)  /* aratoplam 10dan büyük ise elde mizi 1 yaptık . */
                {
                    elde = 1;
                }
            }

            if (elde == 1)   /* sonunda elde değerimiz bir ise sonuc değerinin önüne yazdırdık. */
            {
                sonuc = elde + sonuc;
            }

            Console.WriteLine(sonuc);
            Console.ReadLine();
        }
    }
}


Saturday, July 14, 2012

Random sayı üretme (C#)


Random sayı üretme methodu ile belli bir değişkene sınırlarını belirledigimiz sayı aralığında rastgele bir değer atanır.
Random sayi üretme methodu:

Random rnd = new Random();  
int rastgele_sayi = rnd.Next(100);
şeklinde oluşturulur. bu komut rastgele_sayi değerine 0-100 arası bir değer atayacaktır. rnd.Next(10,20) komutu ise
değişkene 10-19 arası, rnd.Next() konutu ise 0 - sonsuz  arası bir değer atayacaktır.

örnek: 1-100 arası random sayı üreten, ve bu sayıyı kullanıcıya tahmin ettirmeye çalışan program;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace random
{
    class Program
    {
        static void Main(string[] args)
        {
            int rastgele_sayi;
            int tahmin=0;               /* tahmin değerini kullanıcıdan almadan önce kullanacağımız için bir baslangic
                                           degeri verdik. */
       
            Random rnd = new Random();   /* rnd adlı random sayi oluşturma methodu yarattik. */
            rastgele_sayi = rnd.Next(100);  /* rastgele_sayi degerine (0-100) arasından önceden 
                                                             olusturdugumuz  rnd komutu ile bir sayi atadik.*/


          while(rastgele_sayi != tahmin)  /*kullanıcıdan sürekli tahmin alip denetleyeceğimiz için kullanıcı doğru
                                                         tahmini giresiye kadar dönecek bir while döngüsü kurduk. kullanıcı
                                                          doğru tahminde bulundugunda döngüden çıkılacaktır */
          {
              Console.Write("0-100 arası tahmin giriniz: ");
              tahmin = Convert.ToInt32(Console.ReadLine());

              if (tahmin > rastgele_sayi)      
                  Console.WriteLine("sayi kucuk...");

              else if (tahmin < rastgele_sayi)
                  Console.WriteLine("sayi buyuk...");

              else
              {
                  Console.Write("Tebrikler Doğru Tahmin"); /* bu koşul gerçekleştiğinde programdan çıkacak.*/
              }  
          }

          Console.ReadLine();

        }
    }
}

Friday, July 13, 2012

String işlemleri, Substring (C#)


String türü char(karekter) türlerinin birleşmesiyle oluşan bir türdür. string türündeki her ifade aynı zamanda char türündendir.
string ifadelerinin indexleri(sıralamaları) 0'dan başlar. merhaba kelimesinin 0. indexi m, 6. indexi ise a'dır.
string türünden bir değişken string x= "merhaba" şeklinde tanımlanır.

Substring Kullanımı:

string ifadeler charlardan oluşuyor demiştik. her char bir indexte yer tutar. string türündeki bir değişkenin içersindeki char elemanlara
ulaşmak için Substring methodundan yararlanırız.
Substring methodu, değişkenadı.Substring(değişkenin almak istediğimiz kısmının başlangıç indexi, başlangıç indexinden itibaren alınacak index sayisi)
yani;
string x= "merhaba";
x.Substring(2,2);

işlemi bize "rh" çıktısını verecektir.

String[] Kullanımı;


string[] ifadesi ile [] içersindeki index numarasını yazdıgımız elemana ulaşırız. elde ettiğimiz elemanın türü char türünden olacaktır.
[] içersine sadece 1 adet index numarası girebiliriz.

string x= "merhaba";
x[0];

işlemi bize "m" çıktısını verir.

string.Lenght Kullanımı;

string.Lenght ile değişkenimizin uzunluğunu bulabiliriz. Lenght ifadesi ile uzunluğu alınan string ifadelerinin başlangıç indexi 1 olarak alınır.

string x= "merhaba";
x.Lenght;

işlemi bize 7 sonucunu verecektir.

örnek: bir kelimenin ilk olarak uzunluğunu bulan, ardından bu kelimeyi tersten ve düzden yazılışını ekrana yazdıran program;

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

namespace stringkullanimi
{
    class Program
    {
        static void Main(string[] args)
        {
            string x;
            int i,a;

            x = "galatasaray";   /* string türünden tanımladığımız x değişkenine galatasaray değerini verdik.*/
            a = x.Length;        /* galatasay kelimesinin uzunluğunu Lenght methodu a değişkenine atadık. */

            for (i = a-1; i>=0; i--)  /* açtığımız for döngüsünü string ifadeler 0.indexten başladığı için uzunluk - 1 
                                               den başlattık(11-1). değer 0 olasıya kadar birer birer azalttık. döngü değeri 
                                                 10-9-..0 olarak dönecek.*/
            {
                Console.Write(x[i]);  /* ekrana string türünden x değişkenin 10. indexinden itabaren 0. indexe 
                                                   kadar yazdırmaya başladık. */
            }

            Console.Write("\n" + x.Substring(0, a));  /* arada boş bi satır olması için \n komutunu kullandık. ve 
                                                                           substring methodu ile galatasaray değerinin 0. indexinden 
                                                                            11. indexe kadar yazdırmasını söyledik. */
            Console.ReadLine();
        }
    }
}

For döngüsü (C#)


For döngüsü içinde bulunduğu deyimleri belirli bir başlangıç değerinden başlatarak belirlenen koşulun sağlandığu sürece değerin artırım değeri baz alınarak
döndürülmesini sağlar. For döngüsünün yapısı  for(baslangıc_degeri; kosul; artırım değeri) { ..deyimler... } şeklindedir.

1.örnek;  1-100e kadar olan sayıların toplamını bulan program;
using System;  
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Fordongusu
{
    class Program
    {
        static void Main(string[] args)
        {
            int sayi, toplam = 0;

            for (sayi = 1; sayi < 100; sayi++)
            {                          /*1-100e kadar olan sayıları toplatacağımız için sayi değerini 1den
                                      başlattık, sayı değer 100e kadar dönücek  her döndüğünde sayı bir 
                                      artırılacak. (1 + 2 + 3 .. + 99). */

                toplam = toplam + sayi;   /*1-100e kadar dönücek olan döngü içersinde toplam değeri 0 iken 
                                                      döngü  her döndüğünde sayının 1 artırılmış değeri toplam  değerine     
                                                      eklenecek. ( toplam = 0+ 1) ikincide (toplam = 1 + 2) üçüncüde
                                                       (toplam  = 3 + 3) sonuncuda (toplam = 4851 + 99). */
            }
            Console.Write("sonuc: "+toplam);
            Console.ReadLine();



        }
    }

}

2.örnek; klavyeden girilen sayıyın üssünü bulan program;

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

namespace usalma
{
    class Program
    {
        static void Main(string[] args)
        {
            int us, taban, i, sonuc= 1; //sonuc değişkenini çarpımda kullanacağımız için 1 değerini verdik.
           Console.Write("tabani giriniz: ");
           taban=Convert.ToInt32(Console.ReadLine());

           Console.Write("ussu giriniz: ");
           us = Convert.ToInt32(Console.ReadLine());
 
    for (i=1; i<=us; i++){     /*i başlangıç değerinini 1 olarak atadık, döngü klavyeden girilen us değerinden 
                                 küçük ve eşit olduğu sürece dönecek.  döngü her döndüğün 1 olan başlangıç 
                                 değeri 1 artırılacak. böylece tabanı 2 üssü   5 olan işlemde 2 değeri 1den 5e 
                                 kadar olan sayılarla çarpılarak sonuc elde edilecek. */
       
     
        sonuc= sonuc * taban;  /*başlangıçta 1 olan sonuc değeri döngü her döndüğünde taban ile çarpılarak 
                                 yeni bir değer elde edecek. 2 üssü 4için; 1.(taban= 1 * 2) 2.(taban= 2 * 2) 
                                 3.(taban= 4 * 2) 4.(taban= 8 * 2)  sonuc = 16. */
        }
           Console.WriteLine("sonuc: "+sonuc);
           Console.ReadLine();
        }
    }

}


3.örnek ; klaveyeden girilen sayının faktoriyelini bulan program;

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

namespace faktoriyel
{
    class Program
    {
        static void Main(string[] args)
        {
             int sayi, faktoriyel=1, i;

   Console.Write("sayiyi giriniz: ");
   sayi = Convert.ToInt32(Console.ReadLine());

   for (i= sayi; i>0; i--){      /* i başlangıç değerini klavyeden girilen faktoriyeli alınacak sayıya eşitledik. 
                                    döngü sayı 0dan büyük olduğu sürece dönecek  ve her döngü her döndüğünde 
                                     i değerine atanan sayı 1 azaltacak. sayı 4 ise 4 3 2 1 olarak devam edicek. */

     faktoriyel= faktoriyel * i;  /* başlangıç değeri 1 olan faktoriyel döngü her döndüğünde birer azaltılan sayı 
                                     (i) değeri ile çarpılacak. ( 5*4*3*2*1 ) */
           }
 
           Console.WriteLine("sonuc= "+ faktoriyel);
           Console.ReadLine();
        }
    }

}

Do while döngüsü (C#)


Do while döngüsünde while döngüsünden farklı olarak program koşul sağlansa da sağlanmasa da bir kez döngüye girer. do while döngüsünün kullanımı while den farklı
olarak do(){  .... }  while(); şeklinde olur.  program ilk çalıştırıldığında do bölümündeki deyimler okunur ardından while'ın içindeki koşul kontrol edilir koşul
sağlanıyorsa do ' nun içine tekrar dönülür koşul sağlanmıyorsa döngüden çıkılır.

1.örnek; 1-100 arasındaki tek sayıların toplamı:

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

namespace dowhile
{
    class Program
    {
        static void Main(string[] args)
        {

       int sayi=1;      //tek sayıların toplamı alınacağı için sayıyı 1den başlattık.
       int toplam=0;  //toplam değerini başta 0 olarak atadık.
       do{                 //do while döngüsünü açtık. program ilk olarak bu kısmı bir kez çalıştıracaktır.
           toplam=toplam+sayi;    //sayi her döngü her döndüğünde bir önceki toplam değerine eklenecek.
           sayi=sayi+2;     /*sadece tek sayıların toplanması için 1den başlattığımız sayıyı 2 ile toplattık böylece 
                              toplam 1 + 3+ 5 şeklinde ilerleyecek. */
           Console.WriteLine(sayi);
         
         
           }while(sayi<=100);  /*while kısmının içine sayı 100den küçük oluncaya kadar koşulunu ekledik. do-
                                 while döngüsünde while kısmı while(koşul); şeklinde kullanılır. */
         
           Console.Write("1-100 arasindaki tek sayilarin toplami : " + toplam);    /* 1-100e kadar olan sayıların
                                                                                     toplamını ekrana yazdırdık.*/

    Console.ReadLine();

        }
    }
}


2.örnek; kullanıcı veri giricek, istediğinde programdan çıkabilicek.

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

namespace dowhile
{
    class Program
    {
        static void Main(string[] args)
        {

       string a;   //isim girilmesini istediğimiz için string türünden a tanımladık.
 
          do {            /* do kısmında kullanıcan isim girmesini istedik , döngüden çıkması için C ye basmasını  
                              söyledik. */
          Console.WriteLine("isim giriniz giriniz: ");
          a=Console.ReadLine();
          Console.WriteLine("(cikmak icin C'ye basiniz)");

          }while(a!="c");   /* kullanıcının klavyeden girdiği değer c değil ise do bloğundaki deyimler tekrar 
                                çalıştırılacak. eğer girilen değer c ise döngüden çıkılacak. */
        }
    }
}

While döngüsü (C#)


While döngüsü

while döngüsü içerdiği bloğun koşul sağlandığı sürece çalışmasını sağlar. mesela bloğun şartı sayı<10 ise döngü sayı 10dan küçük olduğu müddetçe çalışacaktır.
if döngüsünden farkı olarak, if döngüsü kullanıyor olsaydık if(sayı<10) sayı 10'dan kücüktür yazdır deseydik if döngüsü ekrana 1 kez sayı 10'dan küçüktür
yazacaktır ancak while döngüsünde while(sayı<10) sayı 10'dan kücüktür yazdır deseydik sayı 10'dan küçük olduğu sürece ekrana sayı 10'dan küçüktür yazdırıcaktır.

1. Örnek; 1'den 100'e kadar sayıların toplamını yazan program.

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

namespace Ifelse
{
    class Program
    {
        static void Main(string[] args)
        {
           

     int toplam=0, x=1;
 
      while(x<100){                // x 100den küçük olduğu sürece bloğun içindeki deyimler çalıştırılacaktır.
               
       toplam=toplam + x;        /* toplam değeri ve x başta 0 dır. daha sonra okunacak x=x+1 deyimi ile x 1er 
                                    kez artılarak tekrardan döngü çalışacaktır bu durum  x 100den küçük olduğu  
                                       sürece devam edecektir. */
    Console.Write(toplam + "..");
             x=x+1;                //x değerini 100den küçük olduğu sürece her okumada 1 sayı artıracaktır.
                }
    Console.WriteLine("1'den 100e kadar sayilarin toplami  " +toplam + " olarak bulundu.");  /*yapılan  
                                                                                                       işlemleri  ve sonucu ekrana yazdırır.*/
    Console.ReadLine();

        }
    }
}

2.Örnek; Klaveyeden girelen 2 sayıyı karşılaştıran ve durumlarına göre bu sayıları eşitleyen program

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {


    int a, b;
 
    Console.Write("1.sayiyi giriniz: ");
    a= Convert.ToInt32(Console.ReadLine());
    Console.Write("2.sayiyi giriniz: ");
    b= Convert.ToInt32(Console.ReadLine());
 
    if (a>b){              // ilk sayının ikinci sayıdan büyük ise,
           
           while (a>b){    // ilk sayı ikinciden büyük olduğu sürece,
             
           Console.WriteLine("ilk sayi: " + a + "  ikinci sayi: " + b );   /*ilk ve ikinci sayının önceki değererini 
                                                                                                    yazdırır.*/
                 a=a-1;           // her seferinde a'yı 1 azalt.
                        }
         
           Console.WriteLine("ilk sayi: " + a + "  ikinci sayi: " + b);    // ilk ve ikinci sayının son değerlerini yaz.  
           Console.WriteLine("sayilar birbirine esitlendi");        /*sayılar birbirine eşit olduğunda döngüden çıkar
                                                                                            ve deyimleri yazar.*/
             }
    if (a<b) {                        // ilk sayi ikinci sayıdan küçük ise,

             while (a<b) {            // ilk sayi ikinciden küçük olduğu sürece,
 
             Console.WriteLine("ilk sayi: " + a +"  ikinci sayi: " + b);  /*ilk ve ikinci sayının önceki değererini 
                                                                                                     yazdır. */
                  a=a+1;                                               // her seferinde a'yı bir arttır.
                         }        
           Console.WriteLine("ilk sayi: " + a +"  ikinci sayi: " + b );    /*sayılar birbirine eşit olduğunda döngüden 
                                                                             çıkar ve deyimleri yazar. */  
           Console.Write("sayilar birbirine esitlendi.");                    
             }

    Console.ReadLine();

        }
    }
}

İf-else kullanımı (C#)


if deyimini içersindeki durumu kontrol etmeye yarar. if( x>y) ise x'değerinin y değerinden büyük olduğu durumda yani koşul sağlandığında program deyimin
içini çalıştırır. Koşul sağlanmıyorsa bir sonra ki koşulu "if else" deyimini kontrol eder.koşul yine sağlanmadıysa else(diğer tüm koşullar sağlanmama durumu)
deyimini çalıştırır.

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

namespace ifelse
{
    class Program
    {
        static void Main(string[] args)
        {
            int x;
   
    Console.Write("bir sayi giriniz: ");     /*kullanıcıdan bir sayı girdirdik. */
    x=Convert.ToInt32(Console.ReadLine());
   
    if(x > 10) {                 /* eğer klavyeden girilen sayı 10dan büyükse*/
        Console.WriteLine("girdiginiz sayi 10'dan buyuk..");  /* girdiğiniz sayı 10dan büyük  yazdırmasını,
                                             (eğer if bloğunun içindeki koşul sağlanmıyorsa aşağıdaki 
                                                koşula geçer.)
                                               (koşul sağlanıyorsa aşağıdaki if else, else durumlarını 
                                                kontrol etmez.) */
          }

        else if (x==10) {               /* yada klavyeden girilen sayı 10a eşit ise; */
         Console.WriteLine("girdiginiz sayi 10'a esit..");  /* girdiğiniz sayı 10a eşit   yazdırmasını, */
         }
    else {                            // diğer koşullar sağlanmazsa;
         Console.WriteLine("girdiginiz sayi 10'dan kucuk"..); /* girdiğiniz sayi 10'dan kucuk
                                                                                          yazdırmasını sağlar. */
         }
       
    Console.ReadLine();     /* klavyeden enter tuşuna basılasıya kadar programın açık kalmasını
                                          sağlar. */
            }
        }
    }

 program kullanıcıdan alınan sayının değerini 10 ile karşılaştırır ve duruma göre büyüktür, eşittir ve küçüktür yazar.

Thursday, July 12, 2012

Switch-Case yapısı (C#)


switch case yapısı programda seçenekler içersinden seçilen işlemi çalıştırmaya yarar.

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

namespace switchcase
{
    class Program
    {
        static void Main(string[] args)
        {

       int a;
       Console.Write(" islem numarasi giriniz: ");  //çalıştırılmasını istediğimiz seçeneğin numarasını isteniyor.
       a= Convert.ToInt32(Console.ReadLine());
   
     switch(a){              /* switch case yapısını açtık. girilen numara (a) değerinin içine atılcak ve yalnızca o 
                                kısım çalıştırılacak. */
           
     case 1:
          Console.WriteLine("1.secenek");        //girilen sayı 1 ise ekrana 1.secenek yazdıracak.
          break;                                 // case bloğundan çıkmak için break ifadesi kullanılır.
     case 2:
          Console.WriteLine("2.secenek");
          break;
     case 3:
          Console.WriteLine("3.secenek");
          break;
     default:
          Console.WriteLine("diger secenek");    //girilen sayı 1,2 veya 3ten biri değil ise diger secenek 
                                                                      yazdıracak.
          break;
              }

    Console.ReadLine();

        }
    }
}