C# – Taban aritmatiği

C Sharp için antreman listeme göz atarken taban aritmatiğini atladığımı gördüm. Hemen kolları sıvadım. Aslında kabul etmeliyim ki biraz aceleye geldi (saat 02:24 olunca normal sanki). Daha detaylı ele alınabileceği konusunda eleştri gelebilir, hem fikiriz.

Uygulamanın çalışması için System kütüphanesi altında Threading’in kullanılması gerekiyor;

using System.Threading;

Çalışan görüntüsü;
taban

Kod açıklamaların yeterli olduğunu düşünüyorum, gerekirse iletişimden bana ulaşabilirsiniz;

/*
 * Hakan Müştak @ 2014
 * hmustak@gmail.com - www.mustak.org
 */
    class Program
    {
        //Taban hesaplayan metod
        static String tabanHesapla(int sayi, int taban)
        {
            //Kalan değerlerin tutulduğu değişken
            String kalan = "";
            //kalanları bulmak için bölüm döngüsü
            while (sayi >= taban)
            {
                //Kalanı hesaplayalım
                kalan = Convert.ToString((sayi - ((sayi / taban) * taban))) + kalan;
                sayi = sayi / taban;
                //bölümler sonunda sayı tabandan küçük hale gelirse
                if (sayi < taban)
                    kalan = sayi + kalan;
            }//while
            //geri dönen sayı
            return kalan;
        }//metod

        static int kullanicidanVeriAl(String metin)
        {
            int alinan = 0;
            Console.Write(metin);
            try
            {
                alinan = Convert.ToInt32(Console.ReadLine());
            }
            catch (Exception)
            {
                Console.WriteLine("Hatalı Giriş yaptınız! Uygulamayı tekrar başlatınız!");
                Environment.Exit(0);
            }
            
            return alinan;
        }

        static Boolean kullanicidanVeriAl()
        {
            string cevap;
            Console.Write("Tekrar denemek ister misiniz? (E/H) ");
            cevap = Console.ReadLine();
            return (cevap.Equals("E")||cevap.Equals("e")) ? true : false;

        }

        static Boolean kurallar(int sayi, int taban)
        {

            separator();//separator
            //istenen taban sayıdan büyükse
            if (taban > sayi)
            {
                Console.WriteLine("Taban sayısı ({0}), taban alınacak sayıdan ({1}) büyük!", taban, sayi);
                separator();//separator
                Thread.Sleep(2500);
                return false;
            }
            else if (taban == 1 || sayi==1)
            {
                Console.WriteLine("Yapma üstad! LÜtfen düzgün bir değer girelim...");
                separator();//separator
                Thread.Sleep(2500);
                return false;
            }
            else if (taban >= 10)
            {
                Console.WriteLine("10 ve üstü tabanlar için uygulama çalışmaz");
                separator();//separator
                Thread.Sleep(2500);
                return false;
            }
            else
            {
                return true;
            }

        }

        //Separator metodu
        static void separator()
        {
            Console.WriteLine("------------------------------------------------------------");
        }

        static void Main(string[] args)
        {

            do
            {
                //Ekranı Temizle
                Console.Clear();
                //Kullanıcıdan verileri alıyoruz
                //--Sayı
                int sayi = kullanicidanVeriAl("Tabanını hesaplayacağımız sayıyı girin : ");
                //--Taban
                int taban = kullanicidanVeriAl("Kaçlık tabana çevrilmesini istiyorsunuz : ");
                //sayılar kurallara uygun değilse eyvah!
                if (!kurallar(sayi,taban))
                    continue;
                //Hesaplanan sayıyı ekrana basıyoruz
                Console.WriteLine("{0} sayısının {1}'lik tabanda ki değeri {2}'dır",sayi,taban,tabanHesapla(sayi,taban));
                //Separatör
                separator();

            } while (kullanicidanVeriAl());


        }//Main
    }//Program

Bu örnekten itibaren yavaş yavaş nesne tabanlı örneklere geçeceğiz

Hakan Müştak ☯ 2014/10

 


Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

question razz sad evil exclaim smile redface biggrin surprised eek confused cool lol mad twisted rolleyes wink idea arrow neutral cry mrgreen

*

Captcha Kontrolü * Zaman aşımı, sayfayı tekrar yükleyin


Top