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. */
        }
    }
}