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