“Random” Sınıfı ile Rastgele Sayı Üretme

Rastgele bir sayı üretmek için “Random” sınıfını kullanırız. Random sınıfını kullanmak için o sınıfın nesnesini oluşturur ve bu nesnenin “Next” metodunu kullanarak rastgele sayı üretiriz.

 

Random rastgele = new Random();
rastgele.Next(); // Pozitif rastgele bir tam sayı üretir.
rastgele.Next(100); // 100'e kadar pozitif rastgele bir tam sayı üretir.
rastgele.Next(-100,100); // -100 ile 100 arasında rastgele bir tam sayı üretir.

Örnek: 1 ile 100 arasında 10 tane rastgele tam sayı oluşturan ve bu tam sayılardan 25’den büyük ve 2’ye tam bölünebilir olanları ekrana yazdıran program yapın.

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine(" >> Random Class'ını kullanarak rastgele sayı üretme");
        Console.WriteLine();

        int[] randoms = new int[10];
        Random rastgele = new Random();
        for (int i = 0; i < randoms.Length; i++)
        {
            int randomsayi = rastgele.Next(1, 100);
            randoms[i] = randomsayi;
        }

        for (int i = 0; i < randoms.Length; i++)
        {
            if (randoms[i] > 25 && randoms[i]%2 == 0)
            {
                Console.WriteLine(randoms[i]);
            }
        }

        Console.ReadKey();
    }
}

Convert.ToString() ‘i Taban Çevirmede Kullanmak

convert.tostring

C#’ta “Convert.ToString()” kullanımı bir değeri 2, 8, 10, 16 tabanına çevirmeyi sağlar. Örnek uygulama şöyle gösterilebilir;

using System;

class Program
{
    private static void Main()
    {
        int sayi = 413;

        Console.WriteLine("İkili tabanda 413: " + Convert.ToString(sayi, 2));
        Console.WriteLine("Sekiz tabanında 413: " + Convert.ToString(sayi, 8));
        Console.WriteLine("Onaltı tabanında 413: " + Convert.ToString(sayi, 16));

        Console.WriteLine();
    }
}

Girilen Metnin Tersini Gösterme

terscevir

 

Bu örnekte girilen metin “entered_text” string’ine eşitlenir, daha sonra bu metne “Tcvr” metodu uygulanarak metin ters çevrilir. Bu metot metni alır ve bu metnin son karakterinden başlayarak ilk karakterine doğru “nextkarakter” stringine her bir karakter sırasıyla  eşitlenir. Her eşitlenmeden sonra yeni karakter “ters” string’ine eklenir ve en sonda bu “ters” stringi döndürülür. Continue reading

“Params” Kullanımı – Örnek Uygulama

Untitled2

“Params” anahtar kelimesi (keyword) parametrenin ne kadar değer (argüman) alacağını bilmediğini gösterir. Yani array aracılığıyla, bu durumda “int[] carp” ve “int[] top” parametre array’leri ile belirsiz miktarda argüman alınıp, onlarla işlem yapılabilir. Bu örnekte “Params” anahtar kelimesi kullanılarak çeşitli sayılarda argümanlarla çarpma ve toplama işlemleri yapıldı.  Continue reading

Sıcaklık Hesaplama

sicaklikhesaplama

Sıcaklık değerlerini tutacak bir double array’i oluşturulur, for döngüsü ile değerler bu array’e eklenir. Sonrasında “AverageHeat”, “MaximumHeat”, “MinimumHeat” metotları aracılığıyla ortalama, en büyük ve en düşük sıcaklıklar bulunur. “Maxday” ve “Minday” string’leri hangi günde en yüksek ve en düşük sıcaklıkların olduğunu göstermek için yapılmıştır. Metotlarda dikkat edilecek bir nokta: Parametre ile “heats” adlı double array’in tüm elemanları metoda geçirilmektedir. Bu sayede array’in tüm elemanlarını kapsayacak hesaplamalar yapılmaktadır. Continue reading

Jagged (Düzensiz) Array’a Örnek

Untitle7d

Varsayalım ki, bir okulun array’ini oluşturuyoruz ve bu array 3 adet sınıfı, bu sınıfın öğrencilerini ve öğrencilerin notlarını içerecek. Ancak bir önemli nokta var: Her sınıfın öğrenci sayısı farklı.

Bunu nasıl yaparız?

int[][,] okul = new int[3][,];

okul[0] = new int[4, 2]; // Bu sınıfın 4 öğrencisi var, Her öğrencinin 2 notu alınacak.

okul[1] = new int[15, 3]; // Bu sınfın 28 öğrencisi var, Her öğrencinin 3 notu alınacak.

okul[2] = new int[9, 2] // Bu sınıfın 9 öğrencisi var, Her öğrencinin 2 notu alınacak.

C# Soruları ve Çözümleri (Question & Answer)

Burada 4 tane soru ve çözümlerini içeren örnekler yapılmıştır. Bu örnekler, pozitif sayıların çarpımını bulma, pozitif ve tek sayıların çarpımını bulma, kaç tane tek ve çift sayı olduğunu bulma ve pozitif sayıların ortalamasını bulma örnekleridir. Continue reading

Sayının X’inci Üssünü Alma

using System;

namespace Sayı_Kuvveti_Alma
{
    class Program
    {
        public int SayiKuvveti(int sayi, int kuvvet)
        {
          int yenisayi = 1;
          for (int i = 1; i <= kuvvet; i++)
          {
              yenisayi *= sayi;
          }
          return yenisayi;
        }

        static void Main(string[] args)
        {
            Sayi_Kuvveti_Alma SKH = new Sayi_Kuvveti_Alma();

            Console.WriteLine("-- Sayı Kuvveti Alma --");
            Console.WriteLine();
            Console.Write("Sayı: ");
            int girilensayi = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine();
            Console.Write("Kuvveti(Üssü): ");
            int girilenkuvvet = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine();

            Console.WriteLine("{0} üssü {1} = {2}", girilensayi, girilenkuvvet, SKH.SayiKuvveti(girilensayi, girilenkuvvet));
            Console.ReadKey();
        }
    }
}

Bu örnekte şu işlem gerçekleşir: Kullanıcıdan sayı istenir ve bu sayı “girilensayi”ya eşitlenir. Sonrasında bu sayının hangi kuvvetinin (üssünün) alınacağı bilgisi istenir ve “girilenkuvvet”e eşitlenir. Yazdırma sırasında ise “SayiKuvveti()” metodu kullanılır. Bu metot iki tane parametreye sahiptir. Birinci parametre girilen sayı, ikinci parametre ise kuvveti metoda yollar.

Bu metotta sayının kuvvetini almak için, for döngüsü 1’den başlayarak, kuvvet dahil, kuvvet’e kadar döner. Bu döngü sırasında “yenisayi” adı verilen değişken “sayi” ile çarpılır. Eğer girilen sayı 2, kuvvet 3 ise şöyle değer değişimi yaşanır;

Döngü 1 Başı : Yenisayı = 1, Sayı = 2,
Döngü 1 Sonu : (Yenisayı(1) = Yenisayi(1)*Sayı(2)) Yenisayı = 2, Sayı = 2.
Döngü 2 Başı : Yenisayı = 2, Sayı = 2,
Döngü 2 Sonu : (Yenisayı(2) = Yenisayi(2) * Sayı(2)) Yenisayı = 4, Sayı = 2.
Döngü 3 Başı : Yenisayı = 4, Sayı = 2,
Döngü 3 Sonu : (Yenisayı(4) = Yenisayı(4) * Sayı(2)) Yenisayı = 8, Sayı = 3.

Parametreli Constructor ile Değer Atama

code

using System;

class ID
{
    public string Name;
    public string LastName;
    public string Job;
    public int Age;

    public ID(string entered_name, string entered_lastname, string entered_job, int entered_age)
    {
        Name = entered_name;
        LastName = entered_lastname;
        Job = entered_job;
        Age = entered_age;
    }
}
class ID_Program
{
    static void Main()
    {
        ID id1 = new ID("Bill","Gates", "Founder of Microsoft", 57);
        ID id2 = new ID("Mark", "Zuckerberg", "Founder of Facebook", 29);

        Console.WriteLine();

        Console.WriteLine(
            "Örnek Değişkenlerin (Instance Variables) id1 kopyasına bu veriler atandı;\n\n {0},\n {1},\n {2},\n {3}",
            id1.Name, id1.LastName, id1.Job, id1.Age);

        Console.WriteLine();

        Console.WriteLine(
            "Örnek Değişkenlerin (Instance Variables) id2 kopyasına bu veriler atandı;\n\n {0},\n {1},\n {2},\n {3}",
            id2.Name, id2.LastName, id2.Job, id2.Age);

        Console.ReadKey();
    }

}

Burada instance variable’lara uzunca id1.Name = “”; id1.LastName=””, id1.Job=””; id1.Age=18; şekliyle değer atamaktansa, Constructor kullanarak değer atandı. Bu atama işlemi gerçekleştirmek için öncelikle Constructor oluşturuldu. Bir Constructor, Class ismiyle aynı adda olması gerektiğinden ve Constructor’ın geri dönüş tipi olmadığından Constructor şöyle tanımlandı;

 public ID()
{
} 

Sonrasında ise bu Constructor’ı kullanarak değer ataması yapılacağından 4 adet parametre kondu ve bu parametrelerden gelen argümanlar (arguments) instance variable’larına eşlendi;

  public ID(string entered_name, string entered_lastname, string entered_job, int entered_age)
    {
        Name = entered_name;
        LastName = entered_lastname;
        Job = entered_job;
        Age = entered_age;
    }

Diğer class’ta ise bu class’ın içindekileri kullanabilmek için class’ın instance’ları (örnekleri) oluşturuldu. Bu durumda iki tane örnek (veya kopyada denilebilir) oluşturulmuştur ve buna “id1” ve “id2” denmiştir. Bu instance’lar tanımlanırken değerler atandı;

    ID id1 = new ID("Bill","Gates", "Founder of Microsoft", 57);
    ID id2 = new ID("Mark", "Zuckerberg", "Founder of Facebook", 29);

En sonda ise bu id1 ve id2’nin instance variable değerlerinin atanıp atanmadığını kontrol için Console.WriteLine() ile yazdırıldı.