Archive: c#

C# İle Tek ve Çift Sayılarının Bulunması

Bir okuyucumuzun sorusu üzerine tek ve çift sayıların C# ile bulunması örneği yapıyoruz. Temel mantık sayının modu alınır. Mod 2 işlemi gerçekleştirilir. İşlem sonucu 0 ise sayı çift sonuç 1 ise sayı tek sayıdır.
Okuyucumuzun sorusu :” 1den kullanicinin belirleyecegi sayiya kadar olan sayilardan tek sayilarin karesini cift sayilarin kupunu alip ekrana yazdiran programi c# console aplication da yaziniz.”” şeklindeydi.

Sorununn cevabı şu şekilde olacak.

 static void Main(string[] args)
        {
            //1den kullanicinin belirleyecegi sayiya kadar olan sayilardan tek sayilarin karesini cift sayilarin 
            //kupunu alip ekrana yazdiran programi c# console aplication da yaziniz.

            Console.Write("Sayısı Giriniz = ");
            int sayi =Convert.ToInt16(Console.ReadLine());
            int tekToplam =0;
            int ciftToplam =0;
            for (int i = 0; i <= sayi; i++)
            {
                if (i % 2 == 0)
                {
                    ciftToplam = i * i * i;
                    Console.WriteLine(i + " sayısının küpü   = " + ciftToplam);
                }
                else
                { 
                    tekToplam = i * i;
                    Console.WriteLine(i + " sayısının karesi  = " +  tekToplam);
                }


            }
            Console.ReadKey();

        }

C# ile CapsLock Kontrol Fonksiyonu

C# ile capslock tuşunu açıp kapatmak için kullanışlı bir fonksiyonu ve fohksiyon ile geliştirilmiş örnek bir uygulamayı paylaşıyorum.

// ReSharper disable InconsistentNaming
        [DllImport("user32.dll")]
        static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);
        static void ToggleCapsLock(bool onOrOff)
        {
            if (IsKeyLocked(Keys.CapsLock) == onOrOff)return;
            keybd_event(0x14, 0x45, 0x1, (UIntPtr)0);
            keybd_event(0x14, 0x45, 0x1 | 0x2, (UIntPtr)0);

        }
        // ReSharper restore InconsistentNaming

Örnek Uygulamayı indirmek için burayı Tıklayınız… ExamCapsLock

Visual C# – Rasgele Sayı Üretme

Visual C# ile Rasgele Sayı Üretme

Rasgele numaralar; bir oyun geliştimende, bir dizi içerikten şanslı olanı seçmende, ASP.NET sitende rasgele resimler göstermende ve bunun gibi birçok şekilde örnekleyebileceğimiz onlarca yerde işimize yarayacak temel fonksiyonlardan biridir. Güncel modern programlama dillerinde kolayca rasgele sayılar üretebiliriz. Nacak şöyle de bir karanlık bir gerçek varki: bilgisayarların ürettiği rasgele sayılar aslında gerçekten rasgele değildir. Onlar yalancı-sözde rasgele sayılardır. bu sayılar karmaşık bir algoritma sonucu üretilir. Ne yazikki uzun yıllardır bilim rasgele sayı üretmenin yolunu bulamadı. Halen rasgele sayılar şüpheli. Bazı bilgisayar uzmanları günümüz popüler programlama dilleriyle oluşturulmuş rasgele numaraları tahmin edebilir programlar geliştirebiliyorlar. O kompleks algoritmalar çözülebiliyor.

Lafı fazla uzatmandan tartışmalardan uzak C# ile nasıl rasgele sayılar üretebileceğimizi yazalım :

Random randNum = new Random();
randNum.Next();

Hepsi bu. Bir Random nesnesi üretmek (System.Random sınıfında) ve Next() methodunu çağırmak, bu bize negatif olmayan (pozitif) bir integer türünde eğer döndürecektir.

Rasgele bir sayı ürettiğinizde elde ettiğiniz sayı çok büyük değerde olacaktır. >Bunu belli bir aralık içersine sığdırabilirsiniz. Örneğin 108 insan arasında rasgele birini seçme işlemi için aşağıdaki kodu üretmeniz lazım. Bu kad sayesinde 108 sayısından büyük bir sayı üretilmeyecektir.

Random randNum = new Random();
randNum.Next(108); //  En büyük 108

Daha önce de söylediğimiz gibi pozitif olma koşulu sayesinde en küçük “0” en büyük “108” değeri döner. Ancak “0” rakamını istemiyorsak yazacağımız kod aşağıdaki gibidir. aşğaıdaki kod ile “1” ile “108” arasında bir sayı üretilecektir.

Random randNum = new Random();
randNum.Next(1, 108); // En büyük 108 en küçük 1

Bazı özel durumlar:

Random randNum = new Random(1986);
randNum.Next(); // Bu her zaman 564610494 sayısını döndürür.

Yine aynı şekilde :

Random randNum = new Random(1986);
randNum.Next(); // Bu her zaman 564610494 sayısını döndürür.
randNum.Next(); // Bu her zaman 1174029081 sayısını döndürür.
randNum.Next(); // Bu her zaman 2057658224 sayısını döndürür.

 

Eğer double tipinde bir sayı üretmek istiyorsak NextDouble() methodu kullanılır. Bu kod bize 0 ile 1 arasında bir sayı döndürür:

Random randNum = new Random();
randNum.NextDouble();
randNum.NextDouble();
randNum.NextDouble();

Örnek olarak dönecek rakamlar 0.12820489450164194, 0.81203657295197121 ve 0.0582018419231087554.

Bir arraya atarak kulanımı ile ilgili olarak ta aşağıdaki örneği verebiliriz.

byte[] randBytes = new byte[108];
Random randNum = new Random();
randNum.NextBytes(randBytes);

Bu kodun sonucu buna benzer olacaktır: 196 231 77 225 52 144 146 72 3 90 18 233 161 205 147 196 35 152 30 220 41 114 156 25 184 185 30 64 140 138 215 62 178 90 158 94 0 47 101 234 151 44 71 189 146 113 111 90 3 93 59 104 91 143 81 82 75 51 40 123 113 81 188 121 130 212 55 71 47 52 195 243 50 52 68 252 42 222 135 70 74 196 61 46 79 111 227 34 8 75 19 205 6 234 120 70 112 206 58 190 58 39 42 206 153 71 53 38. Tabi ki sizin rakamlar farklı olmalıdır.

 

Dizin İçerisindeki Belli Tip Dosyaları Listeleme

Visual C# ile istediğimiz bir dizin içerisindeki tüm dosyaları listelemek ve istersek sadece belli tipteki ki dosyaları listelemtmek için aşaıdaki kodları kullanabiliriz. Aşağıdaki kodda sadece txt uzantılı dosyalar listelenecek ve eğer istersek bu txt dosyalarını okuyup form üzerindeki bir text kutusuna yazdıracağız.

private void button2_Click(object sender, EventArgs e)
        {
            txtParagraphs.Text = "";
            FolderBrowserDialog dialog = new FolderBrowserDialog();
            dialog.ShowDialog();
            string sourceDir = dialog.SelectedPath;
            string[] sourcefiles = Directory.GetFiles(sourceDir);
            string sourcefile;
            
            for (int i = 0; i < sourcefiles.Length; i++)
            {
                sourcefile = sourcefiles[i];
                FileInfo info = new FileInfo(sourcefile);
                string uzanti = info.Extension; //Dosya Uzantısını alıyoruz.
                if (uzanti==".txt")//sadece txt uzantılı dosyaları alıyoruz.
                {
                    //txtParagraphs.Text = txtParagraphs.Text+("\nDosya Adı   : " + sourcefile+ "\n");
                    //Sadece dosya isimlerini yazdırmak için kullanılır
                    try
                    {
                        string text = File.ReadAllText(sourcefile, Encoding.GetEncoding(1254));
                        txtParagraphs.Text = txtParagraphs.Text + "\n" + text;
                        //txt dosya içeriklerini formdaki metin kutusuna eklemek için kullanılır.
                     }
                    catch (IOException)
                    {
                    }

                }
                
            }

Kontrol Deyimleri If – If/Else – If/Else If/Else

C# ile Kontrol Deyimlerinin Kullanımını ve kullanım örneklerini bu yazımızda sizinle paylaşıyoruz. Faydalı olması umduğumuz bu yazıyı anlaşılır ve yalın bir biçimde örneklerle C# Kontrol Deyimlerini öğretilmesini planladık.
if  ifadesi: Program içerisinde şartlı işlemler olduğu zaman kullanılan yapıdır

Kullanımı:

if(şart veya şartlar)

{

Kodlar;

}
Read more

En Çok Kullanılan Kelimeleri Bulma

Visual C# ile bir metinde bulunan kelimelerin kullanım sıklığını bulan basit bir programın yapımını anlatacağım. Bu projeyi Doğal Dil işleme konusunda sıklıkla duyacağınız kelime derlem çalışmalarının başlangıç aşaması olarak görebilirsiniz. Yine bu projeyi temel alarak kendi kelime derlem çalışmanızı gerçekleştirebilirsiniz.11

Read more

C# Dizideki Elemanların Sayısını Bulma

Php ile array_count_values metoduyla kolaylıkla dizi elemen sayılarını bulabilmekteyken c# içerisinde buna benzer metod bulunmamaktadır. Php’deki bu metodun yerine kullanılabilecek farklı metodları bu yazımda sizlere aktarmaya çalışacağım.

Öncelikle array_count_values metodu ne işe yarar? Bundan kısaca bahsetmek gerekirse bu metad bir dizideki eleman sayılarını bize vermekte.

&lt;?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?&gt;

Yukarıdaki gibi bir kullanımda ekrana fonksiyonun çalışması neticesinde alınacak çıktı aşağıdaki gibi olacaktır.

Array
(
    [1] =&gt; 2
    [hello] =&gt; 2
    [world] =&gt; 1
)

Bu fonksiyonu direkt olarak karşılayan bir c# metodu olmamakla birlikte oldukça basit yöntemlerle bu PHP metoduyla aynı işi yapabilen kendi mettodlarımızı oluşturabiliriz.

object[] myArray = { 1, 1, 2, 3, 3, 5 };
Dictionary&lt;object, int&gt; valueCount = new Dictionary&lt;object, int&gt;();
foreach (object obj in myArray)
{
    if (valueCount.ContainsKey(obj))
        valueCount[obj]++;
    else
        valueCount[obj] = 1;
}

Yukarıda dictionary sınıfını kullanarak basit bir şekilde dizinin elemanlarının tekrar sayılarını hesaplabililiyor ve başka bir diziye aktarıyoruz.

Bu da başka bir c# yöntemi aynı işi görmekte.

public static Dictionary&lt;dynamic, int&gt; Count(dynamic[] array) 
  {

   Dictionary&lt;dynamic, int&gt; counts = new Dictionary&lt;dynamic, int&gt;();

   foreach(var item in array) {

    if (!counts.ContainsKey(item)) {
     counts.Add(item, 1);
    } else {
     counts[item]++;
    }


   }

  return counts;    
  }

C# Kelimeyi Tersten Yazdırma

C# ile bir kelimeyi Tersten Yazdırmak için kullanacağımız kod.

 static void Main(string[] args)
        {
            string kelime;
            Console.WriteLine("Metini Giriniz = ");
            kelime = Console.ReadLine();

            for (int i = (kelime.Length -1); i &gt;-1 ; i--)
            {
                Console.Write(kelime[i]);
            }
            Console.ReadKey();
        }

kelime için alacağımız sonuç
kelime -> emilek gibi olacaktır.

Kelimeyi Tersine Çeviren C# Metodu

Daha önci ki yazımızda C# ile bir kelimeyi tersinden ekrana yazdıran kodları yazmıştık. Bu sefer aynı şekilde kelimeyi tersten yazacak programı metod kulanarak gerçekleştireceğiz. Böylelikle farklı projelerde kullamak daha kolay olacaktır. İsterseniz bu metodu bir Class dosyasına sınıfa atarak istediğiniz zaman çağrılmasını sağlayabilirsiniz. Kodlarımız daha öncekine benzer. İlk örneğimiz kelimeyi ters çevirerek direk ekrana yazdırıyorduk.

Bu metod aldığı bir stringi StringBuilder sınıfı ile tanımlanmış başma bir değişkene atıyor. Ve bu değişken geri dönüyor. Daha kullanışlı.

  static String terscevir(string kelime)
        {
           
            var builder = new StringBuilder();
            
            for (int i = (kelime.Length - 1); i &gt; -1; i--)
            {
               builder.Append(kelime[i]);
            }
            return builder.ToString();

        }

Kullanımına Basit Bir Örnek

 static void Main(string[] args)
        {
            string kelime;
            Console.WriteLine("Metini Giriniz = ");
            kelime = Console.ReadLine();
            string yenikelime = terscevir(kelime); 
            Console.WriteLine(yenikelime);
            
            Console.ReadKey();
        }

C# RichTextBox’a Arama Yapma

Visual Studio C#ta RichTextBox Kontrolünde arama yapıp, bulunan kelimelerin renklerini değiştirebilen aşağıdaki metodu hazırladım.

public void boya(string kelime, Color renk, Boolean tamam)
        {
            int textEnd = richTextBox1.TextLength;
            int index = 0;
            int lastIndex = richTextBox1.Text.LastIndexOf(kelime);

            while (index &lt; lastIndex)
            {
                if (tamam)
                {
                    richTextBox1.Find(kelime, index, textEnd, RichTextBoxFinds.WholeWord);
                }
                else
                {
                    richTextBox1.Find(kelime, index, textEnd, RichTextBoxFinds.None);
                }

                richTextBox1.SelectionBackColor = renk;
                index = richTextBox1.Text.IndexOf(kelime, index) + 1;
            }

        }

Bu metodu çağırmak için şu kodu kullanıyoruz

 boya(txtSearch.Text, Color.Red, false);

İlk gönderdiğimiz değer aranacak değer, ikinci değer bulunan kelimeler hangi renk olsun, üçüncü değerimizi  sadece tam kelime bulmak istersek true yapacağız.

Back to Top