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;
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