İlginizi Çekebilir
  1. Ana Sayfa
  2. C Sharp

C# Sayıyı Basamaklarına Ayırma – Max 12 Basamak

C# Sayıyı Basamaklarına Ayırma – Max 12 Basamak
+ - 2

C# Sayıyı Basamaklarına Ayırma – Max 12 Basamak dersim ile C# eğitim setime devam ediyorum. Bu dersimizde maksimum 12 basamaklı bir sayıyı basamaklarına ayırma yöntemini göreceğiz. Ve bunu bir döngü aracılığı ile yapacağız.

C# Sayıyı Basamaklarına Ayırma – Max 12 Basamak

Bu dersimizde 12 basamaklı ve daha düşük basamaklı bir sayıyı nasıl basamaklarına ayrıcağımızı göreceğiz.  Üstelik bu bir for döngüsü kullanarak yapacağız. İnternette maks 4 basamaklı sayıyı basamaklarına ayıran bir yazı görmüştüm. Bende 12 basamaklı halini yapayım dedim.

NOT: Bu kodlar 1 basamaklı sayıdan 12 basamaklı sayıya kadar her basamaktan sayıyı basamaklarına ayırabilir.

Elbette siz kodları aldıktan sonra üzerinde çalışamalar yaparak daha büyük sayılar için uğraşabilirsiniz.  Şimdi formumuza bir textbox, bir button ve bir listbox ekleyelim. Yazacağımız kodları minimum’a indirmek için önce basamakların adlarını bir list içerisinde yazacağız. (basamak adlarını yanlış yazmış olabilirim. :) )

 List<string> Basamaklar = new List<string>();
        private void sayiyi_basamaklara_ayir_Load(object sender, EventArgs e)
        {
            Basamaklar.Add("Birler Basamağı");
            Basamaklar.Add("Onlar Basamağı");
            Basamaklar.Add("Yüzler Basamağı");
            Basamaklar.Add("Binler Basamağı");
            Basamaklar.Add("On Binler Basamağı");
            Basamaklar.Add("Yüz Binler Basamağı");
            Basamaklar.Add("Milyonlar Basamağı");
            Basamaklar.Add("On Milyonlar Basamağı");
            Basamaklar.Add("Yüz Milyonlar Basamağı");
            Basamaklar.Add("Milyarlar Basamağı");
            Basamaklar.Add("On Milyarlar Basamağı");
            Basamaklar.Add("Yüz Milyarlar Basamağı");
        }

Form load içerisinde basamaklarımızı yazdık.  Burada dikkat edilmesi gereken husus bu listedeki sıralamadır. Sıralama değişirse basamak adlandırması yanlış olacaktır. Şimdi butonumuzun click eventine gelelim ve kodlarımızı yazalım.

      private void button1_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();

            if (textBox1.Text.Length <= 12 && textBox1.Text.Length >= 1)
            {
                Int64 sayi = Convert.ToInt64(textBox1.Text);
                Int64 basamak = 0;
                for (int i = 0; i < textBox1.Text.Length; i++)
                {
                    basamak = sayi % 10;
                    sayi = sayi / 10;
                    listBox1.Items.Add(basamak + " " + Basamaklar[i]);
                }
            }
            else
            {
                MessageBox.Show("Maksimum 12 basamaklı, minimum 1 basamaklı sayı girebilirsiniz.");
            }

        }

Kodlarımızı açıklamamız gerekirse;

  • İlk olarak listbox’u temizliyoruz.
  • Girilen sayın basamak sayısını kontrol ediyoruz. İstediğimiz aralıkta olması gerekiyor.
  • Textbox’tan girilen sayıyı int64’e dönüştürdük. Çünkü 12 basamak deyince İnt32 sınırını aşmış oluyoruz.
  • Texbox’a girilen sayısının karakter sayısı kadar dönecek bir for döngüsü hazırladık.
  • Basamak değişkenine, textbox’tan girilen sayının mod 10’unu alıyoruz. Böylece ilk dönüşte Birler basamağını elde ediyoruz.
  • Sayıyı 10’a bölerek birler sayıyı bir basamak azaltmış oluyoruz.
  • listbox nesnemize, elde ettiğimiz Birler basamağındaki sayıyı ve Basamaklar listesine eklediğimiz basamak ismini, döngünün ve listteki itemlerin index numaraları ile eşleştirerek hangi basamak olduğunu anlıyoruz.

Bu kodlarımızı bu şekilde yazdığımızda, girilen 12 basamaklı sayının istediğiniz noktasından bir sayıyı silseniz dahi basamak adları sıralaması doğru ise basamak sayıları ve adları her zaman doğru olarak eşleşecektir.


C# Sayıyı Basamaklarına Ayırma – Max 12 Basamak dersi de bu kadardı arkadaşlar. Diğer derslerimizde görüşmek üzere. Çok sık kullanılabilecek bir konu olarak görmediğim için bu dersi github projeme ekleme gereği duymadım.

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…

Sağlıcakla ve takipte kalın. ?

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)

Yorumlar (2)

  1. Selamlar . Kodu çalıştırınca Listbox doldurunca System.ArgumentOutOfRangeException: ‘Index was out of range. Must be non-negative and less than the size of the collection.
    Parameter name: index’
    hatası alıyorum.
    Yardımlarınızı beklemekteyim.

    • Merhaba,
      Basamaklarına ayırmak istediğiniz sayı nedir? 12 basamaktan uzun sayıları basamaklarına ayıramazsınız. 12 basamaktan daha uzun sayıları basamaklarına ayırmak istersniz list’e diğer basamakları da eklemelisiniz.
      Sorun bundan dolayı değilse, bana görseller ile birlikte mailden ulaşabilir misiniz?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.