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;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | /* * 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